/*
Package tapi is a generated package which contains definitions
of structs which represent a YANG schema. The generated schema can be
compressed by a series of transformations (compression was false
in this case).

This package was generated by /Users/mk/go/pkg/mod/github.com/openconfig/ygot@v0.8.7/genutil/names.go
using the following YANG input files:
	- ../../models/tapi-topology@2019-03-31.yang
	- ../../models/tapi-connectivity@2019-03-31.yang
Imported modules were sourced from:
	- ../../yang/...
*/
package tapi

import (
	"encoding/json"
	"fmt"
	"reflect"

	"github.com/openconfig/ygot/ygot"
	"github.com/openconfig/goyang/pkg/yang"
	"github.com/openconfig/ygot/ytypes"
)

// Binary is a type that is used for fields that have a YANG type of
// binary. It is used such that binary fields can be distinguished from
// leaf-lists of uint8s (which are mapped to []uint8, equivalent to
// []byte in reflection).
type Binary []byte

// YANGEmpty is a type that is used for fields that have a YANG type of
// empty. It is used such that empty fields can be distinguished from boolean fields
// in the generated code.
type YANGEmpty bool

var (
	SchemaTree map[string]*yang.Entry
)

func init() {
	var err error
	if SchemaTree, err = UnzipSchema(); err != nil {
		panic("schema error: " +  err.Error())
	}
}

// Schema returns the details of the generated schema.
func Schema() (*ytypes.Schema, error) {
	uzp, err := UnzipSchema()
	if err != nil {
		return nil, fmt.Errorf("cannot unzip schema, %v", err)
	}

	return &ytypes.Schema{
		Root: &Device{},
		SchemaTree: uzp,
		Unmarshal: Unmarshal,
	}, nil
}

// UnzipSchema unzips the zipped schema and returns a map of yang.Entry nodes,
// keyed by the name of the struct that the yang.Entry describes the schema for.
func UnzipSchema() (map[string]*yang.Entry, error) {
	var schemaTree map[string]*yang.Entry
	var err error
	if schemaTree, err = ygot.GzipToSchema(ySchema); err != nil {
		return nil, fmt.Errorf("could not unzip the schema; %v", err)
	}
	return schemaTree, nil
}

// Unmarshal unmarshals data, which must be RFC7951 JSON format, into
// destStruct, which must be non-nil and the correct GoStruct type. It returns
// an error if the destStruct is not found in the schema or the data cannot be
// unmarshaled. The supplied options (opts) are used to control the behaviour
// of the unmarshal function - for example, determining whether errors are
// thrown for unknown fields in the input JSON.
func Unmarshal(data []byte, destStruct ygot.GoStruct, opts ...ytypes.UnmarshalOpt) error {
	tn := reflect.TypeOf(destStruct).Elem().Name()
	schema, ok := SchemaTree[tn]
	if !ok {
		return fmt.Errorf("could not find schema for type %s", tn )
	}
	var jsonTree interface{}
	if err := json.Unmarshal([]byte(data), &jsonTree); err != nil {
		return err
	}
	return ytypes.Unmarshal(schema, destStruct, jsonTree, opts...)
}

// Device represents the /device YANG schema element.
type Device struct {
	Context	*TapiCommon_Context	`path:"context" module:"tapi-common"`
}

// IsYANGGoStruct ensures that Device implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*Device) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *Device) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["Device"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *Device) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context represents the /tapi-common/context YANG schema element.
type TapiCommon_Context struct {
	ConnectivityContext	*TapiCommon_Context_ConnectivityContext	`path:"connectivity-context" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_Name	`path:"name" module:"tapi-common"`
	PathComputationContext	*TapiCommon_Context_PathComputationContext	`path:"path-computation-context" module:"tapi-path-computation"`
	ServiceInterfacePoint	map[string]*TapiCommon_Context_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-common"`
	TopologyContext	*TapiCommon_Context_TopologyContext	`path:"topology-context" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context) NewName(ValueName string) (*TapiCommon_Context_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewServiceInterfacePoint creates a new entry in the ServiceInterfacePoint list of the
// TapiCommon_Context struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context) NewServiceInterfacePoint(Uuid string) (*TapiCommon_Context_ServiceInterfacePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ServiceInterfacePoint == nil {
		t.ServiceInterfacePoint = make(map[string]*TapiCommon_Context_ServiceInterfacePoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ServiceInterfacePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ServiceInterfacePoint", key)
	}

	t.ServiceInterfacePoint[key] = &TapiCommon_Context_ServiceInterfacePoint{
		Uuid: &Uuid,
	}

	return t.ServiceInterfacePoint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext represents the /tapi-common/context/connectivity-context YANG schema element.
type TapiCommon_Context_ConnectivityContext struct {
	Connection	map[string]*TapiCommon_Context_ConnectivityContext_Connection	`path:"connection" module:"tapi-connectivity"`
	ConnectivityService	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService	`path:"connectivity-service" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext) IsYANGGoStruct() {}

// NewConnection creates a new entry in the Connection list of the
// TapiCommon_Context_ConnectivityContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext) NewConnection(Uuid string) (*TapiCommon_Context_ConnectivityContext_Connection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Connection == nil {
		t.Connection = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Connection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Connection", key)
	}

	t.Connection[key] = &TapiCommon_Context_ConnectivityContext_Connection{
		Uuid: &Uuid,
	}

	return t.Connection[key], nil
}

// NewConnectivityService creates a new entry in the ConnectivityService list of the
// TapiCommon_Context_ConnectivityContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext) NewConnectivityService(Uuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectivityService == nil {
		t.ConnectivityService = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectivityService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectivityService", key)
	}

	t.ConnectivityService[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService{
		Uuid: &Uuid,
	}

	return t.ConnectivityService[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection represents the /tapi-common/context/connectivity-context/connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection struct {
	BoundingNode	*TapiCommon_Context_ConnectivityContext_Connection_BoundingNode	`path:"bounding-node" module:"tapi-connectivity"`
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_ForwardingDirection	`path:"direction" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	LowerConnection	map[string]*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection	`path:"lower-connection" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	Route	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route	`path:"route" module:"tapi-connectivity"`
	SupportedClientLink	map[TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key]*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink	`path:"supported-client-link" module:"tapi-connectivity"`
	SwitchControl	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl	`path:"switch-control" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connection.
type TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key represents the key for list SupportedClientLink of element /tapi-common/context/connectivity-context/connection.
type TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	LinkUuid	string	`path:"link-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewLowerConnection creates a new entry in the LowerConnection list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewLowerConnection(ConnectionUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LowerConnection == nil {
		t.LowerConnection = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection)
	}

	key := ConnectionUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LowerConnection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LowerConnection", key)
	}

	t.LowerConnection[key] = &TapiCommon_Context_ConnectivityContext_Connection_LowerConnection{
		ConnectionUuid: &ConnectionUuid,
	}

	return t.LowerConnection[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewRoute creates a new entry in the Route list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewRoute(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_Route, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route{
		LocalId: &LocalId,
	}

	return t.Route[key], nil
}

// NewSupportedClientLink creates a new entry in the SupportedClientLink list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewSupportedClientLink(TopologyUuid string, LinkUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportedClientLink == nil {
		t.SupportedClientLink = make(map[TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key]*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key{
		TopologyUuid: TopologyUuid,
		LinkUuid: LinkUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportedClientLink[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportedClientLink", key)
	}

	t.SupportedClientLink[key] = &TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink{
		TopologyUuid: &TopologyUuid,
		LinkUuid: &LinkUuid,
	}

	return t.SupportedClientLink[key], nil
}

// NewSwitchControl creates a new entry in the SwitchControl list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewSwitchControl(Uuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SwitchControl == nil {
		t.SwitchControl = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SwitchControl[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SwitchControl", key)
	}

	t.SwitchControl[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl{
		Uuid: &Uuid,
	}

	return t.SwitchControl[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_BoundingNode represents the /tapi-common/context/connectivity-context/connection/bounding-node YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_BoundingNode struct {
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_BoundingNode implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_BoundingNode"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_LowerConnection represents the /tapi-common/context/connectivity-context/connection/lower-connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_LowerConnection struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_LowerConnection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_LowerConnection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_LowerConnection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Name represents the /tapi-common/context/connectivity-context/connection/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route represents the /tapi-common/context/connectivity-context/connection/route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route struct {
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route_Name	`path:"name" module:"tapi-connectivity"`
	ResilienceRoute	*TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute	`path:"resilience-route" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connection/route.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection_Route struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_Route struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_Route_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/route/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_Name represents the /tapi-common/context/connectivity-context/connection/route/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute represents the /tapi-common/context/connectivity-context/connection/route/resilience-route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RouteState	E_TapiConnectivity_RouteState	`path:"route-state" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink represents the /tapi-common/context/connectivity-context/connection/supported-client-link YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink struct {
	LinkUuid	*string	`path:"link-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LinkUuid == nil {
		return nil, fmt.Errorf("nil value for key LinkUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"link-uuid": *t.LinkUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl represents the /tapi-common/context/connectivity-context/connection/switch-control YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct {
	FaultConditionDetermination	E_TapiConnectivity_FaultConditionDetermination	`path:"fault-condition-determination" module:"tapi-connectivity"`
	HoldOffTime	*uint64	`path:"hold-off-time" module:"tapi-connectivity"`
	IsCoordinatedSwitchingBothEnds	*bool	`path:"is-coordinated-switching-both-ends" module:"tapi-connectivity"`
	IsFrozen	*bool	`path:"is-frozen" module:"tapi-connectivity"`
	IsLockOut	*bool	`path:"is-lock-out" module:"tapi-connectivity"`
	MaxSwitchTimes	*uint64	`path:"max-switch-times" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name	`path:"name" module:"tapi-connectivity"`
	PreferredRestorationLayer	[]E_TapiConnectivity_LayerProtocolName	`path:"preferred-restoration-layer" module:"tapi-connectivity"`
	ResilienceType	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType	`path:"resilience-type" module:"tapi-connectivity"`
	ResiliencyRouteConstraint	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint	`path:"resiliency-route-constraint" module:"tapi-connectivity"`
	RestorationCoordinateType	E_TapiConnectivity_CoordinateType	`path:"restoration-coordinate-type" module:"tapi-connectivity"`
	RestorePriority	*uint64	`path:"restore-priority" module:"tapi-connectivity"`
	ReversionMode	E_TapiConnectivity_ReversionMode	`path:"reversion-mode" module:"tapi-connectivity"`
	SelectionControl	E_TapiConnectivity_SelectionControl	`path:"selection-control" module:"tapi-connectivity"`
	SubSwitchControl	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl	`path:"sub-switch-control" module:"tapi-connectivity"`
	Switch	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch	`path:"switch" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
	WaitToRevertTime	*uint64	`path:"wait-to-revert-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key represents the key for list SubSwitchControl of element /tapi-common/context/connectivity-context/connection/switch-control.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key struct {
	ConnectionUuid	string	`path:"connection-uuid"`
	SwitchControlUuid	string	`path:"switch-control-uuid"`
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewResiliencyRouteConstraint creates a new entry in the ResiliencyRouteConstraint list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewResiliencyRouteConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResiliencyRouteConstraint == nil {
		t.ResiliencyRouteConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ResiliencyRouteConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ResiliencyRouteConstraint", key)
	}

	t.ResiliencyRouteConstraint[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint{
		LocalId: &LocalId,
	}

	return t.ResiliencyRouteConstraint[key], nil
}

// NewSubSwitchControl creates a new entry in the SubSwitchControl list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewSubSwitchControl(ConnectionUuid string, SwitchControlUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SubSwitchControl == nil {
		t.SubSwitchControl = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key{
		ConnectionUuid: ConnectionUuid,
		SwitchControlUuid: SwitchControlUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SubSwitchControl[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SubSwitchControl", key)
	}

	t.SubSwitchControl[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl{
		ConnectionUuid: &ConnectionUuid,
		SwitchControlUuid: &SwitchControlUuid,
	}

	return t.SubSwitchControl[key], nil
}

// NewSwitch creates a new entry in the Switch list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewSwitch(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Switch == nil {
		t.Switch = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Switch[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Switch", key)
	}

	t.Switch[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch{
		LocalId: &LocalId,
	}

	return t.Switch[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType represents the /tapi-common/context/connectivity-context/connection/switch-control/resilience-type YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-connectivity"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name	`path:"name" module:"tapi-connectivity"`
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl represents the /tapi-common/context/connectivity-context/connection/switch-control/sub-switch-control YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
	SwitchControlUuid	*string	`path:"switch-control-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	if t.SwitchControlUuid == nil {
		return nil, fmt.Errorf("nil value for key SwitchControlUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
		"switch-control-uuid": *t.SwitchControlUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch represents the /tapi-common/context/connectivity-context/connection/switch-control/switch YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name	`path:"name" module:"tapi-connectivity"`
	SelectedConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint	`path:"selected-connection-end-point" module:"tapi-connectivity"`
	SelectedRoute	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute	`path:"selected-route" module:"tapi-connectivity"`
	SelectionReason	E_TapiConnectivity_SelectionReason	`path:"selection-reason" module:"tapi-connectivity"`
	SwitchDirection	E_TapiConnectivity_PortDirection	`path:"switch-direction" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key represents the key for list SelectedConnectionEndPoint of element /tapi-common/context/connectivity-context/connection/switch-control/switch.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key represents the key for list SelectedRoute of element /tapi-common/context/connectivity-context/connection/switch-control/switch.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key struct {
	ConnectionUuid	string	`path:"connection-uuid"`
	RouteLocalId	string	`path:"route-local-id"`
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewSelectedConnectionEndPoint creates a new entry in the SelectedConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewSelectedConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SelectedConnectionEndPoint == nil {
		t.SelectedConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SelectedConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SelectedConnectionEndPoint", key)
	}

	t.SelectedConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.SelectedConnectionEndPoint[key], nil
}

// NewSelectedRoute creates a new entry in the SelectedRoute list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewSelectedRoute(ConnectionUuid string, RouteLocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SelectedRoute == nil {
		t.SelectedRoute = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key{
		ConnectionUuid: ConnectionUuid,
		RouteLocalId: RouteLocalId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SelectedRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SelectedRoute", key)
	}

	t.SelectedRoute[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute{
		ConnectionUuid: &ConnectionUuid,
		RouteLocalId: &RouteLocalId,
	}

	return t.SelectedRoute[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/selected-connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/selected-route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
	RouteLocalId	*string	`path:"route-local-id" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	if t.RouteLocalId == nil {
		return nil, fmt.Errorf("nil value for key RouteLocalId")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
		"route-local-id": *t.RouteLocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService represents the /tapi-common/context/connectivity-context/connectivity-service YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-connectivity"`
	Connection	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection	`path:"connection" module:"tapi-connectivity"`
	ConnectivityConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint	`path:"connectivity-constraint" module:"tapi-connectivity"`
	ConnectivityService	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService	`path:"connectivity-service" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_ForwardingDirection	`path:"direction" module:"tapi-connectivity"`
	EndPoint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint	`path:"end-point" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	ResilienceConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint	`path:"resilience-constraint" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService) IsYANGGoStruct() {}

// NewConnection creates a new entry in the Connection list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewConnection(ConnectionUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Connection == nil {
		t.Connection = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection)
	}

	key := ConnectionUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Connection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Connection", key)
	}

	t.Connection[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection{
		ConnectionUuid: &ConnectionUuid,
	}

	return t.Connection[key], nil
}

// NewConnectivityService creates a new entry in the ConnectivityService list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewConnectivityService(ConnectivityServiceUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectivityService == nil {
		t.ConnectivityService = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService)
	}

	key := ConnectivityServiceUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectivityService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectivityService", key)
	}

	t.ConnectivityService[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService{
		ConnectivityServiceUuid: &ConnectivityServiceUuid,
	}

	return t.ConnectivityService[key], nil
}

// NewEndPoint creates a new entry in the EndPoint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewEndPoint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndPoint == nil {
		t.EndPoint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndPoint", key)
	}

	t.EndPoint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint{
		LocalId: &LocalId,
	}

	return t.EndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewTopologyConstraint creates a new entry in the TopologyConstraint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewTopologyConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TopologyConstraint == nil {
		t.TopologyConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TopologyConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TopologyConstraint", key)
	}

	t.TopologyConstraint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint{
		LocalId: &LocalId,
	}

	return t.TopologyConstraint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection represents the /tapi-common/context/connectivity-context/connectivity-service/connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint struct {
	ConnectionExclusion	[]string	`path:"connection-exclusion" module:"tapi-connectivity"`
	ConnectionInclusion	[]string	`path:"connection-inclusion" module:"tapi-connectivity"`
	CorouteInclusion	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion	`path:"coroute-inclusion" module:"tapi-connectivity"`
	DiversityExclusion	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion	`path:"diversity-exclusion" module:"tapi-connectivity"`
	RequestedCapacity	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity	`path:"requested-capacity" module:"tapi-connectivity"`
	Schedule	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule	`path:"schedule" module:"tapi-connectivity"`
	ServiceLevel	*string	`path:"service-level" module:"tapi-connectivity"`
	ServiceType	E_TapiConnectivity_ServiceType	`path:"service-type" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) IsYANGGoStruct() {}

// NewDiversityExclusion creates a new entry in the DiversityExclusion list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) NewDiversityExclusion(ConnectivityServiceUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DiversityExclusion == nil {
		t.DiversityExclusion = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion)
	}

	key := ConnectivityServiceUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.DiversityExclusion[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list DiversityExclusion", key)
	}

	t.DiversityExclusion[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion{
		ConnectivityServiceUuid: &ConnectivityServiceUuid,
	}

	return t.DiversityExclusion[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/coroute-inclusion YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/diversity-exclusion YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectivityServiceUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectivityServiceUuid")
	}

	return map[string]interface{}{
		"connectivity-service-uuid": *t.ConnectivityServiceUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity struct {
	TotalSize	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize	`path:"total-size" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity/total-size YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/schedule YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule struct {
	EndTime	*string	`path:"end-time" module:"tapi-connectivity"`
	StartTime	*string	`path:"start-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-service YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectivityServiceUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectivityServiceUuid")
	}

	return map[string]interface{}{
		"connectivity-service-uuid": *t.ConnectivityServiceUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-connectivity"`
	Capacity	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity	`path:"capacity" module:"tapi-connectivity"`
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_PortDirection	`path:"direction" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LayerProtocolQualifier	E_TapiConnectivity_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	PeerFwdConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint	`path:"peer-fwd-connectivity-service-end-point" module:"tapi-connectivity"`
	ProtectingConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint	`path:"protecting-connectivity-service-end-point" module:"tapi-connectivity"`
	ProtectionRole	E_TapiConnectivity_ProtectionRole	`path:"protection-role" module:"tapi-connectivity"`
	Role	E_TapiConnectivity_PortRole	`path:"role" module:"tapi-connectivity"`
	ServerConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint	`path:"server-connectivity-service-end-point" module:"tapi-connectivity"`
	ServiceInterfacePoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connectivity-service/end-point.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/capacity YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity struct {
	TotalSize	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize	`path:"total-size" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/capacity/total-size YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/peer-fwd-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/protecting-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/server-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/service-interface-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_Name represents the /tapi-common/context/connectivity-context/connectivity-service/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint struct {
	FaultConditionDetermination	E_TapiConnectivity_FaultConditionDetermination	`path:"fault-condition-determination" module:"tapi-connectivity"`
	HoldOffTime	*uint64	`path:"hold-off-time" module:"tapi-connectivity"`
	IsCoordinatedSwitchingBothEnds	*bool	`path:"is-coordinated-switching-both-ends" module:"tapi-connectivity"`
	IsFrozen	*bool	`path:"is-frozen" module:"tapi-connectivity"`
	IsLockOut	*bool	`path:"is-lock-out" module:"tapi-connectivity"`
	MaxSwitchTimes	*uint64	`path:"max-switch-times" module:"tapi-connectivity"`
	PreferredRestorationLayer	[]E_TapiConnectivity_LayerProtocolName	`path:"preferred-restoration-layer" module:"tapi-connectivity"`
	ResilienceType	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType	`path:"resilience-type" module:"tapi-connectivity"`
	ResiliencyRouteConstraint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint	`path:"resiliency-route-constraint" module:"tapi-connectivity"`
	RestorationCoordinateType	E_TapiConnectivity_CoordinateType	`path:"restoration-coordinate-type" module:"tapi-connectivity"`
	RestorePriority	*uint64	`path:"restore-priority" module:"tapi-connectivity"`
	ReversionMode	E_TapiConnectivity_ReversionMode	`path:"reversion-mode" module:"tapi-connectivity"`
	SelectionControl	E_TapiConnectivity_SelectionControl	`path:"selection-control" module:"tapi-connectivity"`
	WaitToRevertTime	*uint64	`path:"wait-to-revert-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) IsYANGGoStruct() {}

// NewResiliencyRouteConstraint creates a new entry in the ResiliencyRouteConstraint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) NewResiliencyRouteConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResiliencyRouteConstraint == nil {
		t.ResiliencyRouteConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ResiliencyRouteConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ResiliencyRouteConstraint", key)
	}

	t.ResiliencyRouteConstraint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint{
		LocalId: &LocalId,
	}

	return t.ResiliencyRouteConstraint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-connectivity"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name	`path:"name" module:"tapi-connectivity"`
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_Name represents the /tapi-common/context/name YANG schema element.
type TapiCommon_Context_Name struct {
	Value	*string	`path:"value" module:"tapi-common"`
	ValueName	*string	`path:"value-name" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext represents the /tapi-common/context/path-computation-context YANG schema element.
type TapiCommon_Context_PathComputationContext struct {
	Path	map[string]*TapiCommon_Context_PathComputationContext_Path	`path:"path" module:"tapi-path-computation"`
	PathCompService	map[string]*TapiCommon_Context_PathComputationContext_PathCompService	`path:"path-comp-service" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext) IsYANGGoStruct() {}

// NewPath creates a new entry in the Path list of the
// TapiCommon_Context_PathComputationContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext) NewPath(Uuid string) (*TapiCommon_Context_PathComputationContext_Path, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[string]*TapiCommon_Context_PathComputationContext_Path)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &TapiCommon_Context_PathComputationContext_Path{
		Uuid: &Uuid,
	}

	return t.Path[key], nil
}

// NewPathCompService creates a new entry in the PathCompService list of the
// TapiCommon_Context_PathComputationContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext) NewPathCompService(Uuid string) (*TapiCommon_Context_PathComputationContext_PathCompService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathCompService == nil {
		t.PathCompService = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathCompService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathCompService", key)
	}

	t.PathCompService[key] = &TapiCommon_Context_PathComputationContext_PathCompService{
		Uuid: &Uuid,
	}

	return t.PathCompService[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path represents the /tapi-common/context/path-computation-context/path YANG schema element.
type TapiCommon_Context_PathComputationContext_Path struct {
	Direction	E_TapiPathComputation_ForwardingDirection	`path:"direction" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	Link	map[TapiCommon_Context_PathComputationContext_Path_Link_Key]*TapiCommon_Context_PathComputationContext_Path_Link	`path:"link" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_Path_Name	`path:"name" module:"tapi-path-computation"`
	RoutingConstraint	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint	`path:"routing-constraint" module:"tapi-path-computation"`
	Uuid	*string	`path:"uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path) IsYANGGoStruct() {}

// TapiCommon_Context_PathComputationContext_Path_Link_Key represents the key for list Link of element /tapi-common/context/path-computation-context/path.
type TapiCommon_Context_PathComputationContext_Path_Link_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	LinkUuid	string	`path:"link-uuid"`
}

// NewLink creates a new entry in the Link list of the
// TapiCommon_Context_PathComputationContext_Path struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path) NewLink(TopologyUuid string, LinkUuid string) (*TapiCommon_Context_PathComputationContext_Path_Link, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Link == nil {
		t.Link = make(map[TapiCommon_Context_PathComputationContext_Path_Link_Key]*TapiCommon_Context_PathComputationContext_Path_Link)
	}

	key := TapiCommon_Context_PathComputationContext_Path_Link_Key{
		TopologyUuid: TopologyUuid,
		LinkUuid: LinkUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Link[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Link", key)
	}

	t.Link[key] = &TapiCommon_Context_PathComputationContext_Path_Link{
		TopologyUuid: &TopologyUuid,
		LinkUuid: &LinkUuid,
	}

	return t.Link[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_Path struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_Path_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_Path_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_Path_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService represents the /tapi-common/context/path-computation-context/path-comp-service YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService struct {
	Direction	E_TapiPathComputation_ForwardingDirection	`path:"direction" module:"tapi-path-computation"`
	EndPoint	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint	`path:"end-point" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Name	`path:"name" module:"tapi-path-computation"`
	ObjectiveFunction	*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction	`path:"objective-function" module:"tapi-path-computation"`
	OptimizationConstraint	*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint	`path:"optimization-constraint" module:"tapi-path-computation"`
	Path	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Path	`path:"path" module:"tapi-path-computation"`
	RoutingConstraint	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint	`path:"routing-constraint" module:"tapi-path-computation"`
	TopologyConstraint	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint	`path:"topology-constraint" module:"tapi-path-computation"`
	Uuid	*string	`path:"uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService) IsYANGGoStruct() {}

// NewEndPoint creates a new entry in the EndPoint list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewEndPoint(LocalId string) (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndPoint == nil {
		t.EndPoint = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndPoint", key)
	}

	t.EndPoint[key] = &TapiCommon_Context_PathComputationContext_PathCompService_EndPoint{
		LocalId: &LocalId,
	}

	return t.EndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewPath creates a new entry in the Path list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewPath(PathUuid string) (*TapiCommon_Context_PathComputationContext_PathCompService_Path, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Path)
	}

	key := PathUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &TapiCommon_Context_PathComputationContext_PathCompService_Path{
		PathUuid: &PathUuid,
	}

	return t.Path[key], nil
}

// NewTopologyConstraint creates a new entry in the TopologyConstraint list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewTopologyConstraint(LocalId string) (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TopologyConstraint == nil {
		t.TopologyConstraint = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TopologyConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TopologyConstraint", key)
	}

	t.TopologyConstraint[key] = &TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint{
		LocalId: &LocalId,
	}

	return t.TopologyConstraint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint represents the /tapi-common/context/path-computation-context/path-comp-service/end-point YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct {
	Capacity	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity	`path:"capacity" module:"tapi-path-computation"`
	Direction	E_TapiPathComputation_PortDirection	`path:"direction" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	LayerProtocolQualifier	E_TapiPathComputation_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name	`path:"name" module:"tapi-path-computation"`
	Role	E_TapiPathComputation_PortRole	`path:"role" module:"tapi-path-computation"`
	ServiceInterfacePoint	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/capacity YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity struct {
	TotalSize	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize	`path:"total-size" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/capacity/total-size YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/service-interface-point YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_Name represents the /tapi-common/context/path-computation-context/path-comp-service/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction represents the /tapi-common/context/path-computation-context/path-comp-service/objective-function YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction struct {
	BandwidthOptimization	E_TapiPathComputation_DirectiveValue	`path:"bandwidth-optimization" module:"tapi-path-computation"`
	ConcurrentPaths	E_TapiPathComputation_DirectiveValue	`path:"concurrent-paths" module:"tapi-path-computation"`
	CostOptimization	E_TapiPathComputation_DirectiveValue	`path:"cost-optimization" module:"tapi-path-computation"`
	LinkUtilization	E_TapiPathComputation_DirectiveValue	`path:"link-utilization" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name	`path:"name" module:"tapi-path-computation"`
	ResourceSharing	E_TapiPathComputation_DirectiveValue	`path:"resource-sharing" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name represents the /tapi-common/context/path-computation-context/path-comp-service/objective-function/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/optimization-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name	`path:"name" module:"tapi-path-computation"`
	TrafficInterruption	E_TapiPathComputation_DirectiveValue	`path:"traffic-interruption" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/optimization-constraint/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_Path represents the /tapi-common/context/path-computation-context/path-comp-service/path YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_Path struct {
	PathUuid	*string	`path:"path-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_Path) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_Path struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathUuid == nil {
		return nil, fmt.Errorf("nil value for key PathUuid")
	}

	return map[string]interface{}{
		"path-uuid": *t.PathUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-path-computation"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-path-computation"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-path-computation"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-path-computation"`
	MaxAllowedCost	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-path-computation"`
	MaxAllowedDelay	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-path-computation"`
	MaxAllowedHops	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-path-computation"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-path-computation"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-path-computation"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-path-computation"`
	CostName	*string	`path:"cost-name" module:"tapi-path-computation"`
	CostValue	*string	`path:"cost-value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-path-computation"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-path-computation"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-path-computation"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-path-computation"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-path-computation"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/topology-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-path-computation"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-path-computation"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-path-computation"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-path-computation"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-path-computation"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-path-computation"`
	IncludeLink	*string	`path:"include-link" module:"tapi-path-computation"`
	IncludeNode	*string	`path:"include-node" module:"tapi-path-computation"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-path-computation"`
	IncludePath	*string	`path:"include-path" module:"tapi-path-computation"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name	`path:"name" module:"tapi-path-computation"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/topology-constraint/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_Link represents the /tapi-common/context/path-computation-context/path/link YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_Link struct {
	LinkUuid	*string	`path:"link-uuid" module:"tapi-path-computation"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_Link implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_Link) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_Link struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LinkUuid == nil {
		return nil, fmt.Errorf("nil value for key LinkUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"link-uuid": *t.LinkUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_Link"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_Name represents the /tapi-common/context/path-computation-context/path/name YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint represents the /tapi-common/context/path-computation-context/path/routing-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-path-computation"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-path-computation"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-path-computation"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-path-computation"`
	MaxAllowedCost	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-path-computation"`
	MaxAllowedDelay	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-path-computation"`
	MaxAllowedHops	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-path-computation"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-path-computation"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-path-computation"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-path-computation"`
	CostName	*string	`path:"cost-name" module:"tapi-path-computation"`
	CostValue	*string	`path:"cost-value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-path-computation"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-path-computation"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-path-computation"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-path-computation"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-path-computation"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint represents the /tapi-common/context/service-interface-point YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-common"`
	AvailableCapacity	*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity	`path:"available-capacity" module:"tapi-common"`
	Direction	E_TapiCommon_PortDirection	`path:"direction" module:"tapi-common"`
	LayerProtocolName	E_TapiCommon_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-common"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-common"`
	Name	map[string]*TapiCommon_Context_ServiceInterfacePoint_Name	`path:"name" module:"tapi-common"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-common"`
	SupportedLayerProtocolQualifier	[]E_TapiCommon_LayerProtocolQualifier	`path:"supported-layer-protocol-qualifier" module:"tapi-common"`
	TotalPotentialCapacity	*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-common"`
	Uuid	*string	`path:"uuid" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ServiceInterfacePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint) NewName(ValueName string) (*TapiCommon_Context_ServiceInterfacePoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ServiceInterfacePoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ServiceInterfacePoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity represents the /tapi-common/context/service-interface-point/available-capacity YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize represents the /tapi-common/context/service-interface-point/available-capacity/total-size YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-common"`
	Value	*uint64	`path:"value" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_Name represents the /tapi-common/context/service-interface-point/name YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_Name struct {
	Value	*string	`path:"value" module:"tapi-common"`
	ValueName	*string	`path:"value-name" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity represents the /tapi-common/context/service-interface-point/total-potential-capacity YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/service-interface-point/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-common"`
	Value	*uint64	`path:"value" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext represents the /tapi-common/context/topology-context YANG schema element.
type TapiCommon_Context_TopologyContext struct {
	NwTopologyService	*TapiCommon_Context_TopologyContext_NwTopologyService	`path:"nw-topology-service" module:"tapi-topology"`
	Topology	map[string]*TapiCommon_Context_TopologyContext_Topology	`path:"topology" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext) IsYANGGoStruct() {}

// NewTopology creates a new entry in the Topology list of the
// TapiCommon_Context_TopologyContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext) NewTopology(Uuid string) (*TapiCommon_Context_TopologyContext_Topology, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[string]*TapiCommon_Context_TopologyContext_Topology)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Topology[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Topology", key)
	}

	t.Topology[key] = &TapiCommon_Context_TopologyContext_Topology{
		Uuid: &Uuid,
	}

	return t.Topology[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService represents the /tapi-common/context/topology-context/nw-topology-service YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService struct {
	Name	map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Name	`path:"name" module:"tapi-topology"`
	Topology	map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Topology	`path:"topology" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_NwTopologyService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_NwTopologyService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_NwTopologyService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewTopology creates a new entry in the Topology list of the
// TapiCommon_Context_TopologyContext_NwTopologyService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) NewTopology(TopologyUuid string) (*TapiCommon_Context_TopologyContext_NwTopologyService_Topology, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Topology)
	}

	key := TopologyUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Topology[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Topology", key)
	}

	t.Topology[key] = &TapiCommon_Context_TopologyContext_NwTopologyService_Topology{
		TopologyUuid: &TopologyUuid,
	}

	return t.Topology[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService_Name represents the /tapi-common/context/topology-context/nw-topology-service/name YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_NwTopologyService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService_Topology represents the /tapi-common/context/topology-context/nw-topology-service/topology YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService_Topology struct {
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService_Topology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService_Topology) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_NwTopologyService_Topology struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService_Topology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology represents the /tapi-common/context/topology-context/topology YANG schema element.
type TapiCommon_Context_TopologyContext_Topology struct {
	BoundaryNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint	`path:"boundary-node-edge-point" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	Link	map[string]*TapiCommon_Context_TopologyContext_Topology_Link	`path:"link" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Name	`path:"name" module:"tapi-topology"`
	Node	map[string]*TapiCommon_Context_TopologyContext_Topology_Node	`path:"node" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key represents the key for list BoundaryNodeEdgePoint of element /tapi-common/context/topology-context/topology.
type TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewBoundaryNodeEdgePoint creates a new entry in the BoundaryNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewBoundaryNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BoundaryNodeEdgePoint == nil {
		t.BoundaryNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BoundaryNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BoundaryNodeEdgePoint", key)
	}

	t.BoundaryNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.BoundaryNodeEdgePoint[key], nil
}

// NewLink creates a new entry in the Link list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewLink(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Link, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Link == nil {
		t.Link = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Link[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Link", key)
	}

	t.Link[key] = &TapiCommon_Context_TopologyContext_Topology_Link{
		Uuid: &Uuid,
	}

	return t.Link[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNode creates a new entry in the Node list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewNode(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Node == nil {
		t.Node = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Node[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Node", key)
	}

	t.Node[key] = &TapiCommon_Context_TopologyContext_Topology_Node{
		Uuid: &Uuid,
	}

	return t.Node[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint represents the /tapi-common/context/topology-context/topology/boundary-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link represents the /tapi-common/context/topology-context/topology/link YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	DeliveryOrderCharacteristic	*string	`path:"delivery-order-characteristic" module:"tapi-topology"`
	Direction	E_TapiTopology_ForwardingDirection	`path:"direction" module:"tapi-topology"`
	ErrorCharacteristic	*string	`path:"error-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LossCharacteristic	*string	`path:"loss-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_Name	`path:"name" module:"tapi-topology"`
	NodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint	`path:"node-edge-point" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	RepeatDeliveryCharacteristic	*string	`path:"repeat-delivery-characteristic" module:"tapi-topology"`
	ResilienceType	*TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType	`path:"resilience-type" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	ServerIntegrityProcessCharacteristic	*string	`path:"server-integrity-process-characteristic" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	TransitionedLayerProtocolName	[]string	`path:"transitioned-layer-protocol-name" module:"tapi-topology"`
	UnavailableTimeCharacteristic	*string	`path:"unavailable-time-characteristic" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
	ValidationMechanism	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism	`path:"validation-mechanism" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key represents the key for list NodeEdgePoint of element /tapi-common/context/topology-context/topology/link.
type TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Link_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Link_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeEdgePoint creates a new entry in the NodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeEdgePoint == nil {
		t.NodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeEdgePoint", key)
	}

	t.NodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.NodeEdgePoint[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewValidationMechanism creates a new entry in the ValidationMechanism list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewValidationMechanism(ValidationMechanism string) (*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ValidationMechanism == nil {
		t.ValidationMechanism = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism)
	}

	key := ValidationMechanism

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ValidationMechanism[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ValidationMechanism", key)
	}

	t.ValidationMechanism[key] = &TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism{
		ValidationMechanism: &ValidationMechanism,
	}

	return t.ValidationMechanism[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity represents the /tapi-common/context/topology-context/topology/link/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/link/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic represents the /tapi-common/context/topology-context/topology/link/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/link/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_Name represents the /tapi-common/context/topology-context/topology/link/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint represents the /tapi-common/context/topology-context/topology/link/node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType represents the /tapi-common/context/topology-context/topology/link/resilience-type YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-topology"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/link/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/link/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/link/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism represents the /tapi-common/context/topology-context/topology/link/validation-mechanism YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism struct {
	LayerProtocolAdjacencyValidated	*string	`path:"layer-protocol-adjacency-validated" module:"tapi-topology"`
	ValidationMechanism	*string	`path:"validation-mechanism" module:"tapi-topology"`
	ValidationRobustness	*string	`path:"validation-robustness" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValidationMechanism == nil {
		return nil, fmt.Errorf("nil value for key ValidationMechanism")
	}

	return map[string]interface{}{
		"validation-mechanism": *t.ValidationMechanism,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Name represents the /tapi-common/context/topology-context/topology/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node represents the /tapi-common/context/topology-context/topology/node YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AggregatedNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint	`path:"aggregated-node-edge-point" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	DeliveryOrderCharacteristic	*string	`path:"delivery-order-characteristic" module:"tapi-topology"`
	EncapTopology	*TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology	`path:"encap-topology" module:"tapi-topology"`
	ErrorCharacteristic	*string	`path:"error-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LossCharacteristic	*string	`path:"loss-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_Name	`path:"name" module:"tapi-topology"`
	NodeRuleGroup	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup	`path:"node-rule-group" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	OwnedNodeEdgePoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint	`path:"owned-node-edge-point" module:"tapi-topology"`
	RepeatDeliveryCharacteristic	*string	`path:"repeat-delivery-characteristic" module:"tapi-topology"`
	ServerIntegrityProcessCharacteristic	*string	`path:"server-integrity-process-characteristic" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	UnavailableTimeCharacteristic	*string	`path:"unavailable-time-characteristic" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key represents the key for list AggregatedNodeEdgePoint of element /tapi-common/context/topology-context/topology/node.
type TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedNodeEdgePoint creates a new entry in the AggregatedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewAggregatedNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedNodeEdgePoint == nil {
		t.AggregatedNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedNodeEdgePoint", key)
	}

	t.AggregatedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.AggregatedNodeEdgePoint[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeRuleGroup creates a new entry in the NodeRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewNodeRuleGroup(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeRuleGroup == nil {
		t.NodeRuleGroup = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeRuleGroup", key)
	}

	t.NodeRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup{
		Uuid: &Uuid,
	}

	return t.NodeRuleGroup[key], nil
}

// NewOwnedNodeEdgePoint creates a new entry in the OwnedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewOwnedNodeEdgePoint(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.OwnedNodeEdgePoint == nil {
		t.OwnedNodeEdgePoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.OwnedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list OwnedNodeEdgePoint", key)
	}

	t.OwnedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint{
		Uuid: &Uuid,
	}

	return t.OwnedNodeEdgePoint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/aggregated-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology represents the /tapi-common/context/topology-context/topology/node/encap-topology YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology struct {
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_Name represents the /tapi-common/context/topology-context/topology/node/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct {
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	ComposedRuleGroup	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup	`path:"composed-rule-group" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	InterRuleGroup	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup	`path:"inter-rule-group" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name	`path:"name" module:"tapi-topology"`
	NodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint	`path:"node-edge-point" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	Rule	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule	`path:"rule" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key represents the key for list ComposedRuleGroup of element /tapi-common/context/topology-context/topology/node/node-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeRuleGroupUuid	string	`path:"node-rule-group-uuid"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key represents the key for list NodeEdgePoint of element /tapi-common/context/topology-context/topology/node/node-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewComposedRuleGroup creates a new entry in the ComposedRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewComposedRuleGroup(TopologyUuid string, NodeUuid string, NodeRuleGroupUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ComposedRuleGroup == nil {
		t.ComposedRuleGroup = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeRuleGroupUuid: NodeRuleGroupUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ComposedRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ComposedRuleGroup", key)
	}

	t.ComposedRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeRuleGroupUuid: &NodeRuleGroupUuid,
	}

	return t.ComposedRuleGroup[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewInterRuleGroup creates a new entry in the InterRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewInterRuleGroup(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InterRuleGroup == nil {
		t.InterRuleGroup = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.InterRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list InterRuleGroup", key)
	}

	t.InterRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup{
		Uuid: &Uuid,
	}

	return t.InterRuleGroup[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeEdgePoint creates a new entry in the NodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeEdgePoint == nil {
		t.NodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeEdgePoint", key)
	}

	t.NodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.NodeEdgePoint[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewRule creates a new entry in the Rule list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewRule(LocalId string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Rule[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Rule", key)
	}

	t.Rule[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule{
		LocalId: &LocalId,
	}

	return t.Rule[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/composed-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup struct {
	NodeRuleGroupUuid	*string	`path:"node-rule-group-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeRuleGroupUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeRuleGroupUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-rule-group-uuid": *t.NodeRuleGroupUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct {
	AssociatedNodeRuleGroup	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup	`path:"associated-node-rule-group" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name	`path:"name" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	Rule	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule	`path:"rule" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key represents the key for list AssociatedNodeRuleGroup of element /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeRuleGroupUuid	string	`path:"node-rule-group-uuid"`
}

// NewAssociatedNodeRuleGroup creates a new entry in the AssociatedNodeRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewAssociatedNodeRuleGroup(TopologyUuid string, NodeUuid string, NodeRuleGroupUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AssociatedNodeRuleGroup == nil {
		t.AssociatedNodeRuleGroup = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeRuleGroupUuid: NodeRuleGroupUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AssociatedNodeRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AssociatedNodeRuleGroup", key)
	}

	t.AssociatedNodeRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeRuleGroupUuid: &NodeRuleGroupUuid,
	}

	return t.AssociatedNodeRuleGroup[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewRule creates a new entry in the Rule list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewRule(LocalId string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Rule[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Rule", key)
	}

	t.Rule[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule{
		LocalId: &LocalId,
	}

	return t.Rule[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/associated-node-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup struct {
	NodeRuleGroupUuid	*string	`path:"node-rule-group-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeRuleGroupUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeRuleGroupUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-rule-group-uuid": *t.NodeRuleGroupUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct {
	CepDirection	[]E_TapiTopology_PortDirection	`path:"cep-direction" module:"tapi-topology"`
	CepPortRole	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole	`path:"cep-port-role" module:"tapi-topology"`
	ComplexRule	[]string	`path:"complex-rule" module:"tapi-topology"`
	ConnectionSpecReference	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference	`path:"connection-spec-reference" module:"tapi-topology"`
	ForwardingRule	E_TapiTopology_ForwardingRule	`path:"forwarding-rule" module:"tapi-topology"`
	LayerProtocolQualifier	[]E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	LocalId	*string	`path:"local-id" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name	`path:"name" module:"tapi-topology"`
	OverridePriority	*uint64	`path:"override-priority" module:"tapi-topology"`
	RuleType	E_TapiTopology_RuleType	`path:"rule-type" module:"tapi-topology"`
	SignalProperty	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty	`path:"signal-property" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-port-role YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole struct {
	PortRole	[]string	`path:"port-role" module:"tapi-topology"`
	PortRoleRule	[]E_TapiTopology_PortRoleRuleOption	`path:"port-role-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/connection-spec-reference YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference struct {
	ConnectionSpec	*string	`path:"connection-spec" module:"tapi-topology"`
	ConnectionSpecName	*string	`path:"connection-spec-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/signal-property YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty struct {
	ApplicableSignalValue	[]string	`path:"applicable-signal-value" module:"tapi-topology"`
	NumberOfSignalValues	*uint64	`path:"number-of-signal-values" module:"tapi-topology"`
	SignalPropertyName	*string	`path:"signal-property-name" module:"tapi-topology"`
	SignalPropertyValueRule	E_TapiTopology_SignalPropertyValueRule	`path:"signal-property-value-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/node-rule-group/node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct {
	CepDirection	[]E_TapiTopology_PortDirection	`path:"cep-direction" module:"tapi-topology"`
	CepPortRole	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole	`path:"cep-port-role" module:"tapi-topology"`
	ComplexRule	[]string	`path:"complex-rule" module:"tapi-topology"`
	ConnectionSpecReference	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference	`path:"connection-spec-reference" module:"tapi-topology"`
	ForwardingRule	E_TapiTopology_ForwardingRule	`path:"forwarding-rule" module:"tapi-topology"`
	LayerProtocolQualifier	[]E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	LocalId	*string	`path:"local-id" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name	`path:"name" module:"tapi-topology"`
	OverridePriority	*uint64	`path:"override-priority" module:"tapi-topology"`
	RuleType	E_TapiTopology_RuleType	`path:"rule-type" module:"tapi-topology"`
	SignalProperty	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty	`path:"signal-property" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/cep-port-role YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole struct {
	PortRole	[]string	`path:"port-role" module:"tapi-topology"`
	PortRoleRule	[]E_TapiTopology_PortRoleRuleOption	`path:"port-role-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/connection-spec-reference YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference struct {
	ConnectionSpec	*string	`path:"connection-spec" module:"tapi-topology"`
	ConnectionSpecName	*string	`path:"connection-spec-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/signal-property YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty struct {
	ApplicableSignalValue	[]string	`path:"applicable-signal-value" module:"tapi-topology"`
	NumberOfSignalValues	*uint64	`path:"number-of-signal-values" module:"tapi-topology"`
	SignalPropertyName	*string	`path:"signal-property-name" module:"tapi-topology"`
	SignalPropertyValueRule	E_TapiTopology_SignalPropertyValueRule	`path:"signal-property-value-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AggregatedNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint	`path:"aggregated-node-edge-point" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	AvailableCepLayerProtocol	map[E_TapiTopology_LayerProtocolQualifier]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol	`path:"available-cep-layer-protocol" module:"tapi-topology"`
	CepList	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList	`path:"cep-list" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LinkPortDirection	E_TapiTopology_PortDirection	`path:"link-port-direction" module:"tapi-topology"`
	LinkPortRole	E_TapiTopology_PortRole	`path:"link-port-role" module:"tapi-topology"`
	MappedServiceInterfacePoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint	`path:"mapped-service-interface-point" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name	`path:"name" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	TerminationDirection	E_TapiCommon_TerminationDirection	`path:"termination-direction" module:"tapi-topology"`
	TerminationState	E_TapiCommon_TerminationState	`path:"termination-state" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key represents the key for list AggregatedNodeEdgePoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedNodeEdgePoint creates a new entry in the AggregatedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewAggregatedNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedNodeEdgePoint == nil {
		t.AggregatedNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedNodeEdgePoint", key)
	}

	t.AggregatedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.AggregatedNodeEdgePoint[key], nil
}

// NewAvailableCepLayerProtocol creates a new entry in the AvailableCepLayerProtocol list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewAvailableCepLayerProtocol(LayerProtocolQualifier E_TapiTopology_LayerProtocolQualifier) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AvailableCepLayerProtocol == nil {
		t.AvailableCepLayerProtocol = make(map[E_TapiTopology_LayerProtocolQualifier]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol)
	}

	key := LayerProtocolQualifier

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AvailableCepLayerProtocol[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AvailableCepLayerProtocol", key)
	}

	t.AvailableCepLayerProtocol[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol{
		LayerProtocolQualifier: LayerProtocolQualifier,
	}

	return t.AvailableCepLayerProtocol[key], nil
}

// NewMappedServiceInterfacePoint creates a new entry in the MappedServiceInterfacePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewMappedServiceInterfacePoint(ServiceInterfacePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MappedServiceInterfacePoint == nil {
		t.MappedServiceInterfacePoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint)
	}

	key := ServiceInterfacePointUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MappedServiceInterfacePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MappedServiceInterfacePoint", key)
	}

	t.MappedServiceInterfacePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint{
		ServiceInterfacePointUuid: &ServiceInterfacePointUuid,
	}

	return t.MappedServiceInterfacePoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/aggregated-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-cep-layer-protocol YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol struct {
	LayerProtocolQualifier	E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	NumberOfCepInstances	*uint64	`path:"number-of-cep-instances" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"layer-protocol-qualifier": t.LayerProtocolQualifier,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList struct {
	ConnectionEndPoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) IsYANGGoStruct() {}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) NewConnectionEndPoint(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint{
		Uuid: &Uuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct {
	AggregatedConnectionEndPoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint	`path:"aggregated-connection-end-point" module:"tapi-connectivity"`
	ClientNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint	`path:"client-node-edge-point" module:"tapi-connectivity"`
	ConnectionPortDirection	E_TapiConnectivity_PortDirection	`path:"connection-port-direction" module:"tapi-connectivity"`
	ConnectionPortRole	E_TapiConnectivity_PortRole	`path:"connection-port-role" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LayerProtocolQualifier	E_TapiConnectivity_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	ParentNodeEdgePoint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint	`path:"parent-node-edge-point" module:"tapi-connectivity"`
	ProtectionRole	E_TapiConnectivity_ProtectionRole	`path:"protection-role" module:"tapi-connectivity"`
	TerminationDirection	E_TapiCommon_TerminationDirection	`path:"termination-direction" module:"tapi-connectivity"`
	TerminationState	E_TapiCommon_TerminationState	`path:"termination-state" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key represents the key for list AggregatedConnectionEndPoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key represents the key for list ClientNodeEdgePoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedConnectionEndPoint creates a new entry in the AggregatedConnectionEndPoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewAggregatedConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedConnectionEndPoint == nil {
		t.AggregatedConnectionEndPoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedConnectionEndPoint", key)
	}

	t.AggregatedConnectionEndPoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.AggregatedConnectionEndPoint[key], nil
}

// NewClientNodeEdgePoint creates a new entry in the ClientNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewClientNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ClientNodeEdgePoint == nil {
		t.ClientNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ClientNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ClientNodeEdgePoint", key)
	}

	t.ClientNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.ClientNodeEdgePoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/aggregated-connection-end-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/client-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/parent-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/mapped-service-interface-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ServiceInterfacePointUuid == nil {
		return nil, fmt.Errorf("nil value for key ServiceInterfacePointUuid")
	}

	return map[string]interface{}{
		"service-interface-point-uuid": *t.ServiceInterfacePointUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// E_TapiCommon_AdministrativeState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_AdministrativeState. An additional value named
// TapiCommon_AdministrativeState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_AdministrativeState int64

// IsYANGGoEnum ensures that TapiCommon_AdministrativeState implements the yang.GoEnum
// interface. This ensures that TapiCommon_AdministrativeState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_AdministrativeState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_AdministrativeState.
func (E_TapiCommon_AdministrativeState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_AdministrativeState.
func (e E_TapiCommon_AdministrativeState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_AdministrativeState")
}

const (
	// TapiCommon_AdministrativeState_UNSET corresponds to the value UNSET of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_UNSET E_TapiCommon_AdministrativeState = 0
	// TapiCommon_AdministrativeState_LOCKED corresponds to the value LOCKED of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_LOCKED E_TapiCommon_AdministrativeState = 1
	// TapiCommon_AdministrativeState_UNLOCKED corresponds to the value UNLOCKED of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_UNLOCKED E_TapiCommon_AdministrativeState = 2
)


// E_TapiCommon_CapacityUnit is a derived int64 type which is used to represent
// the enumerated node TapiCommon_CapacityUnit. An additional value named
// TapiCommon_CapacityUnit_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_CapacityUnit int64

// IsYANGGoEnum ensures that TapiCommon_CapacityUnit implements the yang.GoEnum
// interface. This ensures that TapiCommon_CapacityUnit can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_CapacityUnit) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_CapacityUnit.
func (E_TapiCommon_CapacityUnit) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_CapacityUnit.
func (e E_TapiCommon_CapacityUnit) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_CapacityUnit")
}

const (
	// TapiCommon_CapacityUnit_UNSET corresponds to the value UNSET of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_UNSET E_TapiCommon_CapacityUnit = 0
	// TapiCommon_CapacityUnit_TB corresponds to the value TB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_TB E_TapiCommon_CapacityUnit = 1
	// TapiCommon_CapacityUnit_TBPS corresponds to the value TBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_TBPS E_TapiCommon_CapacityUnit = 2
	// TapiCommon_CapacityUnit_GB corresponds to the value GB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GB E_TapiCommon_CapacityUnit = 3
	// TapiCommon_CapacityUnit_GBPS corresponds to the value GBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GBPS E_TapiCommon_CapacityUnit = 4
	// TapiCommon_CapacityUnit_MB corresponds to the value MB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MB E_TapiCommon_CapacityUnit = 5
	// TapiCommon_CapacityUnit_MBPS corresponds to the value MBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MBPS E_TapiCommon_CapacityUnit = 6
	// TapiCommon_CapacityUnit_KB corresponds to the value KB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_KB E_TapiCommon_CapacityUnit = 7
	// TapiCommon_CapacityUnit_KBPS corresponds to the value KBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_KBPS E_TapiCommon_CapacityUnit = 8
	// TapiCommon_CapacityUnit_GHz corresponds to the value GHz of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GHz E_TapiCommon_CapacityUnit = 9
	// TapiCommon_CapacityUnit_MHz corresponds to the value MHz of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MHz E_TapiCommon_CapacityUnit = 10
)


// E_TapiCommon_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LayerProtocolName. An additional value named
// TapiCommon_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiCommon_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiCommon_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LayerProtocolName.
func (E_TapiCommon_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LayerProtocolName.
func (e E_TapiCommon_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LayerProtocolName")
}

const (
	// TapiCommon_LayerProtocolName_UNSET corresponds to the value UNSET of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_UNSET E_TapiCommon_LayerProtocolName = 0
	// TapiCommon_LayerProtocolName_ODU corresponds to the value ODU of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_ODU E_TapiCommon_LayerProtocolName = 1
	// TapiCommon_LayerProtocolName_ETH corresponds to the value ETH of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_ETH E_TapiCommon_LayerProtocolName = 2
	// TapiCommon_LayerProtocolName_DSR corresponds to the value DSR of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_DSR E_TapiCommon_LayerProtocolName = 3
	// TapiCommon_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_PHOTONIC_MEDIA E_TapiCommon_LayerProtocolName = 4
)


// E_TapiCommon_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LayerProtocolQualifier. An additional value named
// TapiCommon_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiCommon_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiCommon_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LayerProtocolQualifier.
func (E_TapiCommon_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LayerProtocolQualifier.
func (e E_TapiCommon_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LayerProtocolQualifier")
}

const (
	// TapiCommon_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_UNSET E_TapiCommon_LayerProtocolQualifier = 0
	// TapiCommon_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiCommon_LayerProtocolQualifier = 1
)


// E_TapiCommon_LifecycleState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LifecycleState. An additional value named
// TapiCommon_LifecycleState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LifecycleState int64

// IsYANGGoEnum ensures that TapiCommon_LifecycleState implements the yang.GoEnum
// interface. This ensures that TapiCommon_LifecycleState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LifecycleState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LifecycleState.
func (E_TapiCommon_LifecycleState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LifecycleState.
func (e E_TapiCommon_LifecycleState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LifecycleState")
}

const (
	// TapiCommon_LifecycleState_UNSET corresponds to the value UNSET of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_UNSET E_TapiCommon_LifecycleState = 0
	// TapiCommon_LifecycleState_PLANNED corresponds to the value PLANNED of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_PLANNED E_TapiCommon_LifecycleState = 1
	// TapiCommon_LifecycleState_POTENTIAL_AVAILABLE corresponds to the value POTENTIAL_AVAILABLE of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_POTENTIAL_AVAILABLE E_TapiCommon_LifecycleState = 2
	// TapiCommon_LifecycleState_POTENTIAL_BUSY corresponds to the value POTENTIAL_BUSY of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_POTENTIAL_BUSY E_TapiCommon_LifecycleState = 3
	// TapiCommon_LifecycleState_INSTALLED corresponds to the value INSTALLED of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_INSTALLED E_TapiCommon_LifecycleState = 4
	// TapiCommon_LifecycleState_PENDING_REMOVAL corresponds to the value PENDING_REMOVAL of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_PENDING_REMOVAL E_TapiCommon_LifecycleState = 5
)


// E_TapiCommon_OperationalState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_OperationalState. An additional value named
// TapiCommon_OperationalState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_OperationalState int64

// IsYANGGoEnum ensures that TapiCommon_OperationalState implements the yang.GoEnum
// interface. This ensures that TapiCommon_OperationalState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_OperationalState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_OperationalState.
func (E_TapiCommon_OperationalState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_OperationalState.
func (e E_TapiCommon_OperationalState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_OperationalState")
}

const (
	// TapiCommon_OperationalState_UNSET corresponds to the value UNSET of TapiCommon_OperationalState
	TapiCommon_OperationalState_UNSET E_TapiCommon_OperationalState = 0
	// TapiCommon_OperationalState_DISABLED corresponds to the value DISABLED of TapiCommon_OperationalState
	TapiCommon_OperationalState_DISABLED E_TapiCommon_OperationalState = 1
	// TapiCommon_OperationalState_ENABLED corresponds to the value ENABLED of TapiCommon_OperationalState
	TapiCommon_OperationalState_ENABLED E_TapiCommon_OperationalState = 2
)


// E_TapiCommon_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiCommon_PortDirection. An additional value named
// TapiCommon_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_PortDirection int64

// IsYANGGoEnum ensures that TapiCommon_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiCommon_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_PortDirection.
func (E_TapiCommon_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_PortDirection.
func (e E_TapiCommon_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_PortDirection")
}

const (
	// TapiCommon_PortDirection_UNSET corresponds to the value UNSET of TapiCommon_PortDirection
	TapiCommon_PortDirection_UNSET E_TapiCommon_PortDirection = 0
	// TapiCommon_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiCommon_PortDirection
	TapiCommon_PortDirection_BIDIRECTIONAL E_TapiCommon_PortDirection = 1
	// TapiCommon_PortDirection_INPUT corresponds to the value INPUT of TapiCommon_PortDirection
	TapiCommon_PortDirection_INPUT E_TapiCommon_PortDirection = 2
	// TapiCommon_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiCommon_PortDirection
	TapiCommon_PortDirection_OUTPUT E_TapiCommon_PortDirection = 3
	// TapiCommon_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiCommon_PortDirection
	TapiCommon_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiCommon_PortDirection = 4
)


// E_TapiCommon_TerminationDirection is a derived int64 type which is used to represent
// the enumerated node TapiCommon_TerminationDirection. An additional value named
// TapiCommon_TerminationDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_TerminationDirection int64

// IsYANGGoEnum ensures that TapiCommon_TerminationDirection implements the yang.GoEnum
// interface. This ensures that TapiCommon_TerminationDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_TerminationDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_TerminationDirection.
func (E_TapiCommon_TerminationDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_TerminationDirection.
func (e E_TapiCommon_TerminationDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_TerminationDirection")
}

const (
	// TapiCommon_TerminationDirection_UNSET corresponds to the value UNSET of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_UNSET E_TapiCommon_TerminationDirection = 0
	// TapiCommon_TerminationDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_BIDIRECTIONAL E_TapiCommon_TerminationDirection = 1
	// TapiCommon_TerminationDirection_SINK corresponds to the value SINK of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_SINK E_TapiCommon_TerminationDirection = 2
	// TapiCommon_TerminationDirection_SOURCE corresponds to the value SOURCE of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_SOURCE E_TapiCommon_TerminationDirection = 3
	// TapiCommon_TerminationDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_UNDEFINED_OR_UNKNOWN E_TapiCommon_TerminationDirection = 4
)


// E_TapiCommon_TerminationState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_TerminationState. An additional value named
// TapiCommon_TerminationState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_TerminationState int64

// IsYANGGoEnum ensures that TapiCommon_TerminationState implements the yang.GoEnum
// interface. This ensures that TapiCommon_TerminationState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_TerminationState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_TerminationState.
func (E_TapiCommon_TerminationState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_TerminationState.
func (e E_TapiCommon_TerminationState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_TerminationState")
}

const (
	// TapiCommon_TerminationState_UNSET corresponds to the value UNSET of TapiCommon_TerminationState
	TapiCommon_TerminationState_UNSET E_TapiCommon_TerminationState = 0
	// TapiCommon_TerminationState_LP_CAN_NEVER_TERMINATE corresponds to the value LP_CAN_NEVER_TERMINATE of TapiCommon_TerminationState
	TapiCommon_TerminationState_LP_CAN_NEVER_TERMINATE E_TapiCommon_TerminationState = 1
	// TapiCommon_TerminationState_LT_NOT_TERMINATED corresponds to the value LT_NOT_TERMINATED of TapiCommon_TerminationState
	TapiCommon_TerminationState_LT_NOT_TERMINATED E_TapiCommon_TerminationState = 2
	// TapiCommon_TerminationState_TERMINATED_SERVER_TO_CLIENT_FLOW corresponds to the value TERMINATED_SERVER_TO_CLIENT_FLOW of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_SERVER_TO_CLIENT_FLOW E_TapiCommon_TerminationState = 3
	// TapiCommon_TerminationState_TERMINATED_CLIENT_TO_SERVER_FLOW corresponds to the value TERMINATED_CLIENT_TO_SERVER_FLOW of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_CLIENT_TO_SERVER_FLOW E_TapiCommon_TerminationState = 4
	// TapiCommon_TerminationState_TERMINATED_BIDIRECTIONAL corresponds to the value TERMINATED_BIDIRECTIONAL of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_BIDIRECTIONAL E_TapiCommon_TerminationState = 5
	// TapiCommon_TerminationState_LT_PERMENANTLY_TERMINATED corresponds to the value LT_PERMENANTLY_TERMINATED of TapiCommon_TerminationState
	TapiCommon_TerminationState_LT_PERMENANTLY_TERMINATED E_TapiCommon_TerminationState = 6
	// TapiCommon_TerminationState_TERMINATION_STATE_UNKNOWN corresponds to the value TERMINATION_STATE_UNKNOWN of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATION_STATE_UNKNOWN E_TapiCommon_TerminationState = 7
)


// E_TapiConnectivity_CoordinateType is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_CoordinateType. An additional value named
// TapiConnectivity_CoordinateType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_CoordinateType int64

// IsYANGGoEnum ensures that TapiConnectivity_CoordinateType implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_CoordinateType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_CoordinateType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_CoordinateType.
func (E_TapiConnectivity_CoordinateType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_CoordinateType.
func (e E_TapiConnectivity_CoordinateType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_CoordinateType")
}

const (
	// TapiConnectivity_CoordinateType_UNSET corresponds to the value UNSET of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_UNSET E_TapiConnectivity_CoordinateType = 0
	// TapiConnectivity_CoordinateType_NO_COORDINATE corresponds to the value NO_COORDINATE of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_NO_COORDINATE E_TapiConnectivity_CoordinateType = 1
	// TapiConnectivity_CoordinateType_HOLD_OFF_TIME corresponds to the value HOLD_OFF_TIME of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_HOLD_OFF_TIME E_TapiConnectivity_CoordinateType = 2
	// TapiConnectivity_CoordinateType_WAIT_FOR_NOTIFICATION corresponds to the value WAIT_FOR_NOTIFICATION of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_WAIT_FOR_NOTIFICATION E_TapiConnectivity_CoordinateType = 3
)


// E_TapiConnectivity_FaultConditionDetermination is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_FaultConditionDetermination. An additional value named
// TapiConnectivity_FaultConditionDetermination_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_FaultConditionDetermination int64

// IsYANGGoEnum ensures that TapiConnectivity_FaultConditionDetermination implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_FaultConditionDetermination can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_FaultConditionDetermination) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_FaultConditionDetermination.
func (E_TapiConnectivity_FaultConditionDetermination) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_FaultConditionDetermination.
func (e E_TapiConnectivity_FaultConditionDetermination) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_FaultConditionDetermination")
}

const (
	// TapiConnectivity_FaultConditionDetermination_UNSET corresponds to the value UNSET of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_UNSET E_TapiConnectivity_FaultConditionDetermination = 0
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_INHERENT corresponds to the value FAULT_CONDITION_DETERMINATION_INHERENT of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_INHERENT E_TapiConnectivity_FaultConditionDetermination = 1
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE corresponds to the value FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE E_TapiConnectivity_FaultConditionDetermination = 2
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_SUBLAYER corresponds to the value FAULT_CONDITION_DETERMINATION_SUBLAYER of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_SUBLAYER E_TapiConnectivity_FaultConditionDetermination = 3
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_TEST corresponds to the value FAULT_CONDITION_DETERMINATION_TEST of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_TEST E_TapiConnectivity_FaultConditionDetermination = 4
)


// E_TapiConnectivity_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ForwardingDirection. An additional value named
// TapiConnectivity_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiConnectivity_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ForwardingDirection.
func (E_TapiConnectivity_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ForwardingDirection.
func (e E_TapiConnectivity_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ForwardingDirection")
}

const (
	// TapiConnectivity_ForwardingDirection_UNSET corresponds to the value UNSET of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNSET E_TapiConnectivity_ForwardingDirection = 0
	// TapiConnectivity_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_BIDIRECTIONAL E_TapiConnectivity_ForwardingDirection = 1
	// TapiConnectivity_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNIDIRECTIONAL E_TapiConnectivity_ForwardingDirection = 2
	// TapiConnectivity_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiConnectivity_ForwardingDirection = 3
)


// E_TapiConnectivity_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_LayerProtocolName. An additional value named
// TapiConnectivity_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiConnectivity_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_LayerProtocolName.
func (E_TapiConnectivity_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_LayerProtocolName.
func (e E_TapiConnectivity_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_LayerProtocolName")
}

const (
	// TapiConnectivity_LayerProtocolName_UNSET corresponds to the value UNSET of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_UNSET E_TapiConnectivity_LayerProtocolName = 0
	// TapiConnectivity_LayerProtocolName_ODU corresponds to the value ODU of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_ODU E_TapiConnectivity_LayerProtocolName = 1
	// TapiConnectivity_LayerProtocolName_ETH corresponds to the value ETH of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_ETH E_TapiConnectivity_LayerProtocolName = 2
	// TapiConnectivity_LayerProtocolName_DSR corresponds to the value DSR of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_DSR E_TapiConnectivity_LayerProtocolName = 3
	// TapiConnectivity_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_PHOTONIC_MEDIA E_TapiConnectivity_LayerProtocolName = 4
)


// E_TapiConnectivity_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_LayerProtocolQualifier. An additional value named
// TapiConnectivity_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiConnectivity_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_LayerProtocolQualifier.
func (E_TapiConnectivity_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_LayerProtocolQualifier.
func (e E_TapiConnectivity_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_LayerProtocolQualifier")
}

const (
	// TapiConnectivity_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_UNSET E_TapiConnectivity_LayerProtocolQualifier = 0
	// TapiConnectivity_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiConnectivity_LayerProtocolQualifier = 1
)


// E_TapiConnectivity_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_PortDirection. An additional value named
// TapiConnectivity_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_PortDirection int64

// IsYANGGoEnum ensures that TapiConnectivity_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_PortDirection.
func (E_TapiConnectivity_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_PortDirection.
func (e E_TapiConnectivity_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_PortDirection")
}

const (
	// TapiConnectivity_PortDirection_UNSET corresponds to the value UNSET of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_UNSET E_TapiConnectivity_PortDirection = 0
	// TapiConnectivity_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_BIDIRECTIONAL E_TapiConnectivity_PortDirection = 1
	// TapiConnectivity_PortDirection_INPUT corresponds to the value INPUT of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_INPUT E_TapiConnectivity_PortDirection = 2
	// TapiConnectivity_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_OUTPUT E_TapiConnectivity_PortDirection = 3
	// TapiConnectivity_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiConnectivity_PortDirection = 4
)


// E_TapiConnectivity_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_PortRole. An additional value named
// TapiConnectivity_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_PortRole int64

// IsYANGGoEnum ensures that TapiConnectivity_PortRole implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_PortRole.
func (E_TapiConnectivity_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_PortRole.
func (e E_TapiConnectivity_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_PortRole")
}

const (
	// TapiConnectivity_PortRole_UNSET corresponds to the value UNSET of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_UNSET E_TapiConnectivity_PortRole = 0
	// TapiConnectivity_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_SYMMETRIC E_TapiConnectivity_PortRole = 1
	// TapiConnectivity_PortRole_ROOT corresponds to the value ROOT of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_ROOT E_TapiConnectivity_PortRole = 2
	// TapiConnectivity_PortRole_LEAF corresponds to the value LEAF of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_LEAF E_TapiConnectivity_PortRole = 3
	// TapiConnectivity_PortRole_TRUNK corresponds to the value TRUNK of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_TRUNK E_TapiConnectivity_PortRole = 4
	// TapiConnectivity_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_UNKNOWN E_TapiConnectivity_PortRole = 5
)


// E_TapiConnectivity_ProtectionRole is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ProtectionRole. An additional value named
// TapiConnectivity_ProtectionRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ProtectionRole int64

// IsYANGGoEnum ensures that TapiConnectivity_ProtectionRole implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ProtectionRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ProtectionRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ProtectionRole.
func (E_TapiConnectivity_ProtectionRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ProtectionRole.
func (e E_TapiConnectivity_ProtectionRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ProtectionRole")
}

const (
	// TapiConnectivity_ProtectionRole_UNSET corresponds to the value UNSET of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_UNSET E_TapiConnectivity_ProtectionRole = 0
	// TapiConnectivity_ProtectionRole_WORK corresponds to the value WORK of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_WORK E_TapiConnectivity_ProtectionRole = 1
	// TapiConnectivity_ProtectionRole_PROTECT corresponds to the value PROTECT of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECT E_TapiConnectivity_ProtectionRole = 2
	// TapiConnectivity_ProtectionRole_PROTECTED corresponds to the value PROTECTED of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECTED E_TapiConnectivity_ProtectionRole = 3
	// TapiConnectivity_ProtectionRole_NA corresponds to the value NA of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_NA E_TapiConnectivity_ProtectionRole = 4
	// TapiConnectivity_ProtectionRole_WORK_RESTORE corresponds to the value WORK_RESTORE of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_WORK_RESTORE E_TapiConnectivity_ProtectionRole = 5
	// TapiConnectivity_ProtectionRole_PROTECT_RESTORE corresponds to the value PROTECT_RESTORE of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECT_RESTORE E_TapiConnectivity_ProtectionRole = 6
)


// E_TapiConnectivity_ReversionMode is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ReversionMode. An additional value named
// TapiConnectivity_ReversionMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ReversionMode int64

// IsYANGGoEnum ensures that TapiConnectivity_ReversionMode implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ReversionMode can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ReversionMode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ReversionMode.
func (E_TapiConnectivity_ReversionMode) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ReversionMode.
func (e E_TapiConnectivity_ReversionMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ReversionMode")
}

const (
	// TapiConnectivity_ReversionMode_UNSET corresponds to the value UNSET of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_UNSET E_TapiConnectivity_ReversionMode = 0
	// TapiConnectivity_ReversionMode_REVERTIVE corresponds to the value REVERTIVE of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_REVERTIVE E_TapiConnectivity_ReversionMode = 1
	// TapiConnectivity_ReversionMode_NON_REVERTIVE corresponds to the value NON_REVERTIVE of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_NON_REVERTIVE E_TapiConnectivity_ReversionMode = 2
)


// E_TapiConnectivity_RouteState is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_RouteState. An additional value named
// TapiConnectivity_RouteState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_RouteState int64

// IsYANGGoEnum ensures that TapiConnectivity_RouteState implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_RouteState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_RouteState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_RouteState.
func (E_TapiConnectivity_RouteState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_RouteState.
func (e E_TapiConnectivity_RouteState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_RouteState")
}

const (
	// TapiConnectivity_RouteState_UNSET corresponds to the value UNSET of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_UNSET E_TapiConnectivity_RouteState = 0
	// TapiConnectivity_RouteState_ROUTE_STATE_CURRENT corresponds to the value ROUTE_STATE_CURRENT of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_CURRENT E_TapiConnectivity_RouteState = 1
	// TapiConnectivity_RouteState_ROUTE_STATE_NOT_CURRENT corresponds to the value ROUTE_STATE_NOT_CURRENT of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_NOT_CURRENT E_TapiConnectivity_RouteState = 2
	// TapiConnectivity_RouteState_ROUTE_STATE_UNKNOWN corresponds to the value ROUTE_STATE_UNKNOWN of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_UNKNOWN E_TapiConnectivity_RouteState = 3
)


// E_TapiConnectivity_SelectionControl is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_SelectionControl. An additional value named
// TapiConnectivity_SelectionControl_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_SelectionControl int64

// IsYANGGoEnum ensures that TapiConnectivity_SelectionControl implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_SelectionControl can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_SelectionControl) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_SelectionControl.
func (E_TapiConnectivity_SelectionControl) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_SelectionControl.
func (e E_TapiConnectivity_SelectionControl) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_SelectionControl")
}

const (
	// TapiConnectivity_SelectionControl_UNSET corresponds to the value UNSET of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_UNSET E_TapiConnectivity_SelectionControl = 0
	// TapiConnectivity_SelectionControl_LOCK_OUT corresponds to the value LOCK_OUT of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_LOCK_OUT E_TapiConnectivity_SelectionControl = 1
	// TapiConnectivity_SelectionControl_NORMAL corresponds to the value NORMAL of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_NORMAL E_TapiConnectivity_SelectionControl = 2
	// TapiConnectivity_SelectionControl_MANUAL corresponds to the value MANUAL of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_MANUAL E_TapiConnectivity_SelectionControl = 3
	// TapiConnectivity_SelectionControl_FORCED corresponds to the value FORCED of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_FORCED E_TapiConnectivity_SelectionControl = 4
)


// E_TapiConnectivity_SelectionReason is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_SelectionReason. An additional value named
// TapiConnectivity_SelectionReason_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_SelectionReason int64

// IsYANGGoEnum ensures that TapiConnectivity_SelectionReason implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_SelectionReason can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_SelectionReason) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_SelectionReason.
func (E_TapiConnectivity_SelectionReason) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_SelectionReason.
func (e E_TapiConnectivity_SelectionReason) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_SelectionReason")
}

const (
	// TapiConnectivity_SelectionReason_UNSET corresponds to the value UNSET of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_UNSET E_TapiConnectivity_SelectionReason = 0
	// TapiConnectivity_SelectionReason_LOCKOUT corresponds to the value LOCKOUT of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_LOCKOUT E_TapiConnectivity_SelectionReason = 1
	// TapiConnectivity_SelectionReason_NORMAL corresponds to the value NORMAL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_NORMAL E_TapiConnectivity_SelectionReason = 2
	// TapiConnectivity_SelectionReason_MANUAL corresponds to the value MANUAL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_MANUAL E_TapiConnectivity_SelectionReason = 3
	// TapiConnectivity_SelectionReason_FORCED corresponds to the value FORCED of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_FORCED E_TapiConnectivity_SelectionReason = 4
	// TapiConnectivity_SelectionReason_WAIT_TO_REVERT corresponds to the value WAIT_TO_REVERT of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_WAIT_TO_REVERT E_TapiConnectivity_SelectionReason = 5
	// TapiConnectivity_SelectionReason_SIGNAL_DEGRADE corresponds to the value SIGNAL_DEGRADE of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_SIGNAL_DEGRADE E_TapiConnectivity_SelectionReason = 6
	// TapiConnectivity_SelectionReason_SIGNAL_FAIL corresponds to the value SIGNAL_FAIL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_SIGNAL_FAIL E_TapiConnectivity_SelectionReason = 7
)


// E_TapiConnectivity_ServiceType is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ServiceType. An additional value named
// TapiConnectivity_ServiceType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ServiceType int64

// IsYANGGoEnum ensures that TapiConnectivity_ServiceType implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ServiceType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ServiceType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ServiceType.
func (E_TapiConnectivity_ServiceType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ServiceType.
func (e E_TapiConnectivity_ServiceType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ServiceType")
}

const (
	// TapiConnectivity_ServiceType_UNSET corresponds to the value UNSET of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_UNSET E_TapiConnectivity_ServiceType = 0
	// TapiConnectivity_ServiceType_POINT_TO_POINT_CONNECTIVITY corresponds to the value POINT_TO_POINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_POINT_TO_POINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 1
	// TapiConnectivity_ServiceType_POINT_TO_MULTIPOINT_CONNECTIVITY corresponds to the value POINT_TO_MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_POINT_TO_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 2
	// TapiConnectivity_ServiceType_MULTIPOINT_CONNECTIVITY corresponds to the value MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 3
	// TapiConnectivity_ServiceType_ROOTED_MULTIPOINT_CONNECTIVITY corresponds to the value ROOTED_MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_ROOTED_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 4
)


// E_TapiPathComputation_DirectiveValue is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_DirectiveValue. An additional value named
// TapiPathComputation_DirectiveValue_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_DirectiveValue int64

// IsYANGGoEnum ensures that TapiPathComputation_DirectiveValue implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_DirectiveValue can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_DirectiveValue) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_DirectiveValue.
func (E_TapiPathComputation_DirectiveValue) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_DirectiveValue.
func (e E_TapiPathComputation_DirectiveValue) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_DirectiveValue")
}

const (
	// TapiPathComputation_DirectiveValue_UNSET corresponds to the value UNSET of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_UNSET E_TapiPathComputation_DirectiveValue = 0
	// TapiPathComputation_DirectiveValue_MINIMIZE corresponds to the value MINIMIZE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_MINIMIZE E_TapiPathComputation_DirectiveValue = 1
	// TapiPathComputation_DirectiveValue_MAXIMIZE corresponds to the value MAXIMIZE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_MAXIMIZE E_TapiPathComputation_DirectiveValue = 2
	// TapiPathComputation_DirectiveValue_ALLOW corresponds to the value ALLOW of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_ALLOW E_TapiPathComputation_DirectiveValue = 3
	// TapiPathComputation_DirectiveValue_DISALLOW corresponds to the value DISALLOW of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_DISALLOW E_TapiPathComputation_DirectiveValue = 4
	// TapiPathComputation_DirectiveValue_DONT_CARE corresponds to the value DONT_CARE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_DONT_CARE E_TapiPathComputation_DirectiveValue = 5
)


// E_TapiPathComputation_DiversityPolicy is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_DiversityPolicy. An additional value named
// TapiPathComputation_DiversityPolicy_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_DiversityPolicy int64

// IsYANGGoEnum ensures that TapiPathComputation_DiversityPolicy implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_DiversityPolicy can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_DiversityPolicy) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_DiversityPolicy.
func (E_TapiPathComputation_DiversityPolicy) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_DiversityPolicy.
func (e E_TapiPathComputation_DiversityPolicy) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_DiversityPolicy")
}

const (
	// TapiPathComputation_DiversityPolicy_UNSET corresponds to the value UNSET of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_UNSET E_TapiPathComputation_DiversityPolicy = 0
	// TapiPathComputation_DiversityPolicy_SRLG corresponds to the value SRLG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SRLG E_TapiPathComputation_DiversityPolicy = 1
	// TapiPathComputation_DiversityPolicy_SRNG corresponds to the value SRNG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SRNG E_TapiPathComputation_DiversityPolicy = 2
	// TapiPathComputation_DiversityPolicy_SNG corresponds to the value SNG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SNG E_TapiPathComputation_DiversityPolicy = 3
	// TapiPathComputation_DiversityPolicy_NODE corresponds to the value NODE of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_NODE E_TapiPathComputation_DiversityPolicy = 4
	// TapiPathComputation_DiversityPolicy_LINK corresponds to the value LINK of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_LINK E_TapiPathComputation_DiversityPolicy = 5
)


// E_TapiPathComputation_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_ForwardingDirection. An additional value named
// TapiPathComputation_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiPathComputation_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_ForwardingDirection.
func (E_TapiPathComputation_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_ForwardingDirection.
func (e E_TapiPathComputation_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_ForwardingDirection")
}

const (
	// TapiPathComputation_ForwardingDirection_UNSET corresponds to the value UNSET of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNSET E_TapiPathComputation_ForwardingDirection = 0
	// TapiPathComputation_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_BIDIRECTIONAL E_TapiPathComputation_ForwardingDirection = 1
	// TapiPathComputation_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNIDIRECTIONAL E_TapiPathComputation_ForwardingDirection = 2
	// TapiPathComputation_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiPathComputation_ForwardingDirection = 3
)


// E_TapiPathComputation_GradesOfImpact is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_GradesOfImpact. An additional value named
// TapiPathComputation_GradesOfImpact_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_GradesOfImpact int64

// IsYANGGoEnum ensures that TapiPathComputation_GradesOfImpact implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_GradesOfImpact can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_GradesOfImpact) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_GradesOfImpact.
func (E_TapiPathComputation_GradesOfImpact) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_GradesOfImpact.
func (e E_TapiPathComputation_GradesOfImpact) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_GradesOfImpact")
}

const (
	// TapiPathComputation_GradesOfImpact_UNSET corresponds to the value UNSET of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_UNSET E_TapiPathComputation_GradesOfImpact = 0
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_HITLESS corresponds to the value GRADES_OF_IMPACT_HITLESS of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_HITLESS E_TapiPathComputation_GradesOfImpact = 1
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_LONG_IMPACT corresponds to the value GRADES_OF_IMPACT_LONG_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_LONG_IMPACT E_TapiPathComputation_GradesOfImpact = 2
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MAJOR_IMPACT corresponds to the value GRADES_OF_IMPACT_MAJOR_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MAJOR_IMPACT E_TapiPathComputation_GradesOfImpact = 3
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MINOR_IMPACT corresponds to the value GRADES_OF_IMPACT_MINOR_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MINOR_IMPACT E_TapiPathComputation_GradesOfImpact = 4
)


// E_TapiPathComputation_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_LayerProtocolName. An additional value named
// TapiPathComputation_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiPathComputation_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_LayerProtocolName.
func (E_TapiPathComputation_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_LayerProtocolName.
func (e E_TapiPathComputation_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_LayerProtocolName")
}

const (
	// TapiPathComputation_LayerProtocolName_UNSET corresponds to the value UNSET of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_UNSET E_TapiPathComputation_LayerProtocolName = 0
	// TapiPathComputation_LayerProtocolName_ODU corresponds to the value ODU of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_ODU E_TapiPathComputation_LayerProtocolName = 1
	// TapiPathComputation_LayerProtocolName_ETH corresponds to the value ETH of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_ETH E_TapiPathComputation_LayerProtocolName = 2
	// TapiPathComputation_LayerProtocolName_DSR corresponds to the value DSR of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_DSR E_TapiPathComputation_LayerProtocolName = 3
	// TapiPathComputation_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_PHOTONIC_MEDIA E_TapiPathComputation_LayerProtocolName = 4
)


// E_TapiPathComputation_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_LayerProtocolQualifier. An additional value named
// TapiPathComputation_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiPathComputation_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_LayerProtocolQualifier.
func (E_TapiPathComputation_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_LayerProtocolQualifier.
func (e E_TapiPathComputation_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_LayerProtocolQualifier")
}

const (
	// TapiPathComputation_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_UNSET E_TapiPathComputation_LayerProtocolQualifier = 0
	// TapiPathComputation_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiPathComputation_LayerProtocolQualifier = 1
)


// E_TapiPathComputation_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_PortDirection. An additional value named
// TapiPathComputation_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_PortDirection int64

// IsYANGGoEnum ensures that TapiPathComputation_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_PortDirection.
func (E_TapiPathComputation_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_PortDirection.
func (e E_TapiPathComputation_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_PortDirection")
}

const (
	// TapiPathComputation_PortDirection_UNSET corresponds to the value UNSET of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_UNSET E_TapiPathComputation_PortDirection = 0
	// TapiPathComputation_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_BIDIRECTIONAL E_TapiPathComputation_PortDirection = 1
	// TapiPathComputation_PortDirection_INPUT corresponds to the value INPUT of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_INPUT E_TapiPathComputation_PortDirection = 2
	// TapiPathComputation_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_OUTPUT E_TapiPathComputation_PortDirection = 3
	// TapiPathComputation_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiPathComputation_PortDirection = 4
)


// E_TapiPathComputation_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_PortRole. An additional value named
// TapiPathComputation_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_PortRole int64

// IsYANGGoEnum ensures that TapiPathComputation_PortRole implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_PortRole.
func (E_TapiPathComputation_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_PortRole.
func (e E_TapiPathComputation_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_PortRole")
}

const (
	// TapiPathComputation_PortRole_UNSET corresponds to the value UNSET of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_UNSET E_TapiPathComputation_PortRole = 0
	// TapiPathComputation_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_SYMMETRIC E_TapiPathComputation_PortRole = 1
	// TapiPathComputation_PortRole_ROOT corresponds to the value ROOT of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_ROOT E_TapiPathComputation_PortRole = 2
	// TapiPathComputation_PortRole_LEAF corresponds to the value LEAF of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_LEAF E_TapiPathComputation_PortRole = 3
	// TapiPathComputation_PortRole_TRUNK corresponds to the value TRUNK of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_TRUNK E_TapiPathComputation_PortRole = 4
	// TapiPathComputation_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_UNKNOWN E_TapiPathComputation_PortRole = 5
)


// E_TapiPathComputation_RouteObjectiveFunction is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_RouteObjectiveFunction. An additional value named
// TapiPathComputation_RouteObjectiveFunction_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_RouteObjectiveFunction int64

// IsYANGGoEnum ensures that TapiPathComputation_RouteObjectiveFunction implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_RouteObjectiveFunction can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_RouteObjectiveFunction) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_RouteObjectiveFunction.
func (E_TapiPathComputation_RouteObjectiveFunction) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_RouteObjectiveFunction.
func (e E_TapiPathComputation_RouteObjectiveFunction) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_RouteObjectiveFunction")
}

const (
	// TapiPathComputation_RouteObjectiveFunction_UNSET corresponds to the value UNSET of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_UNSET E_TapiPathComputation_RouteObjectiveFunction = 0
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_HOP corresponds to the value MIN_WORK_ROUTE_HOP of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_HOP E_TapiPathComputation_RouteObjectiveFunction = 1
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_COST corresponds to the value MIN_WORK_ROUTE_COST of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_COST E_TapiPathComputation_RouteObjectiveFunction = 2
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_LATENCY corresponds to the value MIN_WORK_ROUTE_LATENCY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_LATENCY E_TapiPathComputation_RouteObjectiveFunction = 3
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP E_TapiPathComputation_RouteObjectiveFunction = 4
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST E_TapiPathComputation_RouteObjectiveFunction = 5
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY E_TapiPathComputation_RouteObjectiveFunction = 6
	// TapiPathComputation_RouteObjectiveFunction_LOAD_BALANCE_MAX_UNUSED_CAPACITY corresponds to the value LOAD_BALANCE_MAX_UNUSED_CAPACITY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_LOAD_BALANCE_MAX_UNUSED_CAPACITY E_TapiPathComputation_RouteObjectiveFunction = 7
)


// E_TapiTopology_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ForwardingDirection. An additional value named
// TapiTopology_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiTopology_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiTopology_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ForwardingDirection.
func (E_TapiTopology_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ForwardingDirection.
func (e E_TapiTopology_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ForwardingDirection")
}

const (
	// TapiTopology_ForwardingDirection_UNSET corresponds to the value UNSET of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNSET E_TapiTopology_ForwardingDirection = 0
	// TapiTopology_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_BIDIRECTIONAL E_TapiTopology_ForwardingDirection = 1
	// TapiTopology_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNIDIRECTIONAL E_TapiTopology_ForwardingDirection = 2
	// TapiTopology_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiTopology_ForwardingDirection = 3
)


// E_TapiTopology_ForwardingRule is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ForwardingRule. An additional value named
// TapiTopology_ForwardingRule_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ForwardingRule int64

// IsYANGGoEnum ensures that TapiTopology_ForwardingRule implements the yang.GoEnum
// interface. This ensures that TapiTopology_ForwardingRule can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ForwardingRule) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ForwardingRule.
func (E_TapiTopology_ForwardingRule) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ForwardingRule.
func (e E_TapiTopology_ForwardingRule) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ForwardingRule")
}

const (
	// TapiTopology_ForwardingRule_UNSET corresponds to the value UNSET of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_UNSET E_TapiTopology_ForwardingRule = 0
	// TapiTopology_ForwardingRule_MAY_FORWARD_ACROSS_GROUP corresponds to the value MAY_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_MAY_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 1
	// TapiTopology_ForwardingRule_MUST_FORWARD_ACROSS_GROUP corresponds to the value MUST_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_MUST_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 2
	// TapiTopology_ForwardingRule_CANNOT_FORWARD_ACROSS_GROUP corresponds to the value CANNOT_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_CANNOT_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 3
	// TapiTopology_ForwardingRule_NO_STATEMENT_ON_FORWARDING corresponds to the value NO_STATEMENT_ON_FORWARDING of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_NO_STATEMENT_ON_FORWARDING E_TapiTopology_ForwardingRule = 4
	// TapiTopology_ForwardingRule_INTER_CONNECTION_CONTENTION corresponds to the value INTER_CONNECTION_CONTENTION of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_INTER_CONNECTION_CONTENTION E_TapiTopology_ForwardingRule = 5
)


// E_TapiTopology_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiTopology_LayerProtocolName. An additional value named
// TapiTopology_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiTopology_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiTopology_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_LayerProtocolName.
func (E_TapiTopology_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_LayerProtocolName.
func (e E_TapiTopology_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_LayerProtocolName")
}

const (
	// TapiTopology_LayerProtocolName_UNSET corresponds to the value UNSET of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_UNSET E_TapiTopology_LayerProtocolName = 0
	// TapiTopology_LayerProtocolName_ODU corresponds to the value ODU of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_ODU E_TapiTopology_LayerProtocolName = 1
	// TapiTopology_LayerProtocolName_ETH corresponds to the value ETH of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_ETH E_TapiTopology_LayerProtocolName = 2
	// TapiTopology_LayerProtocolName_DSR corresponds to the value DSR of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_DSR E_TapiTopology_LayerProtocolName = 3
	// TapiTopology_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_PHOTONIC_MEDIA E_TapiTopology_LayerProtocolName = 4
)


// E_TapiTopology_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiTopology_LayerProtocolQualifier. An additional value named
// TapiTopology_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiTopology_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiTopology_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_LayerProtocolQualifier.
func (E_TapiTopology_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_LayerProtocolQualifier.
func (e E_TapiTopology_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_LayerProtocolQualifier")
}

const (
	// TapiTopology_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_UNSET E_TapiTopology_LayerProtocolQualifier = 0
	// TapiTopology_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiTopology_LayerProtocolQualifier = 1
)


// E_TapiTopology_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortDirection. An additional value named
// TapiTopology_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortDirection int64

// IsYANGGoEnum ensures that TapiTopology_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortDirection.
func (E_TapiTopology_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortDirection.
func (e E_TapiTopology_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortDirection")
}

const (
	// TapiTopology_PortDirection_UNSET corresponds to the value UNSET of TapiTopology_PortDirection
	TapiTopology_PortDirection_UNSET E_TapiTopology_PortDirection = 0
	// TapiTopology_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiTopology_PortDirection
	TapiTopology_PortDirection_BIDIRECTIONAL E_TapiTopology_PortDirection = 1
	// TapiTopology_PortDirection_INPUT corresponds to the value INPUT of TapiTopology_PortDirection
	TapiTopology_PortDirection_INPUT E_TapiTopology_PortDirection = 2
	// TapiTopology_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiTopology_PortDirection
	TapiTopology_PortDirection_OUTPUT E_TapiTopology_PortDirection = 3
	// TapiTopology_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiTopology_PortDirection
	TapiTopology_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiTopology_PortDirection = 4
)


// E_TapiTopology_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortRole. An additional value named
// TapiTopology_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortRole int64

// IsYANGGoEnum ensures that TapiTopology_PortRole implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortRole.
func (E_TapiTopology_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortRole.
func (e E_TapiTopology_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortRole")
}

const (
	// TapiTopology_PortRole_UNSET corresponds to the value UNSET of TapiTopology_PortRole
	TapiTopology_PortRole_UNSET E_TapiTopology_PortRole = 0
	// TapiTopology_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiTopology_PortRole
	TapiTopology_PortRole_SYMMETRIC E_TapiTopology_PortRole = 1
	// TapiTopology_PortRole_ROOT corresponds to the value ROOT of TapiTopology_PortRole
	TapiTopology_PortRole_ROOT E_TapiTopology_PortRole = 2
	// TapiTopology_PortRole_LEAF corresponds to the value LEAF of TapiTopology_PortRole
	TapiTopology_PortRole_LEAF E_TapiTopology_PortRole = 3
	// TapiTopology_PortRole_TRUNK corresponds to the value TRUNK of TapiTopology_PortRole
	TapiTopology_PortRole_TRUNK E_TapiTopology_PortRole = 4
	// TapiTopology_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiTopology_PortRole
	TapiTopology_PortRole_UNKNOWN E_TapiTopology_PortRole = 5
)


// E_TapiTopology_PortRoleRuleOption is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortRoleRuleOption. An additional value named
// TapiTopology_PortRoleRuleOption_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortRoleRuleOption int64

// IsYANGGoEnum ensures that TapiTopology_PortRoleRuleOption implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortRoleRuleOption can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortRoleRuleOption) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortRoleRuleOption.
func (E_TapiTopology_PortRoleRuleOption) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortRoleRuleOption.
func (e E_TapiTopology_PortRoleRuleOption) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortRoleRuleOption")
}

const (
	// TapiTopology_PortRoleRuleOption_UNSET corresponds to the value UNSET of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_UNSET E_TapiTopology_PortRoleRuleOption = 0
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_ANY_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_ANY_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_ANY_ROLE E_TapiTopology_PortRoleRuleOption = 1
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE E_TapiTopology_PortRoleRuleOption = 2
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_NOT_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_NOT_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_NOT_ROLE E_TapiTopology_PortRoleRuleOption = 3
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_SAME_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_SAME_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_SAME_ROLE E_TapiTopology_PortRoleRuleOption = 4
)


// E_TapiTopology_ProtectionType is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ProtectionType. An additional value named
// TapiTopology_ProtectionType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ProtectionType int64

// IsYANGGoEnum ensures that TapiTopology_ProtectionType implements the yang.GoEnum
// interface. This ensures that TapiTopology_ProtectionType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ProtectionType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ProtectionType.
func (E_TapiTopology_ProtectionType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ProtectionType.
func (e E_TapiTopology_ProtectionType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ProtectionType")
}

const (
	// TapiTopology_ProtectionType_UNSET corresponds to the value UNSET of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_UNSET E_TapiTopology_ProtectionType = 0
	// TapiTopology_ProtectionType_NO_PROTECTION corresponds to the value NO_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_NO_PROTECTION E_TapiTopology_ProtectionType = 1
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION corresponds to the value ONE_PLUS_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION E_TapiTopology_ProtectionType = 2
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION corresponds to the value ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION E_TapiTopology_ProtectionType = 3
	// TapiTopology_ProtectionType_PERMANENT_ONE_PLUS_ONE_PROTECTION corresponds to the value PERMANENT_ONE_PLUS_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_PERMANENT_ONE_PLUS_ONE_PROTECTION E_TapiTopology_ProtectionType = 4
	// TapiTopology_ProtectionType_ONE_FOR_ONE_PROTECTION corresponds to the value ONE_FOR_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_ONE_PROTECTION E_TapiTopology_ProtectionType = 5
	// TapiTopology_ProtectionType_DYNAMIC_RESTORATION corresponds to the value DYNAMIC_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_DYNAMIC_RESTORATION E_TapiTopology_ProtectionType = 6
	// TapiTopology_ProtectionType_PRE_COMPUTED_RESTORATION corresponds to the value PRE_COMPUTED_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_PRE_COMPUTED_RESTORATION E_TapiTopology_ProtectionType = 7
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION corresponds to the value ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION E_TapiTopology_ProtectionType = 8
	// TapiTopology_ProtectionType_ONE_FOR_N_PROTECTION corresponds to the value ONE_FOR_N_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_N_PROTECTION E_TapiTopology_ProtectionType = 9
	// TapiTopology_ProtectionType_M_FOR_N_PROTECTION corresponds to the value M_FOR_N_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_M_FOR_N_PROTECTION E_TapiTopology_ProtectionType = 10
	// TapiTopology_ProtectionType_ONE_FOR_ONE_BY_N corresponds to the value ONE_FOR_ONE_BY_N of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_ONE_BY_N E_TapiTopology_ProtectionType = 11
)


// E_TapiTopology_RestorationPolicy is a derived int64 type which is used to represent
// the enumerated node TapiTopology_RestorationPolicy. An additional value named
// TapiTopology_RestorationPolicy_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_RestorationPolicy int64

// IsYANGGoEnum ensures that TapiTopology_RestorationPolicy implements the yang.GoEnum
// interface. This ensures that TapiTopology_RestorationPolicy can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_RestorationPolicy) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_RestorationPolicy.
func (E_TapiTopology_RestorationPolicy) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_RestorationPolicy.
func (e E_TapiTopology_RestorationPolicy) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_RestorationPolicy")
}

const (
	// TapiTopology_RestorationPolicy_UNSET corresponds to the value UNSET of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_UNSET E_TapiTopology_RestorationPolicy = 0
	// TapiTopology_RestorationPolicy_PER_DOMAIN_RESTORATION corresponds to the value PER_DOMAIN_RESTORATION of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_PER_DOMAIN_RESTORATION E_TapiTopology_RestorationPolicy = 1
	// TapiTopology_RestorationPolicy_END_TO_END_RESTORATION corresponds to the value END_TO_END_RESTORATION of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_END_TO_END_RESTORATION E_TapiTopology_RestorationPolicy = 2
	// TapiTopology_RestorationPolicy_NA corresponds to the value NA of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_NA E_TapiTopology_RestorationPolicy = 3
)


// E_TapiTopology_RuleType is a derived int64 type which is used to represent
// the enumerated node TapiTopology_RuleType. An additional value named
// TapiTopology_RuleType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_RuleType int64

// IsYANGGoEnum ensures that TapiTopology_RuleType implements the yang.GoEnum
// interface. This ensures that TapiTopology_RuleType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_RuleType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_RuleType.
func (E_TapiTopology_RuleType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_RuleType.
func (e E_TapiTopology_RuleType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_RuleType")
}

const (
	// TapiTopology_RuleType_UNSET corresponds to the value UNSET of TapiTopology_RuleType
	TapiTopology_RuleType_UNSET E_TapiTopology_RuleType = 0
	// TapiTopology_RuleType_FORWARDING corresponds to the value FORWARDING of TapiTopology_RuleType
	TapiTopology_RuleType_FORWARDING E_TapiTopology_RuleType = 1
	// TapiTopology_RuleType_CAPACITY corresponds to the value CAPACITY of TapiTopology_RuleType
	TapiTopology_RuleType_CAPACITY E_TapiTopology_RuleType = 2
	// TapiTopology_RuleType_COST corresponds to the value COST of TapiTopology_RuleType
	TapiTopology_RuleType_COST E_TapiTopology_RuleType = 3
	// TapiTopology_RuleType_TIMING corresponds to the value TIMING of TapiTopology_RuleType
	TapiTopology_RuleType_TIMING E_TapiTopology_RuleType = 4
	// TapiTopology_RuleType_RISK corresponds to the value RISK of TapiTopology_RuleType
	TapiTopology_RuleType_RISK E_TapiTopology_RuleType = 5
	// TapiTopology_RuleType_GROUPING corresponds to the value GROUPING of TapiTopology_RuleType
	TapiTopology_RuleType_GROUPING E_TapiTopology_RuleType = 6
)


// E_TapiTopology_SignalPropertyValueRule is a derived int64 type which is used to represent
// the enumerated node TapiTopology_SignalPropertyValueRule. An additional value named
// TapiTopology_SignalPropertyValueRule_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_SignalPropertyValueRule int64

// IsYANGGoEnum ensures that TapiTopology_SignalPropertyValueRule implements the yang.GoEnum
// interface. This ensures that TapiTopology_SignalPropertyValueRule can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_SignalPropertyValueRule) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_SignalPropertyValueRule.
func (E_TapiTopology_SignalPropertyValueRule) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_SignalPropertyValueRule.
func (e E_TapiTopology_SignalPropertyValueRule) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_SignalPropertyValueRule")
}

const (
	// TapiTopology_SignalPropertyValueRule_UNSET corresponds to the value UNSET of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_UNSET E_TapiTopology_SignalPropertyValueRule = 0
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE E_TapiTopology_SignalPropertyValueRule = 1
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE E_TapiTopology_SignalPropertyValueRule = 2
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE E_TapiTopology_SignalPropertyValueRule = 3
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE E_TapiTopology_SignalPropertyValueRule = 4
)


// ΛEnum is a map, keyed by the name of the type defined for each enum in the
// generated Go code, which provides a mapping between the constant int64 value
// of each value of the enumeration, and the string that is used to represent it
// in the YANG schema. The map is named ΛEnum in order to avoid clash with any
// valid YANG identifier.
var ΛEnum = map[string]map[int64]ygot.EnumDefinition{
	"E_TapiCommon_AdministrativeState": {
		1: {Name: "LOCKED"},
		2: {Name: "UNLOCKED"},
	},
	"E_TapiCommon_CapacityUnit": {
		1: {Name: "TB"},
		2: {Name: "TBPS"},
		3: {Name: "GB"},
		4: {Name: "GBPS"},
		5: {Name: "MB"},
		6: {Name: "MBPS"},
		7: {Name: "KB"},
		8: {Name: "KBPS"},
		9: {Name: "GHz"},
		10: {Name: "MHz"},
	},
	"E_TapiCommon_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiCommon_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
	},
	"E_TapiCommon_LifecycleState": {
		1: {Name: "PLANNED"},
		2: {Name: "POTENTIAL_AVAILABLE"},
		3: {Name: "POTENTIAL_BUSY"},
		4: {Name: "INSTALLED"},
		5: {Name: "PENDING_REMOVAL"},
	},
	"E_TapiCommon_OperationalState": {
		1: {Name: "DISABLED"},
		2: {Name: "ENABLED"},
	},
	"E_TapiCommon_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiCommon_TerminationDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "SINK"},
		3: {Name: "SOURCE"},
		4: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiCommon_TerminationState": {
		1: {Name: "LP_CAN_NEVER_TERMINATE"},
		2: {Name: "LT_NOT_TERMINATED"},
		3: {Name: "TERMINATED_SERVER_TO_CLIENT_FLOW"},
		4: {Name: "TERMINATED_CLIENT_TO_SERVER_FLOW"},
		5: {Name: "TERMINATED_BIDIRECTIONAL"},
		6: {Name: "LT_PERMENANTLY_TERMINATED"},
		7: {Name: "TERMINATION_STATE_UNKNOWN"},
	},
	"E_TapiConnectivity_CoordinateType": {
		1: {Name: "NO_COORDINATE"},
		2: {Name: "HOLD_OFF_TIME"},
		3: {Name: "WAIT_FOR_NOTIFICATION"},
	},
	"E_TapiConnectivity_FaultConditionDetermination": {
		1: {Name: "FAULT_CONDITION_DETERMINATION_INHERENT", DefiningModule: "tapi-connectivity"},
		2: {Name: "FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE", DefiningModule: "tapi-connectivity"},
		3: {Name: "FAULT_CONDITION_DETERMINATION_SUBLAYER", DefiningModule: "tapi-connectivity"},
		4: {Name: "FAULT_CONDITION_DETERMINATION_TEST", DefiningModule: "tapi-connectivity"},
	},
	"E_TapiConnectivity_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiConnectivity_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiConnectivity_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
	},
	"E_TapiConnectivity_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiConnectivity_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiConnectivity_ProtectionRole": {
		1: {Name: "WORK"},
		2: {Name: "PROTECT"},
		3: {Name: "PROTECTED"},
		4: {Name: "NA"},
		5: {Name: "WORK_RESTORE"},
		6: {Name: "PROTECT_RESTORE"},
	},
	"E_TapiConnectivity_ReversionMode": {
		1: {Name: "REVERTIVE"},
		2: {Name: "NON-REVERTIVE"},
	},
	"E_TapiConnectivity_RouteState": {
		1: {Name: "ROUTE_STATE_CURRENT", DefiningModule: "tapi-connectivity"},
		2: {Name: "ROUTE_STATE_NOT_CURRENT", DefiningModule: "tapi-connectivity"},
		3: {Name: "ROUTE_STATE_UNKNOWN", DefiningModule: "tapi-connectivity"},
	},
	"E_TapiConnectivity_SelectionControl": {
		1: {Name: "LOCK_OUT"},
		2: {Name: "NORMAL"},
		3: {Name: "MANUAL"},
		4: {Name: "FORCED"},
	},
	"E_TapiConnectivity_SelectionReason": {
		1: {Name: "LOCKOUT"},
		2: {Name: "NORMAL"},
		3: {Name: "MANUAL"},
		4: {Name: "FORCED"},
		5: {Name: "WAIT_TO_REVERT"},
		6: {Name: "SIGNAL_DEGRADE"},
		7: {Name: "SIGNAL_FAIL"},
	},
	"E_TapiConnectivity_ServiceType": {
		1: {Name: "POINT_TO_POINT_CONNECTIVITY"},
		2: {Name: "POINT_TO_MULTIPOINT_CONNECTIVITY"},
		3: {Name: "MULTIPOINT_CONNECTIVITY"},
		4: {Name: "ROOTED_MULTIPOINT_CONNECTIVITY"},
	},
	"E_TapiPathComputation_DirectiveValue": {
		1: {Name: "MINIMIZE"},
		2: {Name: "MAXIMIZE"},
		3: {Name: "ALLOW"},
		4: {Name: "DISALLOW"},
		5: {Name: "DONT_CARE"},
	},
	"E_TapiPathComputation_DiversityPolicy": {
		1: {Name: "SRLG"},
		2: {Name: "SRNG"},
		3: {Name: "SNG"},
		4: {Name: "NODE"},
		5: {Name: "LINK"},
	},
	"E_TapiPathComputation_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiPathComputation_GradesOfImpact": {
		1: {Name: "GRADES_OF_IMPACT_HITLESS", DefiningModule: "tapi-path-computation"},
		2: {Name: "GRADES_OF_IMPACT_LONG_IMPACT", DefiningModule: "tapi-path-computation"},
		3: {Name: "GRADES_OF_IMPACT_MAJOR_IMPACT", DefiningModule: "tapi-path-computation"},
		4: {Name: "GRADES_OF_IMPACT_MINOR_IMPACT", DefiningModule: "tapi-path-computation"},
	},
	"E_TapiPathComputation_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiPathComputation_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
	},
	"E_TapiPathComputation_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiPathComputation_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiPathComputation_RouteObjectiveFunction": {
		1: {Name: "MIN_WORK_ROUTE_HOP"},
		2: {Name: "MIN_WORK_ROUTE_COST"},
		3: {Name: "MIN_WORK_ROUTE_LATENCY"},
		4: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP"},
		5: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST"},
		6: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY"},
		7: {Name: "LOAD_BALANCE_MAX_UNUSED_CAPACITY"},
	},
	"E_TapiTopology_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiTopology_ForwardingRule": {
		1: {Name: "MAY_FORWARD_ACROSS_GROUP"},
		2: {Name: "MUST_FORWARD_ACROSS_GROUP"},
		3: {Name: "CANNOT_FORWARD_ACROSS_GROUP"},
		4: {Name: "NO_STATEMENT_ON_FORWARDING"},
		5: {Name: "INTER_CONNECTION_CONTENTION"},
	},
	"E_TapiTopology_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiTopology_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
	},
	"E_TapiTopology_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiTopology_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiTopology_PortRoleRuleOption": {
		1: {Name: "PORT_ROLE_RULE_OPTION_ANY_ROLE", DefiningModule: "tapi-topology"},
		2: {Name: "PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE", DefiningModule: "tapi-topology"},
		3: {Name: "PORT_ROLE_RULE_OPTION_NOT_ROLE", DefiningModule: "tapi-topology"},
		4: {Name: "PORT_ROLE_RULE_OPTION_SAME_ROLE", DefiningModule: "tapi-topology"},
	},
	"E_TapiTopology_ProtectionType": {
		1: {Name: "NO_PROTECTION"},
		2: {Name: "ONE_PLUS_ONE_PROTECTION"},
		3: {Name: "ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION"},
		4: {Name: "PERMANENT_ONE_PLUS_ONE_PROTECTION"},
		5: {Name: "ONE_FOR_ONE_PROTECTION"},
		6: {Name: "DYNAMIC_RESTORATION"},
		7: {Name: "PRE_COMPUTED_RESTORATION"},
		8: {Name: "ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION"},
		9: {Name: "ONE_FOR_N_PROTECTION"},
		10: {Name: "M_FOR_N_PROTECTION"},
		11: {Name: "ONE_FOR_ONE_BY_N"},
	},
	"E_TapiTopology_RestorationPolicy": {
		1: {Name: "PER_DOMAIN_RESTORATION"},
		2: {Name: "END_TO_END_RESTORATION"},
		3: {Name: "NA"},
	},
	"E_TapiTopology_RuleType": {
		1: {Name: "FORWARDING"},
		2: {Name: "CAPACITY"},
		3: {Name: "COST"},
		4: {Name: "TIMING"},
		5: {Name: "RISK"},
		6: {Name: "GROUPING"},
	},
	"E_TapiTopology_SignalPropertyValueRule": {
		1: {Name: "SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE", DefiningModule: "tapi-topology"},
		2: {Name: "SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE", DefiningModule: "tapi-topology"},
		3: {Name: "SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE", DefiningModule: "tapi-topology"},
		4: {Name: "SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE", DefiningModule: "tapi-topology"},
	},
}


var (
	// ySchema is a byte slice contain a gzip compressed representation of the
	// YANG schema from which the Go code was generated. When uncompressed the
	// contents of the byte slice is a JSON document containing an object, keyed
	// on the name of the generated struct, and containing the JSON marshalled
	// contents of a goyang yang.Entry struct, which defines the schema for the
	// fields within the struct.
	ySchema = []byte{
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0xdf, 0x53, 0xdb, 0xc8,
		0xd2, 0x3e, 0x7e, 0xcf, 0x5f, 0xa1, 0xe2, 0x3a, 0xaa, 0xe0, 0x1c, 0x12, 0x38, 0xb9, 0x63, 0x81,
		0xec, 0xf2, 0x7e, 0x08, 0xf0, 0x02, 0xd9, 0x6f, 0x6d, 0x9d, 0xa2, 0x28, 0x45, 0x1a, 0x3b, 0xb3,
		0x11, 0x92, 0x57, 0x92, 0xf9, 0x71, 0xde, 0xca, 0xff, 0xfe, 0x2d, 0xcb, 0xb6, 0xfc, 0x43, 0xb2,
		0x2d, 0x4d, 0xf7, 0x48, 0x23, 0xeb, 0xe1, 0x66, 0x37, 0x06, 0xb7, 0xa4, 0xd1, 0xf4, 0xd3, 0xdd,
		0x4f, 0xf7, 0x74, 0xff, 0xdf, 0x9e, 0x65, 0x59, 0xd6, 0xfe, 0x95, 0xf3, 0x24, 0xf6, 0x3f, 0x5b,
		0xfb, 0x9e, 0x78, 0x96, 0xae, 0xd8, 0x7f, 0x37, 0xf9, 0xf4, 0xff, 0xc9, 0xc0, 0xdb, 0xff, 0x6c,
		0xf5, 0xa6, 0xff, 0x3c, 0x0d, 0x83, 0xbe, 0x1c, 0xec, 0x7f, 0xb6, 0x0e, 0xa6, 0x1f, 0x9c, 0xc9,
		0x68, 0xff, 0xb3, 0x35, 0x11, 0x91, 0x7e, 0xe0, 0x86, 0x41, 0x22, 0x5e, 0x93, 0xa5, 0x0f, 0x97,
		0xe4, 0xcf, 0xfe, 0xe0, 0xdd, 0xf2, 0xaf, 0x97, 0x2f, 0x94, 0x7d, 0xbc, 0x7a, 0xc1, 0xec, 0x17,
		0x37, 0x91, 0xe8, 0xcb, 0xd7, 0xdc, 0x65, 0x96, 0x2e, 0x95, 0x38, 0x43, 0x69, 0xbb, 0xe1, 0xd3,
		0x53, 0x18, 0xac, 0x5c, 0x2e, 0xfd, 0xb3, 0xbb, 0x70, 0x14, 0xb9, 0xa2, 0x50, 0xc4, 0xe4, 0x96,
		0xc4, 0xdb, 0x4b, 0x18, 0x8d, 0xef, 0x6a, 0x7f, 0x38, 0xb9, 0xda, 0xbb, 0xe2, 0x3f, 0xfc, 0xc3,
		0x89, 0x4f, 0xa2, 0xc1, 0xe8, 0x49, 0x04, 0xe3, 0xe7, 0x4e, 0xa2, 0x91, 0x58, 0xf3, 0x87, 0x0b,
		0x7f, 0xb5, 0x74, 0x73, 0xb9, 0xbf, 0xfe, 0xb5, 0xf4, 0xc9, 0xaf, 0x95, 0x67, 0x5f, 0x5d, 0xf4,
		0xc5, 0xc5, 0x0f, 0x84, 0x9b, 0xc8, 0x67, 0x99, 0xbc, 0xd9, 0xeb, 0xde, 0x44, 0xd1, 0x1b, 0xc9,
		0x7f, 0x6b, 0xcd, 0x13, 0x14, 0xbf, 0xa6, 0xad, 0xaf, 0xab, 0xcc, 0x6b, 0x5b, 0xf7, 0xfa, 0xe6,
		0x37, 0xb7, 0xe6, 0xa6, 0xca, 0xbc, 0xcc, 0xca, 0x2f, 0xb5, 0xf2, 0xcb, 0xdd, 0xf4, 0x92, 0x17,
		0x1e, 0x61, 0xed, 0x77, 0x7f, 0x15, 0xfe, 0xe6, 0xd7, 0x9a, 0x75, 0x5c, 0xb7, 0x05, 0x72, 0x5b,
		0x21, 0x0c, 0xb6, 0xaf, 0xc9, 0xea, 0x46, 0x28, 0x54, 0x97, 0x0a, 0xdb, 0x20, 0xbf, 0x1d, 0x3e,
		0x6c, 0xf9, 0xc3, 0x12, 0xdb, 0x82, 0xb4, 0x3d, 0xaa, 0x6e, 0x13, 0xe5, 0xed, 0xa2, 0xbc, 0x6d,
		0xa8, 0xdb, 0x67, 0xf3, 0x36, 0xda, 0xb2, 0x9d, 0x4a, 0x6f, 0xab, 0xec, 0x0f, 0xbf, 0x87, 0xa3,
		0xc0, 0x93, 0xc1, 0xc0, 0x0e, 0x42, 0xaf, 0xc2, 0x72, 0xce, 0xde, 0xdd, 0xf2, 0xd7, 0x4b, 0xae,
		0x4c, 0xb9, 0x4d, 0x57, 0x79, 0xf3, 0xa9, 0x6c, 0x42, 0x96, 0xcd, 0xa8, 0xba, 0x29, 0xc9, 0x9b,
		0x93, 0xbc, 0x49, 0xb9, 0x36, 0x6b, 0xb9, 0x4d, 0x5b, 0x72, 0xf3, 0x56, 0xde, 0xc4, 0xd9, 0x17,
		0xc6, 0x9b, 0xd0, 0x1e, 0x8d, 0xa4, 0x57, 0xfd, 0x15, 0xcc, 0xde, 0xff, 0x5c, 0x44, 0xc5, 0x15,
		0x9c, 0x6e, 0xea, 0x83, 0x8a, 0x5f, 0xdb, 0x66, 0x68, 0x39, 0x37, 0x79, 0xf1, 0x66, 0x4f, 0xc2,
		0x61, 0xe8, 0x87, 0x83, 0xb7, 0x8a, 0x0f, 0x4c, 0xd9, 0xf0, 0x6c, 0x1b, 0x9f, 0x4d, 0x01, 0xd6,
		0x2b, 0x42, 0xb6, 0x3c, 0x95, 0xe5, 0xfd, 0xaa, 0xf4, 0x8d, 0x5f, 0x15, 0xdf, 0xff, 0xfd, 0xdb,
		0x50, 0xd0, 0xde, 0xbe, 0x2f, 0x9c, 0x7e, 0x24, 0xfa, 0x2a, 0xef, 0x7d, 0x86, 0xe0, 0x47, 0x0a,
		0xdf, 0xbd, 0x71, 0x92, 0x1f, 0xe3, 0xcb, 0xbf, 0x5f, 0x70, 0x9c, 0x3f, 0x4f, 0xbd, 0xd5, 0xf7,
		0x4b, 0x4b, 0xfe, 0x79, 0xf6, 0x3f, 0xf6, 0xe6, 0x5f, 0xaf, 0x7c, 0x3c, 0x56, 0xe1, 0x95, 0x8f,
		0x52, 0x85, 0xde, 0xd3, 0xf3, 0xf2, 0x2a, 0xbc, 0xb8, 0xfd, 0xec, 0x81, 0x68, 0x20, 0xb5, 0x2c,
		0x06, 0x40, 0x05, 0xa0, 0x02, 0x50, 0xb5, 0x10, 0xa8, 0xb4, 0xa2, 0x12, 0xab, 0x27, 0x76, 0x12,
		0x04, 0x61, 0xe2, 0x94, 0x0a, 0x42, 0x97, 0xbe, 0x17, 0xbb, 0x3f, 0xc4, 0x93, 0x33, 0x2c, 0x58,
		0xc8, 0xf7, 0xb3, 0x95, 0x2a, 0x22, 0x2d, 0xde, 0xcf, 0x03, 0xd8, 0xf7, 0x2a, 0x11, 0xc6, 0xe4,
		0xda, 0x49, 0x34, 0x72, 0x93, 0x60, 0xba, 0x87, 0xee, 0x9d, 0xa1, 0x3c, 0x4d, 0xaf, 0xfc, 0x78,
		0x3a, 0xb9, 0xc8, 0xf8, 0xbf, 0xd9, 0x95, 0x57, 0x3f, 0x0b, 0x83, 0xc7, 0xdf, 0xa6, 0x17, 0xbe,
		0x1a, 0x5f, 0x77, 0x8f, 0x67, 0xcd, 0x4b, 0xac, 0xf7, 0x42, 0xf0, 0x6e, 0x8b, 0xc0, 0xb3, 0x87,
		0xa1, 0x0c, 0x92, 0xea, 0x81, 0x59, 0xa1, 0x14, 0xc4, 0x67, 0x88, 0xcf, 0x9a, 0x8c, 0xcf, 0x8a,
		0x36, 0x25, 0xd1, 0x15, 0x5a, 0x2f, 0xb2, 0x2b, 0x6e, 0x91, 0xa2, 0x32, 0x74, 0xc9, 0x35, 0x52,
		0x53, 0x16, 0xb8, 0x47, 0xc6, 0xc5, 0x71, 0xe1, 0x4b, 0x20, 0xbc, 0xd4, 0x13, 0xb0, 0x85, 0x37,
		0x10, 0x13, 0x75, 0x7f, 0x9f, 0x7b, 0xc7, 0x9f, 0x5d, 0x31, 0xb4, 0x7d, 0x19, 0x17, 0xfe, 0xaa,
		0x00, 0x30, 0x0a, 0xfe, 0xcc, 0x94, 0x88, 0x71, 0xe5, 0x59, 0x39, 0xd8, 0xad, 0x55, 0x69, 0x88,
		0x1f, 0x01, 0x92, 0x88, 0x1f, 0x77, 0x1e, 0x20, 0x8d, 0x23, 0xc3, 0xc0, 0xd6, 0x03, 0xc4, 0x00,
		0x62, 0x00, 0x31, 0xb0, 0xf5, 0x00, 0x2a, 0x00, 0x15, 0x80, 0x0a, 0x6c, 0x3d, 0x13, 0x2f, 0xf7,
		0xff, 0xc4, 0x5b, 0x0e, 0x77, 0xac, 0xcc, 0x55, 0xb2, 0x8a, 0x82, 0x40, 0x8b, 0xca, 0xa3, 0xed,
		0x5f, 0xca, 0x38, 0x39, 0x49, 0x92, 0x8a, 0x8c, 0xe0, 0x57, 0x19, 0x9c, 0xfb, 0x62, 0xac, 0x19,
		0xb1, 0x3a, 0xc0, 0x7e, 0xa8, 0x0a, 0xaa, 0x04, 0x7c, 0x59, 0xc4, 0x96, 0x27, 0x19, 0xd8, 0x62,
		0x76, 0xf7, 0x0a, 0x5b, 0x96, 0x03, 0x5d, 0x96, 0x90, 0xe5, 0x83, 0x09, 0x56, 0xf3, 0xab, 0xf3,
		0xba, 0xf0, 0x4a, 0x83, 0x91, 0xef, 0x57, 0xf8, 0xf2, 0x75, 0xe4, 0x89, 0x48, 0x78, 0xbf, 0xbd,
		0x4d, 0xbf, 0xba, 0x2b, 0x59, 0x2c, 0x42, 0x3a, 0xc6, 0xe2, 0x48, 0x66, 0xcd, 0xff, 0xf7, 0x3c,
		0xf0, 0x6e, 0xd2, 0xab, 0xd7, 0x98, 0xd2, 0xf2, 0x64, 0x54, 0xb2, 0x84, 0x35, 0xa7, 0xdb, 0xf3,
		0xaf, 0x56, 0x4b, 0x5e, 0x1d, 0x20, 0x79, 0xc5, 0xe4, 0x0c, 0xed, 0x68, 0xf2, 0xaa, 0xb2, 0xa3,
		0x93, 0xbd, 0xc5, 0x7e, 0x18, 0xbd, 0x38, 0x51, 0x9a, 0x93, 0xae, 0xba, 0x3b, 0x97, 0xbc, 0x9c,
		0xc3, 0x0a, 0xdf, 0x39, 0x0f, 0x46, 0x4f, 0xe3, 0xbb, 0xfd, 0x55, 0xa3, 0xd6, 0xfa, 0xce, 0x9b,
		0x88, 0xec, 0x61, 0x14, 0x26, 0xa1, 0x1b, 0xfa, 0xf6, 0x14, 0x7c, 0x2a, 0xea, 0x6f, 0x91, 0x10,
		0x68, 0x32, 0x34, 0xd9, 0x08, 0x4d, 0x56, 0xdf, 0x9c, 0xed, 0x52, 0x64, 0xd9, 0x17, 0xee, 0x9b,
		0xeb, 0x0b, 0x3b, 0x4e, 0x9c, 0x44, 0x45, 0x89, 0x57, 0x04, 0xec, 0x8e, 0x02, 0xaf, 0x39, 0x52,
		0xd6, 0x0d, 0xd5, 0x2d, 0x3e, 0xb2, 0x66, 0xbc, 0xd2, 0x2a, 0x6d, 0xc6, 0x76, 0x29, 0x6c, 0xf8,
		0x22, 0x22, 0xbb, 0xc2, 0xc9, 0xaf, 0xfc, 0x22, 0xad, 0x4a, 0x40, 0xe9, 0x17, 0x6c, 0x2e, 0xa3,
		0xfa, 0x52, 0x4a, 0xbf, 0xd8, 0x0a, 0xbe, 0x50, 0xe6, 0x05, 0x4e, 0x1d, 0x65, 0x5e, 0x8d, 0xf3,
		0xea, 0x85, 0xe5, 0x55, 0x4b, 0x44, 0xd8, 0xa6, 0x2a, 0xac, 0xba, 0x6b, 0xaf, 0x74, 0x30, 0xed,
		0x6a, 0x98, 0xc4, 0x42, 0x99, 0x57, 0xe4, 0x57, 0x41, 0xce, 0x16, 0x90, 0xb3, 0x8a, 0xce, 0x12,
		0x0b, 0x31, 0x7b, 0x39, 0xbe, 0xf6, 0xfc, 0xdf, 0x75, 0xb2, 0xb2, 0x6a, 0x84, 0x8e, 0x02, 0x83,
		0x53, 0xd9, 0x9b, 0x3c, 0x40, 0x00, 0xb8, 0xf3, 0x01, 0x60, 0x65, 0x0f, 0xf2, 0xd9, 0xf1, 0x47,
		0x42, 0xdd, 0x6f, 0x9c, 0x7c, 0xbd, 0x3b, 0xde, 0x62, 0xc5, 0x8d, 0xdd, 0x2d, 0x3f, 0xb1, 0xda,
		0xc6, 0x6f, 0x8b, 0x87, 0x18, 0x27, 0x91, 0x0c, 0x06, 0x14, 0x07, 0xf1, 0xd8, 0x80, 0xfc, 0x71,
		0xaa, 0xa8, 0xd5, 0xb2, 0x0d, 0xc5, 0xca, 0x5e, 0x95, 0xcf, 0x85, 0xc6, 0x43, 0xe3, 0xa1, 0xf1,
		0x26, 0xc7, 0x59, 0x95, 0xd5, 0x1a, 0x21, 0x96, 0x21, 0x21, 0x56, 0xd5, 0xd4, 0x1a, 0x35, 0xac,
		0x4a, 0x15, 0xa4, 0xc6, 0x58, 0x2a, 0x1c, 0x8a, 0x28, 0x5d, 0x59, 0xc7, 0x57, 0x4d, 0xb2, 0xe5,
		0x45, 0x20, 0xcd, 0x86, 0x28, 0x8b, 0xa8, 0xf2, 0xea, 0x69, 0x36, 0xd5, 0xed, 0x68, 0xb5, 0x29,
		0xd1, 0x16, 0x85, 0x23, 0x15, 0x55, 0x9d, 0x7c, 0x0d, 0x29, 0x35, 0xa4, 0xd4, 0x9a, 0x24, 0x44,
		0x48, 0x8d, 0x42, 0x72, 0x5b, 0x81, 0x58, 0xa1, 0xaa, 0xb0, 0xd5, 0x95, 0xb7, 0xbc, 0x8e, 0xe0,
		0x09, 0xc9, 0x35, 0x2d, 0x2a, 0x52, 0x4f, 0x20, 0x55, 0x55, 0x75, 0x36, 0xaa, 0x90, 0x5a, 0x7e,
		0xba, 0x94, 0x3e, 0xa9, 0x64, 0xac, 0x89, 0xcc, 0x04, 0x99, 0xa1, 0xe0, 0x50, 0x36, 0x2d, 0x4a,
		0xc7, 0xa5, 0x7c, 0xec, 0x4a, 0xc8, 0xae, 0x8c, 0xba, 0x94, 0x52, 0x4d, 0x39, 0x15, 0x95, 0x94,
		0xce, 0x7a, 0xe4, 0x76, 0x91, 0x7a, 0x46, 0x3c, 0x67, 0xb1, 0x8e, 0x08, 0x32, 0xd0, 0x08, 0x85,
		0x6b, 0x5b, 0x29, 0x6c, 0x29, 0x9e, 0x06, 0x29, 0xb9, 0xad, 0xc5, 0xd0, 0x28, 0x65, 0x77, 0x81,
		0x9b, 0x70, 0xb4, 0x17, 0xa0, 0x4d, 0x39, 0xfa, 0x0b, 0xc0, 0xde, 0x45, 0xc0, 0x26, 0x9c, 0x30,
		0x6e, 0x00, 0x6a, 0x19, 0xf1, 0x15, 0xa0, 0x0a, 0x50, 0x05, 0xa8, 0x02, 0x54, 0x6b, 0x6c, 0x14,
		0x53, 0x2f, 0x60, 0xd2, 0x1a, 0xc8, 0xe4, 0x71, 0x82, 0xd0, 0x48, 0x06, 0xc0, 0x09, 0xe0, 0x04,
		0x70, 0x76, 0x12, 0x38, 0x6b, 0x45, 0x49, 0xad, 0x3c, 0x6f, 0x13, 0x8d, 0x6d, 0xb2, 0x8b, 0x2b,
		0x95, 0x92, 0x64, 0xdf, 0xa6, 0x34, 0xba, 0xc9, 0xed, 0xdc, 0x0f, 0xaa, 0xe0, 0xcf, 0x80, 0x73,
		0x8c, 0x0d, 0x70, 0xb4, 0xa0, 0x1c, 0xa5, 0x21, 0x4e, 0xbd, 0xde, 0x01, 0xa5, 0x50, 0x28, 0x13,
		0xa2, 0x54, 0x30, 0xa4, 0xaa, 0x7f, 0x8a, 0x05, 0x44, 0xd9, 0xf7, 0x19, 0x0a, 0x89, 0xd2, 0xd4,
		0xfb, 0x7b, 0x86, 0x64, 0xa5, 0xc5, 0x51, 0x66, 0x74, 0x3b, 0xbe, 0x1b, 0xe5, 0xe6, 0x3a, 0xd5,
		0xb7, 0x5b, 0x95, 0x3a, 0x5a, 0x3f, 0x74, 0x1d, 0xdf, 0xa6, 0x1c, 0xb5, 0xcc, 0x24, 0xa0, 0x86,
		0x56, 0x33, 0xb0, 0xa2, 0x86, 0x56, 0x15, 0x92, 0x50, 0x35, 0x3f, 0xe5, 0xe6, 0x48, 0xf5, 0xf2,
		0x84, 0x4a, 0xf9, 0x1e, 0xb4, 0x1c, 0x5a, 0x6e, 0x6c, 0x81, 0x87, 0xda, 0xa1, 0xb1, 0xdc, 0xbe,
		0x51, 0x39, 0x3c, 0xb6, 0xbb, 0x8c, 0x8b, 0xb2, 0x02, 0x81, 0x6f, 0x51, 0x57, 0xb0, 0xb6, 0xb3,
		0x2d, 0xca, 0x66, 0x96, 0x68, 0x6e, 0xeb, 0x8d, 0xe9, 0x08, 0x87, 0xd7, 0x8a, 0x41, 0x47, 0xe5,
		0x10, 0x1b, 0x90, 0x07, 0xc8, 0x03, 0xe4, 0x69, 0x33, 0xf2, 0xd4, 0xc1, 0xa2, 0xaa, 0x9f, 0x91,
		0xe5, 0x64, 0x42, 0x15, 0x69, 0x2f, 0x70, 0x67, 0xca, 0xdc, 0x99, 0xa2, 0x41, 0x61, 0xe2, 0xca,
		0xca, 0x1f, 0xcc, 0xd3, 0x1b, 0x2f, 0x47, 0x22, 0x96, 0xbe, 0x14, 0x81, 0x2b, 0xec, 0x6a, 0x87,
		0x80, 0x72, 0xf0, 0x92, 0x93, 0xd4, 0x9d, 0x38, 0x1a, 0x87, 0x26, 0xb6, 0x9a, 0xdc, 0x1d, 0x3c,
		0x34, 0x31, 0x8c, 0x64, 0x18, 0x8d, 0x1f, 0x88, 0xec, 0xe1, 0x66, 0x92, 0x1a, 0xf6, 0x6f, 0x3f,
		0xe0, 0x48, 0xc4, 0x0e, 0x79, 0xb9, 0x5d, 0x3e, 0x12, 0x31, 0x92, 0x41, 0xf2, 0xe9, 0x90, 0xc1,
		0xd7, 0x3d, 0x26, 0x88, 0xb8, 0x75, 0x82, 0xc1, 0xf8, 0x6e, 0xfe, 0x43, 0x7a, 0xb5, 0xb4, 0xad,
		0x3b, 0x73, 0x35, 0xc9, 0x3a, 0xc0, 0x04, 0x36, 0x39, 0x71, 0x7f, 0x4e, 0x99, 0x49, 0x2e, 0x79,
		0x5f, 0x22, 0x27, 0xf5, 0xb3, 0xce, 0xe4, 0x40, 0xa6, 0x4e, 0xf1, 0x01, 0x59, 0xee, 0xaf, 0x77,
		0x0c, 0xaf, 0xc0, 0x79, 0x35, 0xfe, 0x15, 0xf4, 0x8e, 0x0f, 0x0f, 0x3f, 0x1d, 0x1d, 0x1e, 0x1e,
		0x1c, 0xfd, 0xeb, 0xe8, 0xe0, 0xdf, 0x1f, 0x3f, 0xf6, 0x3e, 0xf5, 0x3e, 0x1a, 0xfc, 0x56, 0xf6,
		0x9a, 0xf9, 0xf6, 0x83, 0xc1, 0xb4, 0x5b, 0xea, 0x78, 0x57, 0x6c, 0xbc, 0xb1, 0xde, 0xa1, 0x5f,
		0x10, 0x06, 0xc7, 0x04, 0x8e, 0x09, 0x1c, 0x13, 0x86, 0x5d, 0x44, 0x57, 0xaa, 0xa5, 0x60, 0x99,
		0x80, 0xcf, 0xfb, 0x17, 0x9e, 0x08, 0x12, 0x99, 0xbc, 0xfd, 0xe6, 0xc4, 0x0c, 0x3b, 0x71, 0xf6,
		0x80, 0xb7, 0xd7, 0xdf, 0xee, 0xcf, 0x1f, 0xef, 0xee, 0x4f, 0xee, 0xcf, 0xa9, 0x7b, 0x31, 0xb5,
		0x4b, 0x31, 0xd9, 0x81, 0xe2, 0x71, 0xa2, 0xd6, 0x3d, 0xe4, 0xe3, 0xe9, 0xb7, 0xdb, 0xdb, 0xf3,
		0xab, 0xfb, 0x7d, 0x13, 0xdc, 0x0c, 0x8d, 0x8f, 0xf9, 0xed, 0xea, 0xff, 0x5d, 0x5d, 0xff, 0x7f,
		0x57, 0xbb, 0xfe, 0x98, 0x57, 0xd7, 0xf7, 0x8c, 0x6f, 0x94, 0x24, 0xe1, 0xa1, 0x6e, 0x70, 0x34,
		0x8c, 0x98, 0x31, 0x86, 0x29, 0x26, 0x32, 0x9b, 0x16, 0x1f, 0x6b, 0x7c, 0x9b, 0xdd, 0x49, 0xfa,
		0xef, 0x56, 0x35, 0x87, 0xaf, 0x58, 0x45, 0x89, 0x96, 0x85, 0x0c, 0xba, 0xc0, 0xa6, 0x03, 0x75,
		0xf6, 0x2c, 0xac, 0xb0, 0xb5, 0x79, 0xba, 0x9f, 0xc5, 0xa3, 0xe1, 0x30, 0x8c, 0x12, 0xe1, 0xd9,
		0xee, 0x58, 0xb9, 0x12, 0xdb, 0x97, 0xc1, 0xcf, 0xea, 0xdd, 0xd0, 0x8a, 0xc5, 0xa0, 0x3b, 0x1a,
		0xba, 0xa3, 0x31, 0x02, 0x41, 0xe5, 0xee, 0x68, 0xe3, 0x4d, 0x48, 0x1c, 0x35, 0x34, 0x17, 0x81,
		0xa1, 0xfd, 0xda, 0x43, 0x7b, 0x0c, 0xed, 0x57, 0xf7, 0x18, 0x31, 0xb4, 0x7f, 0xdd, 0xd9, 0xc7,
		0xb1, 0x0a, 0xd7, 0x39, 0xc7, 0xbf, 0x82, 0x81, 0xa0, 0x1d, 0x0e, 0x67, 0x39, 0x14, 0x0e, 0xa0,
		0x02, 0x50, 0x01, 0xa8, 0x8c, 0x00, 0xaa, 0xd6, 0xcd, 0x3c, 0x5b, 0x3e, 0x84, 0x5d, 0xd5, 0x55,
		0x42, 0x94, 0x6b, 0x48, 0x94, 0x4b, 0x09, 0xde, 0x58, 0xa2, 0xde, 0xbb, 0xd9, 0x0d, 0x9c, 0xa6,
		0xd7, 0xbf, 0x1c, 0x5f, 0xbe, 0xce, 0x18, 0xf8, 0x45, 0x26, 0xee, 0x8f, 0x74, 0x65, 0xa2, 0xd0,
		0x57, 0x08, 0x7e, 0x97, 0xbf, 0x8f, 0xa8, 0x17, 0x51, 0x6f, 0x93, 0x51, 0x6f, 0xdf, 0x19, 0xf9,
		0xc9, 0xf8, 0xd6, 0x3d, 0x99, 0x9e, 0x8e, 0xf7, 0x44, 0x22, 0xa2, 0x27, 0x19, 0xa8, 0xd1, 0xc9,
		0xd9, 0x9e, 0xd8, 0x2c, 0x16, 0x23, 0x78, 0xe1, 0x78, 0x76, 0x62, 0x04, 0x2f, 0xa7, 0x1a, 0x58,
		0xc4, 0x74, 0x36, 0x4f, 0x1a, 0x3b, 0x7b, 0xb4, 0x2f, 0x27, 0xdf, 0x2e, 0xef, 0x1f, 0x4f, 0xaf,
		0xaf, 0xce, 0x2e, 0xee, 0x2f, 0xae, 0xaf, 0x1e, 0xcf, 0xce, 0xef, 0xcf, 0x6f, 0xbf, 0x5e, 0x5c,
		0x9d, 0x8c, 0xff, 0xa5, 0xba, 0xcf, 0x18, 0x12, 0xd9, 0x4c, 0xd9, 0xf9, 0x8d, 0x8f, 0xf7, 0x78,
		0x71, 0xf5, 0xc7, 0x39, 0x2d, 0xf3, 0x49, 0x48, 0xee, 0xd6, 0xf2, 0x84, 0x77, 0xdf, 0x7e, 0xbb,
		0x3c, 0xf9, 0xeb, 0xfc, 0x76, 0x77, 0x9f, 0xf0, 0xfe, 0xfc, 0x6e, 0x87, 0xdf, 0xdf, 0x55, 0xba,
		0x4b, 0xef, 0x6f, 0xbf, 0xdd, 0x5d, 0xfc, 0x79, 0x5e, 0x77, 0xf5, 0xd0, 0x83, 0x6e, 0x20, 0xd7,
		0xc2, 0xaf, 0xfd, 0x08, 0x7d, 0xcf, 0x0e, 0xfb, 0x7d, 0x3b, 0x91, 0x94, 0xd6, 0x18, 0xcb, 0x62,
		0xe0, 0xea, 0xc0, 0xd5, 0xe9, 0x84, 0xab, 0xa3, 0x7c, 0x90, 0x80, 0x70, 0x80, 0x80, 0x78, 0x70,
		0x80, 0x50, 0xa5, 0xc8, 0x71, 0x50, 0x80, 0xa9, 0x3a, 0x9d, 0xeb, 0x60, 0x00, 0x67, 0xe9, 0x39,
		0xc1, 0x3a, 0xb2, 0x1c, 0x00, 0xe0, 0x5e, 0x5a, 0xfe, 0x82, 0x7f, 0xd6, 0xd5, 0xae, 0xa9, 0x8a,
		0xed, 0xc1, 0x00, 0x23, 0x2d, 0x63, 0xdb, 0x0d, 0xc3, 0xc8, 0x1b, 0xc7, 0x50, 0xc2, 0xb3, 0x27,
		0x6c, 0x9a, 0x0c, 0x06, 0xf6, 0xf7, 0x30, 0xf9, 0x61, 0x8b, 0xc0, 0x8b, 0xd5, 0x2d, 0x77, 0x09,
		0xd9, 0x30, 0xe7, 0x30, 0xe7, 0x9d, 0x30, 0xe7, 0xdf, 0xc3, 0xd0, 0x17, 0x0e, 0x89, 0xa3, 0xe8,
		0x99, 0x01, 0x17, 0xfd, 0x28, 0xfc, 0xaf, 0x08, 0x48, 0xa8, 0x30, 0x15, 0x01, 0xe5, 0x87, 0xf2,
		0x43, 0xf9, 0x5b, 0xa5, 0xfc, 0x7e, 0xe8, 0xfe, 0xb4, 0xc3, 0x51, 0x42, 0x52, 0xff, 0x4c, 0x08,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x00, 0x3c, 0x39, 0xaf, 0x53, 0x2f, 0x3e, 0x25, 0xe3,
		0x08, 0xa1, 0x41, 0x4e, 0x12, 0xa0, 0x00, 0x50, 0x00, 0x5e, 0x0f, 0xbc, 0x1e, 0x78, 0x3d, 0xf0,
		0x7a, 0xe0, 0xf5, 0xe8, 0xa6, 0x1a, 0xed, 0xe8, 0x2b, 0x98, 0x64, 0xb4, 0xa3, 0xdf, 0x60, 0x8c,
		0xd1, 0x8e, 0x3e, 0xbf, 0x6f, 0xd0, 0x8e, 0x1e, 0x4d, 0xa1, 0xad, 0x66, 0x15, 0x8c, 0x68, 0xd4,
		0xd0, 0x14, 0x1a, 0xed, 0xe8, 0x81, 0x3c, 0x40, 0x1e, 0x20, 0x4f, 0x1b, 0x90, 0x07, 0xed, 0xe8,
		0xb7, 0x07, 0xc3, 0x68, 0x47, 0x5f, 0xf9, 0xe8, 0xd9, 0xd2, 0xd1, 0xa9, 0xc6, 0xfa, 0xd2, 0xdf,
		0xa5, 0xb7, 0x71, 0x3a, 0xb9, 0x0b, 0x63, 0xfa, 0xd3, 0x8f, 0x51, 0x5c, 0x44, 0x91, 0xf0, 0xec,
		0x48, 0xc4, 0x49, 0x18, 0xa5, 0xaf, 0xca, 0xf6, 0x9d, 0x37, 0x11, 0xa9, 0xc7, 0xd5, 0x9b, 0x84,
		0x82, 0x01, 0x47, 0xd0, 0xdd, 0x09, 0x06, 0x3c, 0xdd, 0xee, 0xf6, 0x30, 0x0a, 0x93, 0xd0, 0x0d,
		0x7d, 0x55, 0x87, 0x36, 0x33, 0xc2, 0x87, 0x0a, 0xdf, 0x3d, 0x0f, 0x46, 0x4f, 0xe3, 0x87, 0xd0,
		0xbb, 0x54, 0xb0, 0x8b, 0x75, 0x4c, 0x0f, 0x49, 0x54, 0x36, 0x64, 0xd1, 0xf0, 0x90, 0x54, 0x10,
		0x66, 0x87, 0x00, 0x85, 0x77, 0x7b, 0x76, 0x48, 0x98, 0x4c, 0x07, 0x77, 0x27, 0x94, 0x88, 0x6a,
		0xc1, 0xa5, 0x59, 0x16, 0x08, 0x6a, 0x82, 0xdc, 0x20, 0x07, 0xe4, 0x04, 0xa5, 0x81, 0x4e, 0xdb,
		0xe9, 0x09, 0x1e, 0x85, 0xa2, 0xba, 0x48, 0x44, 0x57, 0xa9, 0x5e, 0x96, 0x75, 0x31, 0x98, 0x1a,
		0x86, 0xbe, 0x74, 0x19, 0x46, 0x23, 0x15, 0xc8, 0x04, 0xb4, 0x01, 0xda, 0x00, 0x6d, 0x26, 0xe8,
		0x54, 0x7b, 0xd1, 0xad, 0x63, 0x9c, 0x22, 0x2d, 0xbc, 0xd2, 0x40, 0x2f, 0xce, 0x1b, 0x99, 0xa7,
		0xdb, 0xda, 0xa4, 0x50, 0xf6, 0x6d, 0xd2, 0xe4, 0x7d, 0xbc, 0x76, 0x71, 0x12, 0x39, 0x32, 0x48,
		0x18, 0xc2, 0xda, 0x02, 0xa1, 0x08, 0x71, 0x11, 0xe2, 0xee, 0x72, 0x88, 0x9b, 0xf5, 0xfb, 0x27,
		0xfb, 0x80, 0x15, 0x27, 0x07, 0xec, 0xbe, 0xe7, 0x87, 0x7c, 0x3b, 0x49, 0xd9, 0x90, 0x6f, 0xa7,
		0x79, 0x7a, 0x26, 0x57, 0xfa, 0xf0, 0xd4, 0xf8, 0x30, 0x54, 0xf7, 0xf4, 0x80, 0x36, 0x40, 0x9b,
		0xb6, 0xa1, 0x8d, 0xaa, 0xb1, 0xcf, 0x04, 0xd0, 0x0a, 0x7b, 0x73, 0xfb, 0x8f, 0x52, 0xe0, 0xcb,
		0x64, 0xfe, 0xd9, 0x14, 0x93, 0x53, 0x41, 0x35, 0x29, 0x2a, 0xb7, 0xc2, 0x6a, 0x53, 0x5c, 0x6d,
		0x0a, 0xac, 0x4f, 0x91, 0x69, 0x0a, 0x4d, 0x54, 0x6c, 0x3e, 0x77, 0x82, 0xdf, 0xad, 0x60, 0x72,
		0x2f, 0xe8, 0xeb, 0x4b, 0x39, 0x05, 0xc6, 0x50, 0x60, 0x5c, 0x0c, 0x7e, 0x94, 0x42, 0x63, 0x20,
		0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x34, 0xd4, 0xd9, 0xa4, 0x16, 0x3c, 0x67, 0x82, 0x48, 0x05,
		0x5e, 0x99, 0x14, 0x8e, 0x42, 0xaf, 0xb9, 0x30, 0x86, 0x82, 0xaf, 0x4c, 0x18, 0xa9, 0xf0, 0x8b,
		0xfa, 0x96, 0x88, 0xc9, 0x8c, 0x4c, 0x8e, 0xc6, 0xa4, 0x46, 0x9e, 0x5c, 0x7f, 0x4f, 0xb4, 0x9a,
		0xba, 0xb2, 0x1d, 0x6f, 0xe9, 0x6c, 0xcb, 0xd3, 0xec, 0x3e, 0x15, 0xca, 0xac, 0xeb, 0xa5, 0x53,
		0x86, 0x91, 0x0c, 0x23, 0x99, 0xbc, 0x71, 0x14, 0x28, 0x4d, 0x25, 0x81, 0xc4, 0x65, 0xc9, 0x8b,
		0x80, 0x5c, 0xa1, 0xe6, 0x4d, 0x9a, 0xb1, 0x7a, 0x7c, 0x84, 0xae, 0x72, 0x0b, 0x93, 0x55, 0x9d,
		0x3a, 0x26, 0x88, 0xa0, 0xb5, 0x34, 0x99, 0xfd, 0x30, 0x78, 0x63, 0x1c, 0x2d, 0x4e, 0x98, 0x03,
		0xa6, 0x4c, 0x1c, 0x53, 0xcb, 0x93, 0x4c, 0x1e, 0x63, 0x33, 0x0e, 0x26, 0xb7, 0xda, 0xe2, 0x6a,
		0x85, 0xa2, 0xfb, 0x15, 0xf0, 0xb7, 0x46, 0xd1, 0xfa, 0x56, 0x1a, 0x0a, 0x04, 0x1e, 0x4c, 0xae,
		0x32, 0x0c, 0x47, 0x89, 0x0c, 0x06, 0x94, 0xfa, 0x8c, 0x1c, 0x94, 0x16, 0xc8, 0x44, 0xf6, 0x07,
		0x6e, 0x4a, 0x87, 0xdd, 0x14, 0x72, 0x26, 0xc8, 0x0d, 0xe3, 0xc4, 0x76, 0x7f, 0x38, 0x63, 0x50,
		0x14, 0x91, 0x8c, 0x13, 0xe9, 0xf2, 0x51, 0xa3, 0x45, 0xc2, 0x79, 0x38, 0xd2, 0xde, 0xce, 0x73,
		0xa4, 0xe3, 0x10, 0x7c, 0x1c, 0x79, 0x0f, 0x47, 0x89, 0xea, 0xbc, 0x2e, 0xb0, 0xa5, 0xdb, 0x95,
		0x3e, 0xb7, 0xcc, 0x2d, 0xe7, 0x4d, 0xa9, 0x80, 0xb0, 0x0c, 0x0c, 0x8e, 0x3f, 0x08, 0x23, 0x99,
		0xfc, 0x78, 0xe2, 0xdb, 0x33, 0x4b, 0xd8, 0x30, 0x97, 0xff, 0xce, 0x48, 0x77, 0x94, 0x0b, 0x26,
		0x74, 0xc0, 0x45, 0x31, 0x6c, 0x30, 0x9c, 0x36, 0xd0, 0x0d, 0x1b, 0xda, 0xe1, 0x43, 0x3b, 0x8c,
		0xac, 0x87, 0x13, 0xfa, 0x69, 0x05, 0x5e, 0x38, 0x61, 0x8c, 0x1b, 0x2d, 0xd6, 0xb4, 0x4c, 0x6e,
		0xf7, 0xb2, 0xa5, 0x67, 0x72, 0xae, 0xc2, 0xf1, 0x9e, 0x19, 0xef, 0x81, 0x23, 0x76, 0x4f, 0x51,
		0x93, 0x25, 0x7f, 0x5d, 0x0c, 0xc8, 0x0c, 0x69, 0x6c, 0x60, 0x31, 0xb0, 0x18, 0x58, 0x0c, 0x2c,
		0xee, 0x06, 0x16, 0xf3, 0x54, 0x52, 0x16, 0x83, 0x31, 0x47, 0x59, 0x25, 0xd0, 0x18, 0x68, 0x0c,
		0x34, 0x06, 0x1a, 0x9b, 0x8d, 0xc6, 0x8d, 0x52, 0x26, 0xd3, 0x02, 0x27, 0x2e, 0xff, 0x97, 0xa7,
		0xce, 0x29, 0x93, 0xc6, 0x59, 0xef, 0x34, 0x17, 0xca, 0x58, 0xf7, 0x94, 0x09, 0x65, 0xa9, 0x7f,
		0xe2, 0x7a, 0xa9, 0x4c, 0xf5, 0x50, 0x99, 0xbc, 0x7a, 0xeb, 0xa2, 0xf2, 0x89, 0xae, 0xf7, 0xfc,
		0x5c, 0xba, 0x55, 0x67, 0x05, 0xd5, 0xed, 0xe4, 0x89, 0x16, 0x3e, 0x39, 0x0d, 0xe3, 0xe4, 0x74,
		0xf9, 0x79, 0x5a, 0x58, 0x51, 0xee, 0xc9, 0x67, 0x11, 0xc5, 0xe3, 0x37, 0x4e, 0x6c, 0xa5, 0x92,
		0x83, 0xfd, 0x9c, 0x64, 0x54, 0x97, 0x97, 0x73, 0xf4, 0x90, 0x39, 0x41, 0xe6, 0xa4, 0x49, 0x07,
		0x4e, 0x97, 0x06, 0x5b, 0x4c, 0x6d, 0x5c, 0x32, 0x59, 0xb4, 0x76, 0x2e, 0xcd, 0xe2, 0xae, 0x8c,
		0x6d, 0xf1, 0xea, 0xfa, 0xa3, 0x58, 0x3e, 0x33, 0x9e, 0xe5, 0x59, 0x92, 0x4a, 0xcd, 0xc4, 0x89,
		0xbe, 0x33, 0xf2, 0x27, 0xfa, 0x12, 0xe1, 0x78, 0x24, 0xe0, 0x1b, 0xf0, 0xdd, 0x2e, 0xf8, 0x56,
		0x1f, 0x43, 0xba, 0x16, 0xb5, 0x7b, 0x2d, 0x44, 0x5a, 0xdf, 0x49, 0xd2, 0x20, 0x45, 0x57, 0x91,
		0xd0, 0x1a, 0xf9, 0xa8, 0x13, 0x02, 0x5c, 0x02, 0x2e, 0xb5, 0xc1, 0x25, 0x5b, 0x9d, 0x50, 0x5f,
		0xbe, 0x0a, 0xcf, 0xd6, 0x04, 0x12, 0xb9, 0x2d, 0xbf, 0xf1, 0x6a, 0x86, 0x67, 0x4a, 0x3e, 0x20,
		0x53, 0x82, 0x4c, 0x49, 0x09, 0xa8, 0x41, 0xa6, 0x44, 0x75, 0xf7, 0x22, 0x6f, 0x5d, 0xe6, 0x99,
		0xfe, 0x96, 0x49, 0x22, 0x22, 0xed, 0x50, 0x5d, 0x7c, 0x19, 0x60, 0x34, 0x30, 0x1a, 0x18, 0x0d,
		0x8c, 0x06, 0x46, 0x6f, 0x7c, 0xa6, 0x7f, 0x46, 0x42, 0x06, 0x83, 0xda, 0xdc, 0xea, 0xcd, 0x97,
		0x43, 0x05, 0x12, 0x30, 0x1b, 0x98, 0x0d, 0xcc, 0x06, 0x66, 0x6f, 0x7c, 0xa6, 0x24, 0x72, 0xfa,
		0x7d, 0xe9, 0xda, 0xc3, 0x28, 0x1c, 0x8a, 0x28, 0x79, 0xd3, 0x54, 0xa7, 0x5f, 0x7c, 0x19, 0x60,
		0x34, 0x30, 0x1a, 0x18, 0x0d, 0x8c, 0x06, 0x46, 0x6f, 0x7c, 0xa6, 0x17, 0x27, 0xf0, 0x6a, 0xe0,
		0x3e, 0x8a, 0x2f, 0x03, 0xee, 0x03, 0x18, 0x0d, 0x8c, 0x06, 0x46, 0xa3, 0x92, 0x5f, 0xcf, 0x1b,
		0x9c, 0x55, 0xf2, 0xeb, 0xf0, 0x90, 0x51, 0xd5, 0x8f, 0xaa, 0x7e, 0x0d, 0x55, 0xfd, 0xda, 0x18,
		0xb7, 0x06, 0x0b, 0xfb, 0x2f, 0x27, 0xcf, 0xd4, 0xfe, 0xda, 0xfe, 0x27, 0xe7, 0xd5, 0x76, 0x7c,
		0x3f, 0x7c, 0x11, 0x9e, 0xed, 0x86, 0x71, 0xc2, 0x57, 0xf3, 0x94, 0x93, 0x8c, 0x6a, 0xa7, 0x72,
		0xae, 0x1f, 0xaa, 0x9d, 0x50, 0xed, 0xa4, 0xf0, 0x80, 0x6c, 0xd5, 0x4e, 0xe4, 0x46, 0xcb, 0x6b,
		0xb7, 0x37, 0xb1, 0xf1, 0x32, 0x98, 0xbc, 0x1a, 0xa0, 0x02, 0xd1, 0xa2, 0x09, 0x50, 0xd2, 0xb5,
		0xa8, 0x91, 0xdc, 0x40, 0x7a, 0x1d, 0x36, 0x1c, 0x33, 0x8a, 0xe4, 0x69, 0x30, 0xbd, 0xfa, 0xc3,
		0xab, 0x5e, 0x16, 0x77, 0x03, 0x6a, 0xcd, 0xa0, 0x9b, 0x13, 0xcf, 0xdc, 0xa0, 0x3a, 0x27, 0x5f,
		0x43, 0x6b, 0x64, 0x4d, 0xea, 0xb6, 0x1a, 0xf7, 0xb6, 0xfe, 0x95, 0xea, 0x6b, 0x78, 0xdd, 0xc8,
		0x5b, 0xde, 0x33, 0x53, 0xda, 0xc3, 0x0e, 0xa5, 0x32, 0x34, 0x75, 0x1e, 0x42, 0xd3, 0x21, 0x38,
		0xa1, 0x70, 0x42, 0xe1, 0x84, 0xc2, 0x09, 0x85, 0x13, 0x0a, 0x27, 0x14, 0x4e, 0x28, 0x9c, 0xd0,
		0x9d, 0x75, 0x42, 0x91, 0xca, 0xe3, 0x4c, 0xe5, 0x31, 0xe7, 0x74, 0xac, 0x66, 0x93, 0x78, 0x5f,
		0x9d, 0xd7, 0x93, 0xc9, 0xc3, 0x9c, 0x8e, 0x9f, 0xa5, 0xe5, 0xd9, 0x3b, 0x4f, 0xf8, 0xce, 0x9b,
		0x9e, 0xf4, 0xdd, 0x44, 0x34, 0xf2, 0x77, 0x8d, 0xc5, 0x43, 0xc8, 0xdf, 0x21, 0x7f, 0x57, 0x5a,
		0x10, 0xf2, 0x77, 0xa0, 0x4e, 0x40, 0x9d, 0x80, 0x3a, 0x01, 0x75, 0x02, 0xea, 0x04, 0xd4, 0x09,
		0xa8, 0x13, 0x50, 0x27, 0xa0, 0x4e, 0x9a, 0xd1, 0x02, 0xe4, 0xef, 0xe0, 0x84, 0xc2, 0x09, 0x85,
		0x13, 0x0a, 0x27, 0x14, 0x4e, 0x28, 0x9c, 0x50, 0x38, 0xa1, 0x70, 0x42, 0xe1, 0x84, 0xd6, 0x29,
		0x01, 0xf9, 0xbb, 0x0d, 0xf9, 0x3b, 0x8e, 0xa4, 0x8e, 0x65, 0x4a, 0x02, 0xef, 0x2c, 0x7d, 0x98,
		0x96, 0x67, 0xf0, 0x7e, 0x84, 0xc3, 0x58, 0x4f, 0x02, 0x2f, 0x95, 0x8c, 0xfc, 0x5d, 0x63, 0xf1,
		0x10, 0xf2, 0x77, 0xc8, 0xdf, 0x95, 0x16, 0x84, 0xfc, 0x1d, 0xa8, 0x13, 0x50, 0x27, 0xa0, 0x4e,
		0x40, 0x9d, 0x80, 0x3a, 0x01, 0x75, 0x02, 0xea, 0x04, 0xd4, 0x09, 0xa8, 0x93, 0x66, 0xb4, 0x00,
		0xf9, 0x3b, 0x38, 0xa1, 0x70, 0x42, 0xe1, 0x84, 0xc2, 0x09, 0x85, 0x13, 0x0a, 0x27, 0x14, 0x4e,
		0x28, 0x9c, 0x50, 0x38, 0xa1, 0x75, 0x4a, 0x40, 0xfe, 0x6e, 0x43, 0xfe, 0x8e, 0x21, 0xa7, 0x63,
		0x99, 0x92, 0xbe, 0xfb, 0x63, 0xfc, 0x2c, 0x2d, 0xcc, 0xde, 0x45, 0x32, 0xfe, 0x69, 0xcf, 0x47,
		0xe0, 0xeb, 0x1a, 0x1f, 0xbc, 0xf9, 0x32, 0xc8, 0xeb, 0x35, 0x16, 0x27, 0x21, 0xaf, 0x87, 0xbc,
		0x5e, 0x35, 0xb0, 0x58, 0xd6, 0x5d, 0x4d, 0xe3, 0x73, 0xd6, 0x5e, 0x09, 0x94, 0x0b, 0x0f, 0x94,
		0x60, 0x3a, 0x43, 0xa3, 0x54, 0x0b, 0xa6, 0x33, 0xa8, 0xee, 0x5e, 0x4c, 0xd0, 0x29, 0x8d, 0xd4,
		0xd2, 0x13, 0x41, 0x22, 0xfb, 0x52, 0x44, 0xb6, 0x2f, 0x19, 0x1a, 0xa3, 0x17, 0xa3, 0xf4, 0xea,
		0x55, 0x80, 0xd0, 0x40, 0x68, 0x20, 0x34, 0x10, 0xda, 0x5c, 0x84, 0x66, 0x5a, 0x41, 0xd6, 0x59,
		0x33, 0x73, 0x86, 0x74, 0x69, 0xe6, 0x0c, 0xb3, 0x9e, 0xce, 0x5e, 0x51, 0x8f, 0x5b, 0x3f, 0x35,
		0x01, 0xcb, 0x2a, 0xb8, 0x3c, 0xc9, 0xc0, 0x16, 0xb3, 0xd5, 0xd1, 0x40, 0x4f, 0xeb, 0x86, 0x99,
		0x1c, 0xd4, 0xf4, 0xf6, 0x0d, 0xa5, 0x5f, 0x19, 0xc9, 0x7f, 0x2d, 0x13, 0x8f, 0x32, 0xe1, 0xac,
		0x93, 0x8f, 0x18, 0x9d, 0x38, 0x13, 0x46, 0x6c, 0x69, 0x8a, 0xa2, 0x31, 0x65, 0x0b, 0x53, 0xb6,
		0x34, 0xa4, 0x06, 0x74, 0x72, 0xc4, 0x56, 0xb3, 0x79, 0x82, 0x5b, 0x19, 0xff, 0x3c, 0x9b, 0x3d,
		0x59, 0xfb, 0x47, 0x6e, 0x4d, 0xde, 0x66, 0xf8, 0xfd, 0xef, 0x74, 0xb1, 0x84, 0xdd, 0x1f, 0x05,
		0x2e, 0xcb, 0x46, 0x9c, 0x47, 0x96, 0xeb, 0xae, 0xc0, 0x93, 0x2a, 0x38, 0x40, 0xaa, 0xa0, 0x79,
		0x27, 0x0f, 0xa9, 0x02, 0xf3, 0x1c, 0x07, 0xb6, 0xa8, 0x50, 0xb7, 0x26, 0x2f, 0xc5, 0x85, 0x87,
		0x0c, 0xb2, 0xce, 0x83, 0xd1, 0xd3, 0xf8, 0xc9, 0x7f, 0xb5, 0x10, 0x8f, 0x93, 0xd0, 0x17, 0x91,
		0xf3, 0xdd, 0x17, 0xb6, 0x7c, 0x1a, 0x3a, 0x2e, 0xe3, 0x08, 0xc4, 0x9c, 0x64, 0xe0, 0x2f, 0xf0,
		0x17, 0xf8, 0xdb, 0x22, 0xfc, 0x1d, 0x44, 0x8e, 0x27, 0x62, 0x3b, 0xec, 0xf3, 0x68, 0xf0, 0x12,
		0xee, 0x32, 0x94, 0xbd, 0xed, 0x5f, 0xa4, 0xe9, 0x83, 0xe4, 0xed, 0x37, 0x27, 0xd6, 0x90, 0x47,
		0xfe, 0xfd, 0xf6, 0xe4, 0xec, 0xfc, 0xee, 0xf1, 0xfa, 0xcb, 0xe3, 0xc5, 0xd7, 0x9b, 0x93, 0xd3,
		0x7b, 0xae, 0x1d, 0x9e, 0xd6, 0x02, 0xc6, 0xac, 0x45, 0xb4, 0x9a, 0xa8, 0xbe, 0xd5, 0x15, 0x78,
		0xfc, 0x7a, 0xf2, 0x3f, 0xd7, 0xb7, 0xb3, 0xe5, 0x30, 0x91, 0x2f, 0xaa, 0x6b, 0x21, 0x2e, 0xaf,
		0xaf, 0x7e, 0xc7, 0x3a, 0xdc, 0x3f, 0xfe, 0x71, 0x71, 0x7f, 0x79, 0x7e, 0x77, 0xd7, 0xe9, 0x35,
		0xf8, 0x7a, 0x71, 0xa5, 0x43, 0x29, 0x58, 0x24, 0x3d, 0x34, 0x6d, 0xd3, 0xf6, 0xea, 0xfd, 0xa6,
		0xe2, 0xf6, 0xe1, 0x22, 0xc4, 0x1a, 0x27, 0xc2, 0x08, 0x36, 0xaa, 0x39, 0x8a, 0x4b, 0x4d, 0x69,
		0xaa, 0x6f, 0x10, 0x85, 0xcd, 0xb1, 0x3f, 0x4b, 0xe5, 0x2e, 0xae, 0xb1, 0xea, 0x0e, 0x59, 0x88,
		0x8c, 0xf2, 0x42, 0x15, 0x37, 0x2e, 0xad, 0x7e, 0x95, 0x1c, 0x0c, 0x71, 0x04, 0x41, 0xcb, 0xc1,
		0xcf, 0xa2, 0x7a, 0x50, 0x76, 0x33, 0x53, 0xc0, 0xc3, 0x1e, 0xe8, 0xb0, 0x07, 0x38, 0xf9, 0xc0,
		0x66, 0x69, 0x09, 0x5b, 0x02, 0xc0, 0xd4, 0x3a, 0xd3, 0x7d, 0xe7, 0x39, 0x94, 0xde, 0xbc, 0xf2,
		0x82, 0x8d, 0xc5, 0x58, 0x91, 0x0b, 0x0e, 0x03, 0x1c, 0x06, 0x38, 0x8c, 0x16, 0x71, 0x18, 0xa3,
		0x91, 0xf4, 0x38, 0x79, 0x8b, 0xe3, 0x16, 0x72, 0xbc, 0x73, 0x37, 0xc3, 0x7e, 0x11, 0x72, 0xf0,
		0x83, 0x91, 0xe4, 0xcd, 0x8b, 0x06, 0x42, 0x02, 0x21, 0x81, 0x90, 0x6d, 0x42, 0x48, 0xae, 0xc6,
		0x03, 0x8c, 0x0d, 0x07, 0x98, 0x1b, 0x0d, 0xf0, 0xd6, 0x58, 0x6a, 0xa8, 0x81, 0xd6, 0x72, 0xfa,
		0x5c, 0x57, 0x23, 0x01, 0x9d, 0x47, 0xcb, 0x99, 0x6b, 0x07, 0x5b, 0xf7, 0xaa, 0xf4, 0x37, 0x08,
		0xd0, 0xfa, 0xf6, 0x0c, 0xa9, 0xa0, 0x7c, 0x68, 0xa1, 0x93, 0x26, 0x5e, 0x5d, 0x7f, 0xe4, 0x09,
		0xdb, 0x97, 0xc1, 0x4f, 0x3e, 0xff, 0x6c, 0x49, 0x2a, 0x5c, 0x33, 0xb8, 0x66, 0x70, 0xcd, 0x10,
		0xbc, 0xb6, 0x12, 0x17, 0x83, 0xd0, 0x13, 0xfc, 0xb8, 0x98, 0x4a, 0x05, 0x2e, 0x02, 0x17, 0x81,
		0x8b, 0xc0, 0xc5, 0xd6, 0xe2, 0xa2, 0x2d, 0xbc, 0x81, 0xb0, 0x87, 0x21, 0x25, 0x3b, 0xb9, 0x11,
		0x22, 0x17, 0x2f, 0x00, 0xb4, 0x04, 0x5a, 0x02, 0x2d, 0x81, 0x96, 0xad, 0x44, 0xcb, 0x69, 0x69,
		0x0e, 0x33, 0x44, 0xa6, 0x52, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x22, 0x70, 0xb1, 0x55, 0xb8, 0x28,
		0x03, 0x1d, 0xac, 0xe3, 0x92, 0x54, 0xe0, 0x22, 0x70, 0x11, 0xb8, 0x08, 0x5c, 0x6c, 0x25, 0x2e,
		0xf2, 0xb2, 0x8e, 0x4b, 0x52, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x22, 0x70, 0xb1, 0xb5, 0xb8, 0xa8,
		0x85, 0x75, 0x5c, 0x77, 0x01, 0xa0, 0x25, 0xd0, 0x12, 0x68, 0x09, 0xb4, 0x6c, 0x25, 0x5a, 0xf2,
		0xb2, 0x8e, 0x4b, 0x52, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x22, 0x70, 0xb1, 0x95, 0xb8, 0xc8, 0x7f,
		0x5c, 0x2f, 0x27, 0x19, 0xf8, 0x08, 0x7c, 0x04, 0x3e, 0x02, 0x1f, 0x5b, 0x85, 0x8f, 0x7e, 0xe8,
		0x3a, 0xbe, 0x2d, 0x3d, 0x3e, 0x5c, 0xcc, 0x24, 0x02, 0x0f, 0xcb, 0xe1, 0xe1, 0xa4, 0x6b, 0x07,
		0x50, 0x50, 0x0b, 0x0a, 0x4e, 0x17, 0x17, 0xd8, 0xb7, 0xb2, 0xf3, 0xd8, 0xc6, 0x1f, 0xb4, 0x1a,
		0xfd, 0x58, 0xc6, 0x82, 0x65, 0x6b, 0xca, 0xd1, 0xb4, 0xbc, 0x33, 0x53, 0x02, 0x81, 0x7a, 0x40,
		0xbd, 0x2d, 0x8f, 0xc5, 0x36, 0x11, 0xf0, 0x79, 0x7a, 0xe4, 0x91, 0xb9, 0x6d, 0xe3, 0x44, 0x2c,
		0x26, 0x49, 0x19, 0x06, 0x08, 0xba, 0x80, 0x41, 0x3b, 0x40, 0x68, 0x07, 0x0a, 0xfd, 0x80, 0xc1,
		0x03, 0x1c, 0x4c, 0x00, 0xc2, 0xef, 0x3e, 0xe9, 0x73, 0xa3, 0x98, 0xdd, 0x29, 0xbe, 0xf7, 0xc0,
		0x31, 0xe7, 0x2f, 0x05, 0x4a, 0x4d, 0x33, 0x58, 0x17, 0x64, 0x03, 0x89, 0x81, 0xc4, 0x40, 0x62,
		0x20, 0xf1, 0xae, 0x22, 0xb1, 0x09, 0xc3, 0xba, 0xd8, 0xe0, 0x16, 0xe3, 0xb9, 0x30, 0x9e, 0x8b,
		0xda, 0x95, 0xb8, 0xa0, 0xbb, 0xed, 0x7b, 0x26, 0x4f, 0xa0, 0xb6, 0x1e, 0xc5, 0xf7, 0xd3, 0x67,
		0x58, 0xf8, 0x28, 0x85, 0xb4, 0x16, 0xb2, 0x69, 0x63, 0x13, 0x2c, 0xa2, 0x48, 0x78, 0x76, 0x12,
		0x39, 0x41, 0x3c, 0x0c, 0xa3, 0xc4, 0xf6, 0x9d, 0x37, 0x11, 0xf1, 0x51, 0x6c, 0xeb, 0x2f, 0x81,
		0x6c, 0x43, 0x39, 0xe7, 0x0e, 0xd9, 0x57, 0x64, 0x5f, 0x9b, 0x74, 0xdc, 0xe6, 0x79, 0xc2, 0xb1,
		0xda, 0xda, 0xc3, 0x28, 0x4c, 0x42, 0x37, 0xf4, 0xb9, 0x22, 0xb8, 0xdd, 0x9a, 0xb6, 0x85, 0xc9,
		0x04, 0x2a, 0x3e, 0x40, 0x1b, 0x46, 0x13, 0xe4, 0xcd, 0x7e, 0x6d, 0xb3, 0x09, 0xf6, 0x34, 0x6e,
		0xa6, 0x59, 0x98, 0xa0, 0x58, 0x04, 0x40, 0x0b, 0x0a, 0x58, 0x82, 0x00, 0x16, 0xa7, 0x9f, 0xe6,
		0xe4, 0x57, 0x5d, 0x73, 0xa2, 0xe2, 0xd6, 0xab, 0xb0, 0x0a, 0xca, 0x59, 0x97, 0x52, 0x56, 0xd3,
		0xc0, 0xf2, 0x7a, 0x54, 0xe1, 0x7d, 0xee, 0x47, 0x22, 0x4e, 0xc2, 0x28, 0x7d, 0x99, 0xb6, 0x1b,
		0x86, 0x91, 0x27, 0x03, 0x27, 0x11, 0x76, 0xa2, 0x62, 0x7e, 0xe7, 0xd3, 0x2d, 0x37, 0x08, 0xad,
		0xaa, 0xdf, 0x4a, 0x7e, 0xb2, 0xb2, 0x5f, 0x4c, 0xf1, 0x83, 0x59, 0xa7, 0x7d, 0x50, 0x7d, 0x5c,
		0x36, 0x9f, 0x96, 0xcd, 0x87, 0xe5, 0x9e, 0xe6, 0xa1, 0xd7, 0xae, 0x28, 0xfb, 0x9f, 0x0b, 0xfd,
		0xe3, 0x29, 0x1b, 0x9f, 0xea, 0x5b, 0x2a, 0xfa, 0x92, 0x3a, 0x41, 0x46, 0xd8, 0xc3, 0x48, 0x86,
		0xd1, 0xf8, 0x65, 0x13, 0x91, 0x65, 0x41, 0x12, 0xe0, 0x04, 0x70, 0xd2, 0x09, 0x38, 0x51, 0xee,
		0x65, 0x4f, 0xe8, 0x5d, 0x4f, 0xec, 0x55, 0x4f, 0x88, 0xe9, 0x38, 0x7a, 0xd1, 0x73, 0x71, 0x6c,
		0x4c, 0xbd, 0xe6, 0x39, 0xbb, 0x93, 0x53, 0x58, 0x53, 0x8e, 0xde, 0xf1, 0xdc, 0x4b, 0xcb, 0xdf,
		0x1b, 0x9e, 0x75, 0xb5, 0x6b, 0x8a, 0x94, 0x1f, 0x8c, 0x30, 0xd5, 0xcf, 0x22, 0x8a, 0xc7, 0x8e,
		0xfb, 0x93, 0x4a, 0x7f, 0x90, 0x05, 0x43, 0xbd, 0x24, 0x07, 0x66, 0x1a, 0x66, 0xba, 0x13, 0x66,
		0x9a, 0xb4, 0xef, 0x77, 0xca, 0xe9, 0x8f, 0x85, 0x3f, 0xa1, 0x43, 0x66, 0x2c, 0x8d, 0x3a, 0x98,
		0xe4, 0x45, 0x01, 0x4f, 0x80, 0x27, 0x9d, 0xc0, 0x13, 0xea, 0xd6, 0xdf, 0x2d, 0x48, 0x19, 0x7d,
		0xb7, 0x97, 0x99, 0x5f, 0x02, 0xa6, 0xe4, 0x65, 0xa9, 0x81, 0x4a, 0x4f, 0x15, 0x54, 0x3e, 0x00,
		0x54, 0x00, 0x2a, 0x0a, 0xa0, 0xa2, 0x7a, 0x4c, 0x65, 0x7f, 0x9e, 0x3f, 0xb1, 0xd3, 0xa3, 0xc8,
		0xe4, 0x69, 0xdf, 0xab, 0x02, 0x69, 0x93, 0xbe, 0x0f, 0x30, 0xe9, 0x9b, 0x57, 0xd1, 0xd8, 0x15,
		0x8e, 0x5d, 0xf1, 0x74, 0x29, 0x20, 0x31, 0x72, 0x57, 0xdc, 0x47, 0xe4, 0x9a, 0x95, 0x79, 0xad,
		0x8a, 0x70, 0xfa, 0x91, 0xe8, 0x53, 0xf6, 0xce, 0xcc, 0x3a, 0x1d, 0x11, 0x64, 0xdc, 0x14, 0xa4,
		0x68, 0x3f, 0xcf, 0xb2, 0xb1, 0xb9, 0xd7, 0xf4, 0xb9, 0x30, 0x69, 0xbb, 0xfe, 0xcf, 0xc2, 0xa0,
		0xe0, 0x97, 0x29, 0x8e, 0xd4, 0x55, 0x99, 0xa0, 0x92, 0x1a, 0x5e, 0x72, 0x19, 0x98, 0x70, 0xb4,
		0x48, 0x28, 0xb0, 0x14, 0x58, 0x0a, 0x2c, 0x05, 0x96, 0x12, 0xb0, 0x74, 0xa5, 0x48, 0xa6, 0x61,
		0xb0, 0xad, 0xa3, 0x0c, 0x6c, 0xc5, 0x21, 0xb5, 0xe8, 0xc0, 0x8a, 0x0a, 0x31, 0x6b, 0x27, 0x2a,
		0xc4, 0xc8, 0xe1, 0xbe, 0xc5, 0x5f, 0x18, 0x76, 0x37, 0xfa, 0xbe, 0xf4, 0x81, 0x09, 0xf5, 0x60,
		0x93, 0x35, 0x22, 0xd0, 0x2a, 0x93, 0xef, 0xd7, 0x4c, 0xa5, 0x80, 0x9f, 0x05, 0x95, 0x52, 0x2b,
		0x95, 0x42, 0x6e, 0x63, 0xc6, 0xd5, 0xbe, 0x6c, 0x17, 0x1d, 0x7e, 0xe2, 0x69, 0xf0, 0x6e, 0xbb,
		0xfa, 0xb4, 0xd3, 0xdc, 0x6d, 0x75, 0xf2, 0xc9, 0xa7, 0xb1, 0x89, 0xa7, 0xaf, 0xeb, 0x21, 0x1f,
		0x48, 0x1d, 0x2d, 0x38, 0xda, 0x86, 0x11, 0xdb, 0x85, 0x01, 0x6d, 0x80, 0x36, 0xcd, 0xa1, 0x0d,
		0xb5, 0xbd, 0x17, 0x53, 0x5b, 0x2f, 0xd6, 0x76, 0x5e, 0xe8, 0x5a, 0xda, 0x98, 0xc2, 0x6a, 0x53,
		0x5c, 0x6d, 0x0a, 0xac, 0x4f, 0x91, 0x69, 0x0a, 0x4d, 0x54, 0x6c, 0x3e, 0x77, 0x82, 0xdf, 0xad,
		0x60, 0x72, 0x2f, 0xe8, 0xeb, 0x4b, 0xa9, 0x18, 0x66, 0x6c, 0xa7, 0xc5, 0xdf, 0x46, 0x0b, 0x08,
		0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x0d, 0x73, 0x36, 0xb9, 0xda, 0x57, 0xf1, 0xb4, 0xad, 0x62,
		0x6d, 0x57, 0xc5, 0xda, 0xa6, 0x8a, 0xa7, 0x3d, 0xd5, 0xee, 0xb5, 0xa0, 0x98, 0xfc, 0x93, 0xda,
		0x5d, 0x8a, 0x3b, 0x61, 0x91, 0xfe, 0x8b, 0xd0, 0x2f, 0xaa, 0xa6, 0x1a, 0x8d, 0xb4, 0x66, 0x56,
		0x78, 0xf6, 0x42, 0x3a, 0x50, 0x04, 0x1e, 0x71, 0x9e, 0xe3, 0x4a, 0x49, 0xee, 0x3a, 0xf1, 0x0d,
		0x13, 0x2b, 0x1f, 0x50, 0xb7, 0xb1, 0x43, 0xf4, 0x4a, 0xfb, 0xea, 0x36, 0xc8, 0x24, 0x4b, 0x91,
		0x52, 0xd1, 0xca, 0xac, 0x72, 0xfb, 0x73, 0xfd, 0x25, 0x10, 0x8a, 0xd4, 0xaa, 0xdc, 0x08, 0x48,
		0x74, 0x2b, 0xff, 0xae, 0x86, 0x25, 0xf4, 0xa2, 0xae, 0x9c, 0xe5, 0x3d, 0x62, 0x90, 0xb5, 0xbd,
		0xc8, 0x6b, 0xd6, 0x3e, 0xec, 0xf3, 0x62, 0x1f, 0xb1, 0x0d, 0xbf, 0x5e, 0xf9, 0x38, 0x08, 0x3d,
		0xb1, 0xf2, 0x51, 0xf8, 0x12, 0x08, 0x6f, 0x75, 0xa8, 0x74, 0x51, 0xa9, 0x98, 0x18, 0xda, 0xbe,
		0x8c, 0x37, 0x57, 0x91, 0xcd, 0x01, 0x91, 0xb5, 0x5c, 0xac, 0x59, 0xfe, 0x6a, 0x65, 0x6d, 0x98,
		0xad, 0x49, 0xa1, 0x74, 0x18, 0x92, 0x72, 0x86, 0x84, 0x69, 0x98, 0x25, 0x8c, 0x48, 0xb1, 0x11,
		0xc9, 0x96, 0x17, 0x06, 0x04, 0x06, 0x44, 0xc1, 0x80, 0x64, 0x7f, 0xd3, 0x6a, 0xe8, 0xd7, 0x80,
		0xf7, 0x00, 0x79, 0x80, 0x3c, 0x40, 0x1e, 0x20, 0xdf, 0x1a, 0x90, 0x6f, 0x2b, 0x80, 0x67, 0x0b,
		0xc0, 0x0b, 0xe2, 0xcb, 0x62, 0x01, 0xe4, 0x00, 0x72, 0x00, 0x39, 0x80, 0xdc, 0x38, 0x20, 0x6f,
		0x14, 0xb5, 0x9b, 0xc8, 0x97, 0x2f, 0xe1, 0xb2, 0x95, 0xb9, 0xda, 0x56, 0x11, 0xc9, 0x62, 0x71,
		0xf3, 0xf8, 0x5a, 0x72, 0xed, 0x4c, 0x06, 0xab, 0x47, 0x35, 0x52, 0x8c, 0x78, 0xbb, 0x88, 0xb5,
		0x4f, 0x32, 0xb0, 0xc5, 0xec, 0x69, 0x19, 0x54, 0x4a, 0x07, 0xda, 0x2e, 0x21, 0x6d, 0xaf, 0x8d,
		0x5e, 0x10, 0x2a, 0x2e, 0x56, 0xe5, 0x68, 0xab, 0xb8, 0xd0, 0x91, 0xdd, 0xb7, 0xb4, 0x95, 0x62,
		0xdc, 0x4d, 0xef, 0x76, 0xfe, 0x77, 0xe7, 0x81, 0x77, 0x13, 0xd6, 0x39, 0xde, 0x83, 0x52, 0xa0,
		0x91, 0x0e, 0x6b, 0x60, 0xac, 0xc8, 0x98, 0xc8, 0x43, 0x09, 0x06, 0x4a, 0x30, 0x98, 0x5c, 0xf2,
		0xae, 0x97, 0x60, 0x68, 0x2b, 0xbc, 0x40, 0xdc, 0x5d, 0xbf, 0x22, 0x23, 0xf6, 0xd6, 0xad, 0xe8,
		0x88, 0xbf, 0x0d, 0x8b, 0xbf, 0x0d, 0xea, 0x4f, 0xd6, 0x6c, 0x04, 0x31, 0x19, 0x8b, 0x45, 0x6e,
		0x5b, 0x90, 0xdb, 0x19, 0x2b, 0x72, 0x81, 0xe8, 0x40, 0x74, 0x20, 0x3a, 0x10, 0xbd, 0x45, 0x88,
		0x9e, 0x22, 0x58, 0xc1, 0xe7, 0x19, 0xa6, 0x75, 0x89, 0x7f, 0x5d, 0x6d, 0xa0, 0xc6, 0x02, 0xef,
		0xe0, 0x55, 0xc1, 0xab, 0x82, 0x57, 0x05, 0xaf, 0x4a, 0xe7, 0xe8, 0xf4, 0x13, 0xa9, 0xe9, 0x88,
		0x56, 0xf3, 0xb9, 0xd3, 0x31, 0x40, 0x47, 0xc2, 0x89, 0x09, 0xaf, 0xbb, 0x60, 0xc4, 0xc4, 0x54,
		0x62, 0xc3, 0x9d, 0xc8, 0xc0, 0x9f, 0x82, 0x3f, 0x6d, 0xd2, 0x15, 0x62, 0xec, 0x4a, 0xc6, 0xa3,
		0x59, 0x16, 0x71, 0x86, 0x4b, 0x26, 0x43, 0x6d, 0x96, 0x4b, 0xcd, 0xf8, 0x36, 0xb1, 0x1e, 0x9e,
		0x8c, 0x26, 0x4b, 0xc7, 0xd6, 0x5d, 0x7d, 0x2e, 0x11, 0x9d, 0x16, 0x81, 0x6f, 0xc0, 0x37, 0x86,
		0x5d, 0x34, 0x0c, 0xa3, 0x84, 0xac, 0x57, 0xed, 0x45, 0xb7, 0x3a, 0x3a, 0x9a, 0x2b, 0x86, 0xde,
		0x68, 0x5b, 0x6e, 0xed, 0x46, 0xdb, 0x72, 0x95, 0x76, 0xda, 0xda, 0xa2, 0x24, 0x13, 0x1a, 0x94,
		0x2b, 0x65, 0xa4, 0xe7, 0x53, 0xb4, 0x15, 0x26, 0x00, 0xb4, 0x78, 0x78, 0xa4, 0x62, 0xc3, 0xb0,
		0x6e, 0xb4, 0x25, 0x57, 0x6b, 0xf8, 0x65, 0xfc, 0x9c, 0x78, 0xb5, 0xc2, 0x0a, 0xc5, 0xf6, 0x5c,
		0x7a, 0x74, 0xfc, 0xc5, 0x91, 0x89, 0x9d, 0x84, 0x76, 0x3a, 0x4c, 0x37, 0xb1, 0x13, 0xf9, 0x44,
		0x98, 0x44, 0x5d, 0x24, 0xac, 0x6a, 0x9b, 0x78, 0xd1, 0x77, 0x46, 0xfe, 0x84, 0xe6, 0xfc, 0x88,
		0xd9, 0xb3, 0x00, 0x91, 0x6e, 0xcc, 0x9e, 0x1d, 0xc9, 0x20, 0xf9, 0x74, 0x48, 0x00, 0x93, 0x63,
		0x85, 0xaf, 0xde, 0x3a, 0xc1, 0x60, 0x7c, 0xf5, 0xff, 0x28, 0xbd, 0x22, 0x5a, 0x7a, 0x89, 0x21,
		0x84, 0xe5, 0x29, 0x60, 0xf8, 0x73, 0xda, 0x69, 0x9a, 0x2a, 0xe7, 0x4b, 0xe4, 0xa4, 0xde, 0xdc,
		0x99, 0x1c, 0xc8, 0xd4, 0x0b, 0x3f, 0x68, 0x2a, 0xcd, 0x62, 0xdc, 0xd2, 0xf6, 0x8e, 0x0f, 0x0f,
		0x3f, 0x1d, 0x1d, 0x1e, 0x1e, 0x1c, 0xfd, 0xeb, 0xe8, 0xe0, 0xdf, 0x1f, 0x3f, 0xf6, 0x3e, 0xf5,
		0x3e, 0x1a, 0xb4, 0xda, 0x35, 0xc5, 0xb0, 0x0f, 0xba, 0xac, 0xfd, 0x1e, 0xe3, 0x9e, 0x9a, 0xc5,
		0xc2, 0x15, 0x5c, 0x1b, 0xb5, 0xf8, 0x97, 0x14, 0xf7, 0x92, 0xe2, 0x5d, 0xb5, 0x38, 0xb7, 0xec,
		0xfa, 0x29, 0xc6, 0xb5, 0xfc, 0xf1, 0xec, 0x7e, 0x95, 0x49, 0x54, 0x9c, 0x01, 0x6c, 0x39, 0xe3,
		0xbc, 0x7d, 0xd7, 0x96, 0x58, 0xf1, 0x6a, 0x11, 0xaa, 0x8a, 0xdf, 0x5e, 0x11, 0x0a, 0x2b, 0xbb,
		0x92, 0x2a, 0x2e, 0x24, 0x31, 0xf2, 0x54, 0x75, 0x16, 0xc9, 0x4e, 0x22, 0xd9, 0x39, 0xa4, 0x47,
		0x96, 0xbc, 0x58, 0x59, 0xd9, 0xed, 0x53, 0x8d, 0x1c, 0x2b, 0x46, 0x8c, 0x25, 0x74, 0x6b, 0x8f,
		0xf0, 0xfc, 0x15, 0x6c, 0x44, 0x35, 0xdb, 0xa0, 0x64, 0x13, 0x94, 0x6c, 0x41, 0x35, 0x1b, 0xb0,
		0x6d, 0x3d, 0x2a, 0x62, 0x3e, 0x03, 0xd6, 0x97, 0xd8, 0x3b, 0x54, 0x50, 0xdf, 0xac, 0x54, 0xeb,
		0x37, 0xd0, 0x86, 0xc5, 0xda, 0x5f, 0x7a, 0xaa, 0x58, 0x44, 0xcf, 0xb2, 0x04, 0x0e, 0xe5, 0x8e,
		0xb4, 0x2c, 0x7d, 0x7b, 0xdb, 0x56, 0x2d, 0x75, 0xd0, 0xac, 0x34, 0x6c, 0x57, 0x81, 0x6b, 0x52,
		0x84, 0x5f, 0x15, 0xa4, 0x95, 0xc1, 0x59, 0x19, 0x94, 0xa9, 0x11, 0x3a, 0x0d, 0x82, 0xca, 0x1e,
		0xbc, 0xda, 0x77, 0xbc, 0x27, 0x19, 0xc8, 0x38, 0x89, 0x9c, 0x44, 0x3e, 0x0b, 0x3b, 0x4e, 0x9c,
		0x0a, 0xa7, 0x20, 0xb3, 0x57, 0x58, 0x28, 0x05, 0x1e, 0x04, 0x3c, 0x88, 0xc6, 0x3c, 0x08, 0xc2,
		0x8e, 0xb4, 0x14, 0xb3, 0xc0, 0x15, 0xb3, 0xbe, 0x3c, 0x1e, 0xfe, 0x82, 0xcd, 0xab, 0xac, 0xb5,
		0x95, 0xec, 0xa5, 0x55, 0xfd, 0x5c, 0x72, 0xe5, 0x3a, 0x3a, 0x0e, 0x5d, 0x55, 0x22, 0x8a, 0x77,
		0x4b, 0x63, 0x55, 0x88, 0x60, 0x5e, 0xbd, 0xad, 0x7a, 0xee, 0x97, 0x7c, 0xce, 0x97, 0xe9, 0x5c,
		0x2f, 0x32, 0x24, 0xc8, 0x90, 0xb0, 0x10, 0x9a, 0xf5, 0x67, 0x48, 0xd4, 0x4f, 0x51, 0x51, 0x4e,
		0x4d, 0xb5, 0xe3, 0xdc, 0x6b, 0xc3, 0x64, 0xb1, 0x1a, 0x26, 0x81, 0x37, 0x36, 0x81, 0x37, 0x5e,
		0x0c, 0xa6, 0xdf, 0x57, 0x76, 0x98, 0xe8, 0x44, 0xc3, 0xf8, 0xb3, 0xbb, 0xc9, 0xe5, 0x4b, 0x93,
		0x0f, 0x7a, 0x3c, 0xcc, 0xd9, 0xf2, 0x8c, 0x7d, 0xea, 0x2a, 0xc3, 0x8b, 0x8a, 0xf9, 0x89, 0x05,
		0x41, 0x9a, 0x7d, 0xcf, 0x03, 0xf8, 0x9e, 0xf0, 0x3d, 0x4b, 0xfa, 0x9e, 0xe2, 0xd5, 0xf5, 0x47,
		0xb1, 0x4a, 0xd1, 0x65, 0xe1, 0x44, 0x9f, 0x4c, 0x1a, 0xbc, 0x50, 0x78, 0xa1, 0xdd, 0xa8, 0xd3,
		0xa9, 0xb7, 0xe4, 0x0f, 0x95, 0xe8, 0x0a, 0x95, 0xe8, 0x5a, 0xea, 0x24, 0x17, 0x60, 0x4f, 0x06,
		0x9c, 0x20, 0x3a, 0x97, 0x06, 0x10, 0x05, 0x88, 0x02, 0x44, 0x01, 0xa2, 0xbb, 0x0c, 0xa2, 0x93,
		0x26, 0x27, 0x2c, 0x08, 0xba, 0x2a, 0x4a, 0x0d, 0x3e, 0x7b, 0x80, 0x4f, 0xc0, 0x67, 0x9d, 0xf0,
		0xa9, 0xda, 0x32, 0xb4, 0xb0, 0xfc, 0x81, 0xd6, 0x34, 0x74, 0x63, 0x65, 0x05, 0xa9, 0xbb, 0x3b,
		0xce, 0x6f, 0xeb, 0x51, 0x3e, 0x76, 0x25, 0x64, 0x57, 0x46, 0x5d, 0x4a, 0xa9, 0xa6, 0x9c, 0x8a,
		0x4a, 0x4a, 0xf7, 0x75, 0x72, 0xbb, 0x88, 0xde, 0x04, 0x8e, 0xa3, 0xf9, 0x9b, 0xe6, 0x74, 0xc6,
		0x12, 0x99, 0xcc, 0xd9, 0xd0, 0xd3, 0xb4, 0x13, 0xe3, 0x4d, 0x9f, 0x5e, 0x2e, 0x64, 0xed, 0x57,
		0x78, 0xe7, 0xf7, 0x54, 0x17, 0x49, 0x0f, 0xb9, 0x3f, 0xfd, 0xbb, 0xe9, 0x4d, 0x3e, 0x9e, 0x4e,
		0x6e, 0xf2, 0x22, 0xbb, 0x47, 0x03, 0xdc, 0x54, 0x4f, 0x3e, 0x8b, 0x28, 0x1e, 0xaf, 0x26, 0x03,
		0x5f, 0x5a, 0x24, 0x0c, 0xae, 0x2a, 0x5c, 0x55, 0xb8, 0xaa, 0x70, 0x55, 0xe1, 0xaa, 0xc2, 0x55,
		0x85, 0xab, 0x0a, 0x57, 0x55, 0x27, 0x88, 0xaf, 0xd4, 0xe8, 0x50, 0x71, 0x13, 0xf4, 0xe8, 0xce,
		0xc6, 0x0b, 0x74, 0x4f, 0xb5, 0x96, 0x88, 0xe1, 0x6c, 0x76, 0x9b, 0xe7, 0xaf, 0x06, 0xc5, 0x0c,
		0x91, 0xf8, 0x67, 0x24, 0xe2, 0x74, 0x98, 0x99, 0x33, 0x74, 0xdc, 0xb1, 0xe1, 0x50, 0x0e, 0x19,
		0x0a, 0x64, 0x21, 0x62, 0x40, 0xc4, 0xb0, 0xcb, 0x11, 0x43, 0x12, 0x26, 0x8e, 0x6f, 0xc7, 0xf2,
		0xbf, 0x0c, 0x23, 0xea, 0x16, 0x64, 0x35, 0x3c, 0x9e, 0xce, 0xa0, 0x98, 0x40, 0xb1, 0x3d, 0x19,
		0xa2, 0x01, 0xf5, 0xf6, 0x65, 0xcd, 0xc4, 0x01, 0xe4, 0x91, 0x74, 0xa3, 0x40, 0x26, 0x7c, 0x43,
		0x1f, 0x52, 0x69, 0x18, 0x55, 0x54, 0x93, 0x9a, 0x72, 0xab, 0xab, 0x36, 0xb5, 0xd5, 0xa6, 0xbe,
		0xfa, 0xd4, 0x98, 0xa6, 0xce, 0x44, 0xb5, 0xe6, 0x0b, 0xf3, 0xf3, 0x8c, 0xda, 0xd4, 0xc7, 0xb4,
		0x19, 0x54, 0xd5, 0x62, 0x6a, 0x30, 0x9c, 0xc9, 0xa2, 0x35, 0x1a, 0xa6, 0xbf, 0x32, 0x4a, 0x2b,
		0xae, 0xe7, 0x69, 0xfb, 0x2b, 0x26, 0x24, 0x9d, 0x88, 0x03, 0x94, 0x02, 0x4a, 0x01, 0xa5, 0x86,
		0x42, 0xa9, 0x72, 0x17, 0xc7, 0x75, 0x7a, 0x7a, 0xcc, 0x20, 0x8a, 0xd6, 0xe5, 0x71, 0xf5, 0x87,
		0x47, 0x09, 0x2c, 0xae, 0x2e, 0x90, 0x9a, 0x00, 0x2e, 0x27, 0x96, 0xa9, 0x4b, 0x64, 0x4e, 0x2e,
		0x63, 0x1f, 0x43, 0x66, 0xf5, 0x58, 0x65, 0x5c, 0x5b, 0xf7, 0xaa, 0xf8, 0xbb, 0x4e, 0xd6, 0xfa,
		0xf6, 0xf6, 0xcc, 0x90, 0xf2, 0xd0, 0x89, 0x91, 0x8c, 0xa6, 0x8c, 0x74, 0x2b, 0xc5, 0xd3, 0xe7,
		0xe9, 0xe1, 0xf7, 0x64, 0xca, 0xcb, 0xaa, 0x83, 0xb9, 0xbf, 0x9d, 0xdd, 0xf8, 0xe9, 0xf4, 0xbe,
		0x1f, 0xef, 0xc7, 0xf7, 0x7d, 0x37, 0xbe, 0x6d, 0x94, 0x85, 0x35, 0xb7, 0x7d, 0x4c, 0xcc, 0xf2,
		0xe4, 0xf6, 0x8a, 0x09, 0x49, 0x9e, 0xf1, 0xfb, 0xf1, 0x46, 0x3e, 0xa1, 0x43, 0x7e, 0x26, 0x01,
		0x09, 0x9d, 0x5a, 0xa2, 0x2f, 0x24, 0x74, 0x68, 0x88, 0xa6, 0x9c, 0xd0, 0x11, 0x81, 0xa7, 0x36,
		0x4c, 0x22, 0xb7, 0x8d, 0x32, 0x49, 0x28, 0xf0, 0x42, 0x32, 0xa7, 0x71, 0xea, 0xa2, 0xad, 0x45,
		0x5d, 0x9e, 0x93, 0x08, 0xdb, 0xa1, 0xa9, 0x92, 0xa5, 0x7e, 0x08, 0x93, 0xe0, 0xb1, 0x29, 0x39,
		0x27, 0x8e, 0xea, 0x2c, 0x9b, 0xbc, 0xc5, 0x9e, 0xcb, 0x02, 0x00, 0x01, 0x80, 0x00, 0x40, 0x9d,
		0x03, 0x20, 0x84, 0x8c, 0x8a, 0x51, 0x4b, 0x2d, 0x81, 0xe2, 0xdd, 0xec, 0xde, 0x4c, 0x88, 0x0f,
		0xa7, 0x75, 0xb5, 0xbe, 0x78, 0x16, 0x3e, 0x21, 0x48, 0x5c, 0x12, 0x83, 0xb6, 0x20, 0x88, 0x14,
		0x3b, 0xd1, 0x16, 0x24, 0x4e, 0x22, 0x19, 0x0c, 0xda, 0x3e, 0x50, 0x71, 0xa6, 0xbc, 0x89, 0xca,
		0x7a, 0xe4, 0x20, 0x20, 0x95, 0x02, 0x04, 0x00, 0x02, 0x74, 0x03, 0x01, 0xd4, 0x77, 0xbd, 0x45,
		0xac, 0x3c, 0x52, 0xac, 0x34, 0x6a, 0xaa, 0xf3, 0xae, 0x51, 0xed, 0x62, 0xd5, 0x1a, 0x9e, 0xd6,
		0xe1, 0x1d, 0x36, 0xd6, 0x47, 0xb6, 0xec, 0x70, 0x9b, 0x9c, 0x0a, 0x28, 0x0c, 0xb9, 0xc9, 0x6d,
		0x7f, 0x4c, 0x2f, 0x60, 0x02, 0x74, 0x74, 0x90, 0x5d, 0xbf, 0xb5, 0x99, 0xe6, 0x18, 0x90, 0xcf,
		0x23, 0xc2, 0xdb, 0x81, 0xb7, 0xd3, 0x4e, 0x6f, 0x67, 0x27, 0x27, 0x1a, 0xb0, 0x9f, 0xab, 0x36,
		0x64, 0xb6, 0x81, 0x2a, 0x4e, 0x61, 0xca, 0x81, 0xd9, 0x6e, 0x6b, 0x35, 0x17, 0x4b, 0x9f, 0xcf,
		0x3a, 0xfd, 0xac, 0x4e, 0x87, 0xd5, 0x93, 0x91, 0xea, 0x64, 0xad, 0xf9, 0x57, 0x35, 0x0f, 0xc1,
		0x83, 0x6b, 0xda, 0x2d, 0xd7, 0x54, 0x7d, 0x20, 0x5e, 0x3f, 0x8c, 0x5e, 0x9c, 0xc8, 0x93, 0xc1,
		0xc0, 0xae, 0xba, 0x3b, 0xad, 0x36, 0x0d, 0xc4, 0x13, 0x81, 0x67, 0x0f, 0x43, 0xa5, 0x01, 0x25,
		0xf3, 0xaf, 0x62, 0x24, 0x09, 0xb4, 0xb6, 0xc9, 0x80, 0x92, 0x34, 0x95, 0x35, 0xb7, 0x15, 0x88,
		0xb3, 0x30, 0xdb, 0x1e, 0x46, 0x2a, 0x16, 0x63, 0x74, 0x23, 0x80, 0x54, 0x2b, 0xb6, 0x30, 0x3d,
		0x74, 0x64, 0xd8, 0xf1, 0xe6, 0x13, 0xe6, 0x55, 0x1a, 0xcb, 0x93, 0x7b, 0xee, 0xa0, 0xd3, 0x0e,
		0xd0, 0x03, 0x9d, 0x76, 0xaa, 0x6e, 0x24, 0x74, 0xda, 0x41, 0x6d, 0xa4, 0xba, 0x40, 0x74, 0xda,
		0x41, 0xa7, 0x1d, 0xed, 0xea, 0xa9, 0x49, 0x4d, 0xb9, 0xd5, 0x55, 0x9b, 0xda, 0x6a, 0x53, 0x5f,
		0x7d, 0x6a, 0x4c, 0x53, 0x67, 0xa2, 0x5a, 0xd3, 0xbd, 0xf4, 0xad, 0x3e, 0x26, 0x3a, 0xed, 0xf0,
		0xbe, 0x2e, 0x74, 0xda, 0x01, 0x94, 0x02, 0x4a, 0x3b, 0x05, 0xa5, 0xe8, 0xb4, 0x53, 0xe5, 0xc6,
		0xd0, 0x69, 0x07, 0x9d, 0x76, 0xd0, 0x69, 0x47, 0x0b, 0x34, 0xf2, 0x49, 0x41, 0xa7, 0x9d, 0x2a,
		0x72, 0x58, 0x2b, 0x42, 0xb2, 0xc4, 0xe8, 0x7b, 0x53, 0x3b, 0xea, 0x9c, 0x07, 0xde, 0x4d, 0x98,
		0xce, 0xcb, 0x42, 0xeb, 0x9c, 0x26, 0xf6, 0x43, 0xa3, 0x27, 0x1f, 0x73, 0x2f, 0x7f, 0xdf, 0xac,
		0x81, 0xe8, 0xd5, 0x4b, 0x12, 0xf2, 0xa1, 0x71, 0x91, 0xb4, 0x9a, 0x53, 0x31, 0x1f, 0x90, 0x8a,
		0x41, 0x2a, 0xa6, 0x89, 0x31, 0x69, 0x8b, 0x9b, 0x9e, 0x79, 0x4c, 0x5a, 0x5e, 0x34, 0x9a, 0x58,
		0x60, 0x4c, 0x9a, 0x65, 0x82, 0x52, 0x36, 0xe3, 0x7f, 0x76, 0x70, 0x4c, 0x5a, 0x12, 0x0e, 0x43,
		0x3f, 0x1c, 0xbc, 0x7d, 0x9e, 0xfd, 0x8f, 0xbd, 0xf9, 0xd7, 0x2b, 0x1f, 0x07, 0xa1, 0x27, 0x56,
		0x3e, 0x0a, 0x5f, 0x02, 0xe1, 0xd9, 0xe3, 0x5f, 0xd8, 0xc2, 0x1b, 0x88, 0xa9, 0xaf, 0x54, 0x70,
		0x28, 0x40, 0x0c, 0x6d, 0x5f, 0xc6, 0x9b, 0xce, 0x0b, 0x2c, 0x02, 0x54, 0xd3, 0x73, 0xd8, 0x14,
		0x4c, 0xef, 0xca, 0x1a, 0x30, 0xa1, 0x77, 0xa1, 0x54, 0x00, 0xf7, 0xfe, 0xd2, 0x2e, 0x04, 0x68,
		0x2b, 0x81, 0x76, 0xb6, 0x7c, 0x00, 0x6c, 0x00, 0xf6, 0xe2, 0xdf, 0xb4, 0x02, 0x6a, 0x19, 0xf1,
		0x15, 0xa0, 0x0a, 0x50, 0x05, 0xa8, 0x02, 0x54, 0x95, 0x41, 0xd5, 0x74, 0xc0, 0xcc, 0x1e, 0x94,
		0x07, 0x34, 0x97, 0xc5, 0x01, 0x38, 0x01, 0x9c, 0x00, 0x4e, 0x00, 0xe7, 0x56, 0xe0, 0xdc, 0xb9,
		0x49, 0xea, 0x4b, 0x38, 0x68, 0x65, 0xae, 0xa4, 0x55, 0x14, 0xb4, 0x5b, 0x5c, 0x3c, 0x2c, 0xc6,
		0xae, 0x5b, 0x3b, 0x94, 0x54, 0xa4, 0x27, 0xbb, 0x2c, 0x4d, 0x09, 0xc6, 0xec, 0xce, 0x66, 0x1f,
		0x99, 0x90, 0x6a, 0xac, 0xde, 0xa8, 0x20, 0x87, 0xb6, 0x2a, 0x47, 0xc2, 0x2d, 0xb4, 0x17, 0x42,
		0x52, 0xb1, 0x29, 0x63, 0x43, 0x3f, 0x23, 0x3a, 0x0c, 0xa3, 0xc4, 0x56, 0xdd, 0xf7, 0xd6, 0x2e,
		0x9d, 0x0e, 0xf5, 0x9d, 0x37, 0x11, 0xd9, 0xc3, 0x28, 0x4c, 0x42, 0x37, 0xf4, 0xed, 0x29, 0x60,
		0x2a, 0x22, 0x49, 0x91, 0x30, 0x60, 0x0a, 0x30, 0xa5, 0x1b, 0x2d, 0xcb, 0xc8, 0x9b, 0x7f, 0x97,
		0x81, 0xe5, 0x9f, 0x91, 0xe3, 0xcb, 0xbe, 0x14, 0x11, 0x1b, 0xba, 0xcc, 0x25, 0x02, 0x62, 0x00,
		0x31, 0x5d, 0x84, 0x18, 0x55, 0x0d, 0x58, 0xc2, 0x19, 0x85, 0x6a, 0xf4, 0xfd, 0x0b, 0x4f, 0x04,
		0x89, 0x4c, 0xde, 0x7e, 0x73, 0x62, 0x86, 0x93, 0xf2, 0x97, 0x27, 0x7f, 0x9d, 0xdf, 0x3e, 0xde,
		0xdc, 0x5e, 0xdf, 0x5f, 0x9f, 0x5e, 0x5f, 0x3e, 0xfe, 0xef, 0xb7, 0x93, 0xcb, 0x8b, 0x2f, 0x17,
		0xe7, 0xb7, 0xaa, 0xbb, 0x2b, 0x2d, 0xbd, 0x8f, 0x49, 0x67, 0x4d, 0x98, 0x0e, 0xcb, 0xad, 0x7b,
		0xb2, 0xc7, 0x6f, 0x57, 0x77, 0x37, 0xe7, 0xa7, 0xe3, 0xff, 0x3f, 0xab, 0x9b, 0xdd, 0x7b, 0xd0,
		0xad, 0x15, 0x7a, 0xac, 0x89, 0xec, 0x0b, 0xf7, 0xcd, 0xf5, 0xc9, 0xfd, 0x90, 0x56, 0x05, 0xd5,
		0x6c, 0x3b, 0x3e, 0xa0, 0x15, 0x12, 0x5a, 0x21, 0xd5, 0x67, 0x2f, 0x48, 0x9b, 0x7d, 0xb7, 0xdc,
		0xd1, 0xd0, 0x75, 0x7c, 0x9b, 0xd2, 0x95, 0x3b, 0x93, 0x80, 0xee, 0x69, 0x80, 0x8c, 0x9d, 0x85,
		0x8c, 0xdd, 0x18, 0x34, 0x44, 0xa3, 0xb1, 0x08, 0xbc, 0x55, 0x0f, 0x5a, 0x0e, 0x2d, 0x37, 0xf6,
		0x50, 0x0d, 0xad, 0x17, 0x08, 0x4b, 0x0f, 0x10, 0x4c, 0x7c, 0x65, 0x57, 0x24, 0x76, 0x85, 0x62,
		0x57, 0x2c, 0x7e, 0x05, 0xa3, 0xc5, 0xc0, 0xcd, 0x57, 0xb8, 0x28, 0x9b, 0x59, 0xa2, 0xb9, 0x55,
		0x5f, 0x37, 0x95, 0x2a, 0xbb, 0x14, 0x28, 0xd4, 0x72, 0x4a, 0xc5, 0xa0, 0xa3, 0xca, 0xaa, 0x03,
		0x79, 0x80, 0x3c, 0x40, 0x9e, 0xb6, 0x22, 0x4f, 0x1d, 0x95, 0x6b, 0xca, 0xf0, 0x82, 0xea, 0x33,
		0x6b, 0x77, 0xaa, 0xcf, 0x54, 0x93, 0xb6, 0xfc, 0xd5, 0x66, 0xa9, 0xba, 0x1a, 0x10, 0x49, 0x87,
		0x43, 0x11, 0xa5, 0xef, 0xc9, 0xf1, 0xa9, 0xd4, 0x7b, 0x5e, 0x14, 0xc8, 0x77, 0xc4, 0xd8, 0x3b,
		0xcb, 0xa4, 0x51, 0xb7, 0xbb, 0xb5, 0x4b, 0xf4, 0xfb, 0x50, 0x88, 0xc8, 0xee, 0xbf, 0x78, 0x76,
		0xe1, 0xcc, 0x38, 0x86, 0x26, 0x39, 0x65, 0x2f, 0x80, 0x11, 0x06, 0x00, 0x9e, 0x2e, 0xf4, 0xcd,
		0x29, 0xde, 0xfe, 0xb6, 0x72, 0x1a, 0x2c, 0xb7, 0xcb, 0xca, 0x5e, 0x08, 0xc1, 0x3a, 0x7a, 0xea,
		0x58, 0x26, 0x28, 0x6c, 0xdb, 0x03, 0xf7, 0xd6, 0x1c, 0x8a, 0xd3, 0x38, 0x22, 0x77, 0x53, 0x3b,
		0x9c, 0x0c, 0x71, 0x0c, 0x26, 0x44, 0xf9, 0x86, 0x85, 0x97, 0xc3, 0x63, 0x1c, 0x47, 0x06, 0x02,
		0x03, 0x81, 0x81, 0xc0, 0x4d, 0x0e, 0x29, 0x37, 0x95, 0xf8, 0x35, 0x94, 0x82, 0xd4, 0x13, 0xc8,
		0x6a, 0x62, 0x29, 0x6f, 0x84, 0x88, 0xbe, 0xbc, 0x78, 0x05, 0x7f, 0x63, 0xd2, 0x19, 0xd9, 0x61,
		0x14, 0x26, 0xe3, 0xdb, 0x0b, 0x06, 0xfa, 0xe8, 0x87, 0xd2, 0x97, 0x00, 0x01, 0x01, 0x02, 0x02,
		0x04, 0x04, 0x08, 0x08, 0xb8, 0xbf, 0x70, 0x7f, 0xe1, 0xfe, 0x82, 0x80, 0x00, 0x01, 0x01, 0x04,
		0x06, 0x02, 0x03, 0x81, 0x81, 0xc0, 0x20, 0x20, 0xcc, 0x20, 0x20, 0x34, 0x85, 0xb2, 0xba, 0x28,
		0x88, 0xec, 0x76, 0x5b, 0xc2, 0x42, 0x84, 0x81, 0x1d, 0x85, 0xbe, 0xa0, 0x73, 0x0d, 0x33, 0x41,
		0x68, 0x7f, 0x01, 0x46, 0xa1, 0x1b, 0x5d, 0xbb, 0x48, 0x1b, 0xdf, 0xda, 0xa5, 0x7a, 0x2a, 0x1a,
		0x82, 0x00, 0x36, 0x00, 0x1b, 0x1d, 0x6b, 0xf6, 0xd7, 0x75, 0xc0, 0x18, 0x7b, 0x6f, 0x22, 0xd2,
		0x96, 0xff, 0x28, 0x27, 0x1e, 0xb9, 0x0f, 0x40, 0x0e, 0x72, 0x1f, 0xc8, 0x7d, 0x80, 0x79, 0x03,
		0xf3, 0x06, 0xe6, 0xad, 0x6d, 0xcc, 0x1b, 0x72, 0x1f, 0xd5, 0xf0, 0x18, 0xb9, 0x0f, 0x20, 0x30,
		0x10, 0x18, 0x08, 0x8c, 0xdc, 0x47, 0xc1, 0xe6, 0x36, 0x33, 0xf7, 0xa1, 0x23, 0x8c, 0xb5, 0xf4,
		0xe4, 0x3d, 0xee, 0xd2, 0x5b, 0x35, 0x3c, 0xe7, 0x31, 0x5b, 0x3b, 0x19, 0x24, 0x22, 0xea, 0x3b,
		0xae, 0xe0, 0xe0, 0x19, 0x8a, 0x04, 0x82, 0x59, 0x00, 0xb3, 0xb0, 0xcb, 0xcc, 0xc2, 0x9a, 0x7d,
		0xcf, 0xe4, 0xbe, 0x6e, 0x94, 0x0e, 0x0f, 0x16, 0xdd, 0x96, 0x18, 0x94, 0xb2, 0x9b, 0xdd, 0x96,
		0x5a, 0xe4, 0xb5, 0xa6, 0x9f, 0xad, 0x41, 0x82, 0xa5, 0xbf, 0x81, 0x17, 0x5a, 0x83, 0x17, 0x4a,
		0x77, 0x72, 0x34, 0xfa, 0x9d, 0xd2, 0x15, 0x17, 0xb3, 0x7b, 0xd3, 0xeb, 0x6b, 0xee, 0x31, 0xbe,
		0xf6, 0x59, 0xab, 0xaf, 0x8a, 0xec, 0xb8, 0x5a, 0x83, 0xaf, 0x95, 0xc6, 0x5e, 0x8a, 0xee, 0xee,
		0x87, 0xaa, 0x8e, 0x2d, 0xc1, 0xc4, 0x2c, 0x9a, 0x95, 0x27, 0x19, 0xd8, 0x62, 0x76, 0xf7, 0x0a,
		0xdb, 0x8e, 0xc3, 0xa0, 0x2c, 0x19, 0x91, 0x0f, 0x26, 0x44, 0x33, 0x94, 0x36, 0x6b, 0x6a, 0xed,
		0xd5, 0xca, 0xee, 0x6c, 0x45, 0x20, 0xd3, 0x04, 0x60, 0xfb, 0x55, 0x22, 0x44, 0x6e, 0x80, 0x2a,
		0xb7, 0x51, 0xb6, 0x6f, 0x90, 0x12, 0x4b, 0xaf, 0x3c, 0x95, 0x84, 0x38, 0xa0, 0xa1, 0xa2, 0x6f,
		0x5d, 0xb9, 0x01, 0x9a, 0x8a, 0xef, 0x4c, 0xf4, 0x95, 0x55, 0x81, 0x8b, 0xec, 0x0b, 0x93, 0xa1,
		0x8a, 0xee, 0xeb, 0xf2, 0x1a, 0xb9, 0xca, 0xbe, 0x2b, 0xc3, 0xb4, 0x10, 0x95, 0x2a, 0x99, 0x8a,
		0xd5, 0x31, 0x3c, 0x0a, 0x5b, 0xa9, 0x15, 0xb1, 0xca, 0x3c, 0x80, 0x8a, 0xcc, 0x52, 0xe5, 0x30,
		0x17, 0xaa, 0xd9, 0x62, 0xd5, 0xac, 0xca, 0xfe, 0x28, 0xf6, 0xeb, 0x27, 0xf5, 0xe9, 0xc7, 0xb8,
		0x9a, 0x1d, 0x25, 0x45, 0x31, 0xae, 0xa6, 0x18, 0xa8, 0x4d, 0x18, 0x57, 0x43, 0xe8, 0x93, 0x4f,
		0xef, 0x8f, 0x0f, 0x8d, 0x87, 0xc6, 0x43, 0xe3, 0x4d, 0x25, 0xab, 0x2a, 0xab, 0x35, 0x0b, 0x5d,
		0x55, 0x91, 0xdb, 0x00, 0x31, 0xb2, 0x91, 0x18, 0xa9, 0x08, 0xca, 0x7c, 0x9c, 0x48, 0xf9, 0x26,
		0xf2, 0x3c, 0xe1, 0x95, 0x7a, 0xb3, 0x78, 0x72, 0xd7, 0x6c, 0x70, 0x22, 0x08, 0xbc, 0x34, 0x70,
		0x22, 0x94, 0x26, 0xee, 0xad, 0x61, 0x45, 0x22, 0x11, 0x4b, 0x5f, 0x8a, 0xc0, 0x15, 0x63, 0x1c,
		0x8b, 0x93, 0xc8, 0xa9, 0x52, 0xa3, 0x33, 0x3f, 0x55, 0x58, 0x28, 0x66, 0x77, 0x78, 0x13, 0xa5,
		0xca, 0x9b, 0xdd, 0x52, 0x62, 0x95, 0xca, 0x9a, 0x86, 0x39, 0x94, 0xbe, 0x33, 0xf2, 0x93, 0xf1,
		0xad, 0x7b, 0x32, 0x3d, 0x39, 0xec, 0x89, 0x44, 0x44, 0x4f, 0x32, 0x50, 0x4b, 0xfb, 0x66, 0x7b,
		0x62, 0xb3, 0x58, 0x9c, 0xad, 0x45, 0x1c, 0xd6, 0x89, 0xb3, 0xb5, 0x9c, 0x6a, 0xb0, 0x64, 0x07,
		0x3e, 0x2a, 0x7c, 0xf7, 0xc2, 0x13, 0x41, 0x22, 0x93, 0xb7, 0xdf, 0x9c, 0x98, 0x61, 0xe0, 0xe0,
		0x97, 0x93, 0x6f, 0x97, 0xf7, 0x8f, 0xa7, 0xd7, 0x57, 0x67, 0x17, 0xf7, 0x17, 0xd7, 0x57, 0x8f,
		0x67, 0xe7, 0xf7, 0xe7, 0xb7, 0x5f, 0x2f, 0xae, 0x4e, 0xc6, 0xff, 0x52, 0xdd, 0x67, 0x7f, 0x8e,
		0xc3, 0xb9, 0x71, 0x90, 0xf4, 0x1f, 0xe5, 0x62, 0x1e, 0x62, 0xf1, 0x58, 0xa9, 0xc7, 0x7b, 0xbc,
		0xb8, 0xfa, 0xe3, 0xfc, 0xf6, 0xfc, 0xea, 0x9e, 0x50, 0xb1, 0xf5, 0xce, 0xec, 0x27, 0xbc, 0xfb,
		0xf6, 0xdb, 0xe5, 0xc9, 0x5f, 0xe7, 0xb7, 0xbb, 0xfb, 0x84, 0xf7, 0xe7, 0x77, 0x3b, 0xfc, 0xfe,
		0xae, 0xd2, 0x5d, 0x7a, 0x7f, 0xfb, 0xed, 0xee, 0xe2, 0xcf, 0xf3, 0xba, 0x0b, 0x0b, 0x1f, 0x74,
		0x03, 0xb9, 0x16, 0x9a, 0xf9, 0x47, 0xe8, 0x7b, 0x76, 0xd8, 0xef, 0xdb, 0x89, 0xa4, 0x30, 0xcd,
		0xcb, 0x62, 0xe0, 0xea, 0xc0, 0xd5, 0xe9, 0x84, 0xab, 0x33, 0x92, 0x41, 0xf2, 0xe9, 0x90, 0xe0,
		0xd3, 0x1c, 0x2b, 0x7c, 0xf5, 0xd6, 0x09, 0x06, 0x42, 0xd9, 0x5d, 0x20, 0x14, 0x30, 0x7f, 0x95,
		0x01, 0x43, 0xa1, 0x3a, 0xe9, 0x0c, 0xc0, 0xb2, 0xd3, 0xc4, 0x20, 0xe7, 0x4b, 0xe4, 0xa4, 0xdd,
		0xa3, 0xce, 0xe4, 0x40, 0xa6, 0x4c, 0xf5, 0x41, 0x13, 0xd6, 0x71, 0xff, 0xab, 0xf3, 0x6a, 0xdc,
		0xd2, 0xf6, 0x8e, 0x0f, 0x0f, 0x3f, 0x1d, 0x1d, 0x1e, 0x1e, 0x1c, 0xfd, 0xeb, 0xe8, 0xe0, 0xdf,
		0x1f, 0x3f, 0xf6, 0x3e, 0xa9, 0x78, 0xe0, 0xda, 0x56, 0xbb, 0xa6, 0x6a, 0xf3, 0x07, 0x03, 0x8c,
		0xb4, 0x8c, 0x6d, 0x37, 0x0c, 0x23, 0x6f, 0x1c, 0x43, 0x09, 0xcf, 0x8e, 0x5f, 0x64, 0xe2, 0xfe,
		0x90, 0xc1, 0xc0, 0xfe, 0x1e, 0x26, 0x3f, 0x6c, 0x11, 0x78, 0x84, 0x72, 0xe2, 0x12, 0xb2, 0x61,
		0xce, 0x61, 0xce, 0x3b, 0x61, 0xce, 0xbf, 0x87, 0xa1, 0x2f, 0x1c, 0x12, 0x47, 0xd1, 0x33, 0x03,
		0x2e, 0xfa, 0x51, 0xf8, 0x5f, 0x11, 0x90, 0x50, 0x61, 0x2a, 0x02, 0xca, 0x0f, 0xe5, 0x87, 0xf2,
		0xb7, 0x4a, 0xf9, 0xfd, 0xd0, 0xfd, 0x69, 0x87, 0xa3, 0x84, 0xa4, 0xfe, 0x99, 0x10, 0x00, 0x00,
		0x00, 0x00, 0x00, 0xd0, 0x1e, 0x00, 0x78, 0x72, 0x5e, 0xa7, 0x5e, 0x7c, 0x4a, 0xc6, 0x11, 0x42,
		0x83, 0x9c, 0x24, 0x40, 0x01, 0xa0, 0x00, 0xbc, 0x1e, 0x78, 0x3d, 0xf0, 0x7a, 0xe0, 0xf5, 0xc0,
		0xeb, 0xd1, 0x4d, 0xf5, 0x18, 0xdc, 0x45, 0x14, 0x09, 0xcf, 0x8e, 0x44, 0x9c, 0x84, 0x93, 0xaa,
		0x42, 0xdb, 0x77, 0xde, 0x44, 0x44, 0x19, 0x05, 0xb2, 0x5e, 0x28, 0x0c, 0x38, 0x0c, 0x78, 0x27,
		0x0c, 0x78, 0xba, 0xdd, 0xed, 0x61, 0x14, 0x26, 0xa1, 0x1b, 0xfa, 0x2a, 0x47, 0xa0, 0xac, 0x86,
		0x3a, 0xfd, 0x57, 0x5c, 0x2a, 0xa5, 0x93, 0x1d, 0x8b, 0x96, 0x5f, 0xf9, 0x90, 0xc6, 0xa2, 0x8d,
		0xa3, 0x0b, 0x51, 0x3a, 0xf1, 0xa1, 0x17, 0x9d, 0x17, 0x6a, 0x97, 0x13, 0x95, 0x0d, 0x59, 0x54,
		0x04, 0x9d, 0x0a, 0x42, 0x63, 0x42, 0xa0, 0xf0, 0x2e, 0x37, 0x26, 0x5c, 0x98, 0xc9, 0x94, 0x50,
		0xba, 0xa6, 0x15, 0x0d, 0x79, 0x52, 0x50, 0x20, 0x26, 0x3f, 0xda, 0xc0, 0xf6, 0x83, 0x49, 0x38,
		0x0c, 0xfd, 0x70, 0x80, 0xe6, 0xd9, 0x6a, 0xca, 0x97, 0x2d, 0x5f, 0xe7, 0x5a, 0x10, 0xf2, 0x28,
		0x14, 0xd5, 0x45, 0x22, 0xba, 0x4a, 0xea, 0x2f, 0x41, 0x65, 0x52, 0xc0, 0x62, 0x30, 0x35, 0x0c,
		0x7d, 0xe9, 0xbe, 0xd1, 0x71, 0xad, 0x40, 0x26, 0xa0, 0x0d, 0xd0, 0x06, 0x68, 0x33, 0x41, 0xa7,
		0xda, 0x8b, 0x6e, 0xdd, 0xe9, 0x8f, 0x5a, 0x78, 0xbc, 0xf4, 0x3d, 0x2d, 0xde, 0xb2, 0x58, 0x8f,
		0xdb, 0xdf, 0x66, 0xf7, 0x72, 0x9a, 0xdd, 0xe0, 0xc2, 0x87, 0xe9, 0xbe, 0x37, 0x29, 0xd6, 0x7d,
		0xb3, 0xa3, 0x70, 0x94, 0x28, 0x1d, 0xfa, 0x5d, 0x1f, 0xf7, 0x16, 0x08, 0x45, 0x0c, 0x8c, 0x18,
		0x78, 0x97, 0x63, 0x60, 0xbe, 0xb9, 0x7e, 0x18, 0xdc, 0x87, 0xa6, 0xfb, 0x7c, 0x8e, 0x61, 0x57,
		0x9b, 0xee, 0x2b, 0xb7, 0x88, 0xca, 0x99, 0xa0, 0x63, 0x83, 0x83, 0x54, 0xa5, 0x76, 0x71, 0xb9,
		0xb5, 0x52, 0xcc, 0x96, 0x10, 0x0c, 0x35, 0xd0, 0x06, 0x68, 0xd3, 0x3c, 0xda, 0xa8, 0x1a, 0xfb,
		0x4c, 0x80, 0x5a, 0x6f, 0xd6, 0xb5, 0xfb, 0x4f, 0xa5, 0x57, 0x2b, 0xb3, 0xf9, 0x67, 0x53, 0x4c,
		0x4e, 0x05, 0xd5, 0xa4, 0xa8, 0xdc, 0x0a, 0xab, 0x4d, 0x71, 0xb5, 0x29, 0xb0, 0x3e, 0x45, 0xa6,
		0x29, 0x34, 0x51, 0xb1, 0xf9, 0xdc, 0x09, 0x7e, 0xb7, 0x82, 0xc9, 0xbd, 0xa0, 0xaf, 0x2f, 0xa5,
		0xca, 0x8d, 0xd0, 0xab, 0x76, 0x33, 0xf8, 0xd9, 0x04, 0x57, 0x04, 0x08, 0x08, 0x04, 0x04, 0x02,
		0x02, 0x01, 0x0d, 0x75, 0x36, 0x55, 0x7b, 0xf9, 0xe6, 0x04, 0x91, 0x2a, 0xc0, 0x32, 0x29, 0x1c,
		0x95, 0x60, 0x73, 0x61, 0x0c, 0x15, 0x61, 0x99, 0x30, 0x52, 0x65, 0x18, 0xf5, 0x2d, 0x11, 0xb3,
		0x1d, 0x99, 0x9c, 0x3a, 0xb3, 0x1e, 0x79, 0xb6, 0xfd, 0x3d, 0xd1, 0x8c, 0xd6, 0x95, 0x0e, 0x79,
		0xbb, 0x1d, 0xdf, 0xf8, 0xc2, 0x6f, 0xca, 0x37, 0x2b, 0x6e, 0x86, 0x6f, 0x19, 0x46, 0x32, 0x8c,
		0x64, 0xf2, 0xc6, 0x51, 0xe2, 0x34, 0x95, 0x04, 0x96, 0x97, 0x25, 0x71, 0x02, 0xf6, 0x85, 0x9a,
		0x58, 0x69, 0xc6, 0x2c, 0xf2, 0x31, 0xbe, 0xca, 0x67, 0xb8, 0x56, 0x75, 0xea, 0x98, 0x20, 0x82,
		0x76, 0xa6, 0x6b, 0xf6, 0xc3, 0xe0, 0xae, 0x71, 0x9c, 0xf1, 0x62, 0x8e, 0xa8, 0x32, 0x71, 0x4c,
		0x67, 0xbe, 0x32, 0x79, 0x8c, 0xa7, 0x91, 0x98, 0xfc, 0x6e, 0x8b, 0xeb, 0x2c, 0x98, 0xee, 0x57,
		0xc0, 0x7f, 0x36, 0x4c, 0xeb, 0x5b, 0x69, 0x28, 0x52, 0x78, 0x30, 0xb9, 0x4e, 0x31, 0x1c, 0x25,
		0x32, 0x18, 0x50, 0x0a, 0x38, 0x72, 0x50, 0x5a, 0x20, 0x13, 0xe9, 0x21, 0xb8, 0x29, 0x1d, 0x76,
		0x53, 0xc8, 0xa9, 0x22, 0x37, 0x8c, 0x13, 0xdb, 0xfd, 0xe1, 0x8c, 0x41, 0x51, 0x44, 0x32, 0x4e,
		0xa4, 0xcb, 0xc7, 0x9d, 0x16, 0x09, 0xe7, 0x21, 0x51, 0x7b, 0x3b, 0x4f, 0xa2, 0x8e, 0x63, 0xf4,
		0x71, 0x68, 0x3e, 0x1c, 0x25, 0xaa, 0x0d, 0xcb, 0x41, 0xa7, 0x6e, 0x57, 0xfa, 0xdc, 0x32, 0xb7,
		0x9c, 0x58, 0xa5, 0x02, 0xc2, 0x32, 0x30, 0x38, 0xfe, 0x20, 0x8c, 0x64, 0xf2, 0xe3, 0x89, 0x6f,
		0xcf, 0x2c, 0x61, 0xc3, 0x5c, 0xfe, 0x3b, 0x23, 0xdd, 0x51, 0x2e, 0x98, 0xd0, 0x01, 0x17, 0xc5,
		0xb0, 0xc1, 0x70, 0x5e, 0x41, 0x37, 0x6c, 0x68, 0x87, 0x0f, 0xed, 0x30, 0xb2, 0x1e, 0x4e, 0xe8,
		0xe7, 0x1d, 0x78, 0xe1, 0x84, 0x31, 0x6e, 0xb4, 0x58, 0xf3, 0x36, 0xb9, 0xdd, 0xcb, 0x96, 0xbf,
		0xc9, 0xb9, 0x0a, 0xc7, 0x7b, 0x66, 0xbc, 0x07, 0x8e, 0xd8, 0x3d, 0x45, 0x4d, 0x96, 0x04, 0x77,
		0x31, 0x20, 0x33, 0xe4, 0xb9, 0x81, 0xc5, 0xc0, 0x62, 0x60, 0x31, 0xb0, 0xb8, 0x1b, 0x58, 0xcc,
		0x53, 0x6a, 0x59, 0x0c, 0xc6, 0x1c, 0x75, 0x97, 0x40, 0x63, 0xa0, 0x31, 0xd0, 0x18, 0x68, 0x6c,
		0x36, 0x1a, 0x37, 0x4a, 0x99, 0x4c, 0x2b, 0xa0, 0xb8, 0xfc, 0x5f, 0x9e, 0x42, 0xa8, 0x4c, 0x1a,
		0x67, 0x41, 0xd4, 0x5c, 0x28, 0x63, 0x61, 0x54, 0x26, 0x94, 0xa5, 0x40, 0x8a, 0xeb, 0xa5, 0x32,
		0x15, 0x4c, 0x65, 0xf2, 0x1a, 0x2e, 0x9c, 0xca, 0x67, 0xbe, 0xde, 0xf3, 0x93, 0xeb, 0x56, 0x93,
		0x25, 0x56, 0xb7, 0x93, 0x27, 0x5c, 0xf8, 0xe4, 0x34, 0x8c, 0x93, 0xd3, 0xe5, 0xe7, 0x6b, 0x61,
		0x4d, 0xba, 0x27, 0x9f, 0x45, 0x14, 0x8f, 0xdf, 0x3e, 0xb1, 0x5b, 0x4b, 0xce, 0x2e, 0xe4, 0x24,
		0xa3, 0x3e, 0xbd, 0x9c, 0x27, 0x88, 0xd4, 0x0a, 0x52, 0x2b, 0x4d, 0x7a, 0x78, 0xba, 0x34, 0xd8,
		0x62, 0xea, 0x14, 0x93, 0xc9, 0xa2, 0x75, 0x8c, 0x69, 0x16, 0x77, 0x65, 0x6c, 0x8b, 0x57, 0xd7,
		0x1f, 0xc5, 0xf2, 0x99, 0xf1, 0x34, 0xd0, 0x92, 0x54, 0x6a, 0xaa, 0x4e, 0xa4, 0x13, 0xaa, 0x53,
		0x7d, 0x89, 0x70, 0xc0, 0x12, 0xf0, 0x0d, 0xf8, 0x6e, 0x17, 0x7c, 0xab, 0x0f, 0x6a, 0x59, 0x8b,
		0xda, 0xbd, 0x16, 0x22, 0xad, 0xef, 0x24, 0x69, 0xd0, 0xa2, 0xab, 0x8a, 0x68, 0x8d, 0x7c, 0x14,
		0x12, 0x01, 0x2e, 0x01, 0x97, 0xda, 0xe0, 0x92, 0xad, 0x90, 0xa8, 0x2f, 0x5f, 0x85, 0x67, 0x6b,
		0x02, 0x89, 0xdc, 0x96, 0xdf, 0x78, 0x35, 0xc3, 0x53, 0x29, 0x1f, 0x90, 0x4a, 0x41, 0x2a, 0xa5,
		0x04, 0xd4, 0x20, 0x95, 0xa2, 0xba, 0x7b, 0x91, 0xd8, 0x2e, 0xf3, 0x4c, 0x7f, 0xcb, 0x24, 0x11,
		0x91, 0x76, 0xa8, 0x2e, 0xbe, 0x0c, 0x30, 0x1a, 0x18, 0x0d, 0x8c, 0x06, 0x46, 0x03, 0xa3, 0x37,
		0x3e, 0xd3, 0x3f, 0x23, 0x21, 0x83, 0x41, 0x6d, 0x6e, 0xf5, 0xe6, 0xcb, 0xa1, 0x44, 0x09, 0x98,
		0x0d, 0xcc, 0x06, 0x66, 0x03, 0xb3, 0x37, 0x3e, 0x53, 0x12, 0x39, 0xfd, 0xbe, 0x74, 0xed, 0x61,
		0x14, 0x0e, 0x45, 0x94, 0xbc, 0x69, 0x2a, 0xe4, 0x2f, 0xbe, 0x0c, 0x30, 0x1a, 0x18, 0x0d, 0x8c,
		0x06, 0x46, 0x03, 0xa3, 0x37, 0x3e, 0xd3, 0x8b, 0x13, 0x78, 0x35, 0x70, 0x1f, 0xc5, 0x97, 0x01,
		0xf7, 0x01, 0x8c, 0x06, 0x46, 0x03, 0xa3, 0x51, 0xea, 0xaf, 0xe7, 0x0d, 0xce, 0x4a, 0xfd, 0x75,
		0x78, 0xc8, 0x28, 0xfb, 0x47, 0xd9, 0x7f, 0x1d, 0x65, 0xff, 0xda, 0x28, 0x38, 0x83, 0x2a, 0xff,
		0x2f, 0x27, 0xcf, 0xd8, 0xfe, 0xe2, 0xff, 0x27, 0xe7, 0xd5, 0x76, 0x7c, 0x3f, 0x7c, 0x11, 0x9e,
		0xed, 0x86, 0x71, 0xc2, 0x57, 0x14, 0x95, 0x93, 0x8c, 0x72, 0xa8, 0x72, 0xbe, 0x21, 0xca, 0xa1,
		0x50, 0x0e, 0xa5, 0xf0, 0x80, 0x6c, 0xe5, 0x50, 0xe4, 0x56, 0xcd, 0x6b, 0xb7, 0x37, 0xb1, 0x75,
		0x33, 0xa8, 0xbe, 0x1a, 0xa0, 0x02, 0xe1, 0xa4, 0x09, 0x50, 0xd2, 0xb5, 0xb0, 0x92, 0xdc, 0x82,
		0x7a, 0x1d, 0x36, 0x1c, 0x33, 0x8a, 0xe4, 0x69, 0x51, 0xbd, 0xfa, 0xc3, 0xab, 0x5e, 0x16, 0x77,
		0x0b, 0x6b, 0xcd, 0xa0, 0x9b, 0x13, 0xcf, 0xdc, 0xe2, 0x3a, 0x27, 0x5f, 0x43, 0x73, 0x65, 0x4d,
		0xea, 0xb6, 0x1a, 0x18, 0xb7, 0xfe, 0x95, 0xea, 0x6b, 0x99, 0xdd, 0xc8, 0x5b, 0xde, 0x33, 0x53,
		0xda, 0xc3, 0x0e, 0xe5, 0x3a, 0x34, 0xf5, 0x2e, 0x42, 0xdb, 0x22, 0x38, 0xa1, 0x70, 0x42, 0xe1,
		0x84, 0xc2, 0x09, 0x85, 0x13, 0x0a, 0x27, 0x14, 0x4e, 0x28, 0x9c, 0xd0, 0x9d, 0x75, 0x42, 0x91,
		0xeb, 0xd3, 0x9a, 0xeb, 0x63, 0x4e, 0xf2, 0x58, 0x66, 0x65, 0xf9, 0xbe, 0x3a, 0xaf, 0x27, 0x93,
		0x87, 0x3b, 0x1d, 0x3f, 0x5b, 0xcb, 0xd3, 0x7b, 0x9e, 0xf0, 0x9d, 0x37, 0x3d, 0xf9, 0xbd, 0x89,
		0x68, 0x24, 0xf8, 0x1a, 0x0b, 0x98, 0x90, 0xe0, 0x43, 0x82, 0xaf, 0xb4, 0x20, 0x24, 0xf8, 0xc0,
		0xad, 0x80, 0x5b, 0x01, 0xb7, 0x02, 0x6e, 0x05, 0xdc, 0x0a, 0xb8, 0x15, 0x70, 0x2b, 0xe0, 0x56,
		0xc0, 0xad, 0x34, 0xa3, 0x05, 0x48, 0xf0, 0xc1, 0x09, 0x85, 0x13, 0x0a, 0x27, 0x14, 0x4e, 0x28,
		0x9c, 0x50, 0x38, 0xa1, 0x70, 0x42, 0xe1, 0x84, 0xc2, 0x09, 0xad, 0x53, 0x02, 0x12, 0x7c, 0x55,
		0x12, 0x7c, 0x1c, 0x59, 0x1e, 0xcb, 0xd4, 0x0c, 0xdf, 0x59, 0xfa, 0x70, 0x2d, 0x4f, 0xf1, 0xfd,
		0x08, 0x87, 0xb1, 0x9e, 0x0c, 0x5f, 0x2a, 0x19, 0x09, 0xbe, 0xc6, 0x02, 0x26, 0x24, 0xf8, 0x90,
		0xe0, 0x2b, 0x2d, 0x08, 0x09, 0x3e, 0x70, 0x2b, 0xe0, 0x56, 0xc0, 0xad, 0x80, 0x5b, 0x01, 0xb7,
		0x02, 0x6e, 0x05, 0xdc, 0x0a, 0xb8, 0x15, 0x70, 0x2b, 0xcd, 0x68, 0x01, 0x12, 0x7c, 0x70, 0x42,
		0xe1, 0x84, 0xc2, 0x09, 0x85, 0x13, 0x0a, 0x27, 0x14, 0x4e, 0x28, 0x9c, 0x50, 0x38, 0xa1, 0x70,
		0x42, 0xeb, 0x94, 0x80, 0x04, 0x5f, 0x95, 0x04, 0x1f, 0x43, 0x92, 0xc7, 0x32, 0x35, 0xbf, 0xf7,
		0xc7, 0xf8, 0xd9, 0x5a, 0x98, 0xde, 0x8b, 0x64, 0xfc, 0xd3, 0x9e, 0x8f, 0xe1, 0xd7, 0x35, 0xc2,
		0x78, 0xf3, 0x65, 0x90, 0xf8, 0x6b, 0x2c, 0x90, 0x42, 0xe2, 0x0f, 0x89, 0xbf, 0x6a, 0x60, 0xb1,
		0xac, 0xbb, 0x9a, 0x46, 0xf8, 0xac, 0xbd, 0x12, 0x38, 0x19, 0x1e, 0x28, 0xc1, 0x84, 0x88, 0x46,
		0xb9, 0x18, 0x4c, 0x88, 0x50, 0xdd, 0xbd, 0x98, 0xe2, 0x53, 0x1a, 0xa9, 0xa5, 0x27, 0x82, 0x44,
		0xf6, 0xa5, 0x88, 0x6c, 0x5f, 0x32, 0xf4, 0x5e, 0x2f, 0x46, 0xe9, 0xd5, 0xab, 0x00, 0xa1, 0x81,
		0xd0, 0x40, 0x68, 0x20, 0xb4, 0xb9, 0x08, 0xcd, 0xb4, 0x82, 0xac, 0xf3, 0x6e, 0xe6, 0x14, 0xea,
		0xd2, 0xdc, 0x1b, 0x66, 0x3d, 0x9d, 0xbd, 0xa2, 0x1e, 0xb7, 0x7e, 0x6a, 0x02, 0x96, 0x55, 0x70,
		0x79, 0x92, 0x81, 0x2d, 0x66, 0xab, 0xa3, 0x81, 0xbf, 0xd6, 0x0d, 0x33, 0x39, 0xa8, 0xe9, 0xed,
		0x1b, 0xca, 0xcf, 0x32, 0x66, 0x07, 0xb4, 0x4c, 0x5d, 0xca, 0x84, 0xb3, 0x4e, 0x5f, 0x62, 0x74,
		0xe2, 0x4c, 0x18, 0xf3, 0xa5, 0x29, 0x8a, 0xc6, 0xa4, 0x2f, 0x4c, 0xfa, 0xaa, 0x23, 0x77, 0xa0,
		0x93, 0x34, 0xb6, 0xcc, 0x4a, 0x24, 0xdc, 0xca, 0xf8, 0xe7, 0xd9, 0xec, 0x49, 0xdb, 0x3f, 0xf6,
		0x6b, 0xf2, 0x76, 0xc3, 0xef, 0x7f, 0xa7, 0x0b, 0x25, 0xec, 0xfe, 0x28, 0x70, 0x59, 0x76, 0xea,
		0x3c, 0xf4, 0x5c, 0x77, 0x05, 0x9e, 0x5c, 0xc2, 0x01, 0x72, 0x09, 0xcd, 0x7b, 0x81, 0xc8, 0x25,
		0x98, 0xe7, 0x59, 0xb0, 0x85, 0x8d, 0xba, 0x35, 0x79, 0x29, 0x70, 0x3c, 0x64, 0x90, 0x75, 0x1e,
		0x8c, 0x9e, 0xc6, 0x4f, 0xfe, 0xab, 0x85, 0x78, 0x9c, 0x84, 0xbe, 0x88, 0x9c, 0xef, 0xbe, 0xb0,
		0xe5, 0xd3, 0xd0, 0x71, 0x19, 0xc7, 0x30, 0xe6, 0x24, 0x03, 0x7f, 0x81, 0xbf, 0xc0, 0xdf, 0x16,
		0xe1, 0xef, 0x20, 0x72, 0x3c, 0x11, 0xdb, 0x61, 0x9f, 0x47, 0x83, 0x97, 0x70, 0x97, 0xa1, 0x70,
		0x6e, 0xff, 0x22, 0xcd, 0x2f, 0x24, 0x6f, 0xbf, 0x39, 0xb1, 0x86, 0x44, 0xf3, 0xef, 0xb7, 0x27,
		0x67, 0xe7, 0x77, 0x8f, 0xd7, 0x5f, 0x1e, 0x2f, 0xbe, 0xde, 0x9c, 0x9c, 0xde, 0x73, 0xed, 0xf0,
		0xb4, 0x9a, 0x30, 0x66, 0x2d, 0xc3, 0xd5, 0xc4, 0x05, 0xae, 0xae, 0xc0, 0xe3, 0xd7, 0x93, 0xff,
		0xb9, 0xbe, 0x9d, 0x2d, 0x87, 0x89, 0x84, 0x52, 0x5d, 0x0b, 0x71, 0x79, 0x7d, 0xf5, 0x3b, 0xd6,
		0xe1, 0xfe, 0xf1, 0x8f, 0x8b, 0xfb, 0xcb, 0xf3, 0xbb, 0xbb, 0x4e, 0xaf, 0xc1, 0xd7, 0x8b, 0x2b,
		0x1d, 0x4a, 0xc1, 0x22, 0xe9, 0xa1, 0x69, 0x9b, 0xb6, 0x57, 0xef, 0x37, 0x15, 0xb7, 0x0f, 0x17,
		0x63, 0x66, 0x1e, 0x53, 0x46, 0x30, 0x5a, 0xe6, 0x70, 0x60, 0x6a, 0x5a, 0x55, 0x7d, 0x07, 0x29,
		0xec, 0x9e, 0xfd, 0x59, 0x32, 0x78, 0x71, 0xcd, 0x55, 0xb7, 0xd0, 0x42, 0xe8, 0x94, 0x17, 0xaa,
		0xb8, 0xb3, 0x69, 0x15, 0xb0, 0xe4, 0x68, 0x89, 0x23, 0x4a, 0x5a, 0x8e, 0x8e, 0x16, 0x55, 0x85,
		0xb2, 0xbb, 0x99, 0x22, 0x22, 0xf6, 0x48, 0x88, 0x3d, 0x02, 0xca, 0x47, 0x3e, 0x4b, 0x4b, 0xd8,
		0x12, 0x84, 0xa6, 0x56, 0xaa, 0xee, 0x3b, 0xcf, 0xa1, 0xf4, 0xe6, 0xb5, 0x1b, 0x6c, 0x34, 0xc7,
		0x8a, 0x5c, 0x90, 0x1c, 0x20, 0x39, 0x40, 0x72, 0xb4, 0x88, 0xe4, 0x18, 0x8d, 0xa4, 0xc7, 0x49,
		0x6c, 0x1c, 0xb7, 0x90, 0x04, 0x9e, 0xbb, 0x19, 0xf6, 0x8b, 0x90, 0x83, 0x1f, 0x8c, 0x2c, 0x70,
		0x5e, 0x34, 0x10, 0x12, 0x08, 0x09, 0x84, 0x6c, 0x13, 0x42, 0x72, 0xf5, 0x36, 0x60, 0xec, 0x69,
		0xc0, 0xdc, 0xcb, 0x80, 0xb7, 0x4a, 0x53, 0x43, 0x15, 0xb5, 0x96, 0x03, 0xee, 0xba, 0x7a, 0x15,
		0xe8, 0x3c, 0xbd, 0xce, 0x5c, 0x7d, 0xd8, 0xba, 0x57, 0xa5, 0xbf, 0x07, 0x81, 0xd6, 0xb7, 0x67,
		0x48, 0x0d, 0xe6, 0x43, 0x0b, 0x9d, 0x34, 0xf1, 0xea, 0xfa, 0x23, 0x4f, 0xd8, 0xbe, 0x0c, 0x7e,
		0xf2, 0xf9, 0x67, 0x4b, 0x52, 0xe1, 0x9a, 0xc1, 0x35, 0x83, 0x6b, 0x86, 0xe0, 0xb5, 0x95, 0xb8,
		0x18, 0x84, 0x9e, 0xe0, 0xc7, 0xc5, 0x54, 0x2a, 0x70, 0x11, 0xb8, 0x08, 0x5c, 0x04, 0x2e, 0xb6,
		0x16, 0x17, 0x6d, 0xe1, 0x0d, 0x84, 0x3d, 0x0c, 0x29, 0xd9, 0xc9, 0x8d, 0x10, 0xb9, 0x78, 0x01,
		0xa0, 0x25, 0xd0, 0x12, 0x68, 0x09, 0xb4, 0x6c, 0x25, 0x5a, 0x4e, 0x6b, 0x77, 0x98, 0x21, 0x32,
		0x95, 0x0a, 0x5c, 0x04, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xad, 0xc2, 0x45, 0x19, 0xe8, 0x60, 0x1d,
		0x97, 0xa4, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x62, 0x2b, 0x71, 0x91, 0x97, 0x75, 0x5c,
		0x92, 0x0a, 0x5c, 0x04, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xad, 0xc5, 0x45, 0x2d, 0xac, 0xe3, 0xba,
		0x0b, 0x00, 0x2d, 0x81, 0x96, 0x40, 0x4b, 0xa0, 0x65, 0x2b, 0xd1, 0x92, 0x97, 0x75, 0x5c, 0x92,
		0x0a, 0x5c, 0x04, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xad, 0xc4, 0x45, 0xfe, 0xe3, 0x7a, 0x39, 0xc9,
		0xc0, 0x47, 0xe0, 0x23, 0xf0, 0x11, 0xf8, 0xd8, 0x2a, 0x7c, 0xf4, 0x43, 0xd7, 0xf1, 0x6d, 0xe9,
		0xf1, 0xe1, 0x62, 0x26, 0x11, 0x78, 0x58, 0x0e, 0x0f, 0x27, 0x6d, 0x3d, 0x80, 0x82, 0x5a, 0x50,
		0x70, 0xba, 0xb8, 0xc0, 0xbe, 0x95, 0x9d, 0xc7, 0x36, 0x40, 0xa1, 0xd5, 0xe8, 0xc7, 0x32, 0x58,
		0x2c, 0x5b, 0x53, 0x8e, 0xb6, 0xe7, 0x9d, 0x99, 0x33, 0x08, 0xd4, 0x03, 0xea, 0x6d, 0x79, 0x2c,
		0xb6, 0x99, 0x82, 0xcf, 0xd3, 0x23, 0x8f, 0xcc, 0x7d, 0x1d, 0x27, 0x62, 0x31, 0x8b, 0xca, 0x30,
		0x40, 0xd0, 0x05, 0x0c, 0xda, 0x01, 0x42, 0x3b, 0x50, 0xe8, 0x07, 0x0c, 0x1e, 0xe0, 0x60, 0x02,
		0x10, 0x7e, 0xf7, 0x49, 0x9f, 0x1b, 0xc5, 0xec, 0x4e, 0xf1, 0xbd, 0x07, 0x8e, 0x49, 0x81, 0x29,
		0x50, 0x6a, 0x9a, 0xe2, 0xba, 0x20, 0x1b, 0x48, 0x0c, 0x24, 0x06, 0x12, 0x03, 0x89, 0x77, 0x15,
		0x89, 0x4d, 0x18, 0xf7, 0xc5, 0x06, 0xb7, 0x18, 0xf0, 0x85, 0x01, 0x5f, 0xec, 0x6d, 0x8b, 0x0b,
		0xda, 0xdd, 0xbe, 0x67, 0x72, 0x0d, 0x1a, 0x6b, 0x62, 0x7c, 0x3f, 0x7d, 0xa6, 0x85, 0x8f, 0x52,
		0xcc, 0x6b, 0x21, 0xdd, 0x36, 0xb6, 0xd1, 0x22, 0x8a, 0x84, 0x67, 0x27, 0x91, 0x13, 0xc4, 0xc3,
		0x30, 0x4a, 0x6c, 0xdf, 0x79, 0x13, 0x11, 0x1f, 0x07, 0xb7, 0xfe, 0x12, 0x48, 0x47, 0x94, 0xf3,
		0xfe, 0x90, 0x9e, 0x45, 0x7a, 0xb6, 0x49, 0xcf, 0x6e, 0x9e, 0x48, 0x1c, 0xab, 0xad, 0x3d, 0x8c,
		0xc2, 0x24, 0x74, 0x43, 0x9f, 0x2b, 0xc4, 0xdb, 0xad, 0x79, 0x5d, 0x98, 0x6d, 0xc0, 0xe2, 0x24,
		0xb4, 0x71, 0xb8, 0x41, 0xde, 0x2f, 0xa8, 0x6d, 0xba, 0xc1, 0x9e, 0xc6, 0xdd, 0x36, 0x0b, 0x34,
		0x14, 0xcb, 0x08, 0x68, 0x61, 0x05, 0x4b, 0x18, 0xc1, 0x12, 0x36, 0xd0, 0xc2, 0x84, 0xaa, 0x6b,
		0x4e, 0xd4, 0xec, 0x86, 0x35, 0x5a, 0x41, 0x7b, 0x9b, 0xd2, 0xda, 0x6a, 0x2a, 0x5a, 0x5e, 0xd1,
		0x2a, 0xbc, 0xf0, 0xfd, 0x48, 0xc4, 0x49, 0x18, 0xa5, 0x6f, 0xdb, 0x76, 0xc3, 0x30, 0xf2, 0x64,
		0xe0, 0x24, 0xc2, 0x4e, 0x54, 0x0c, 0xf8, 0x7c, 0xc2, 0xe6, 0x06, 0xa1, 0x55, 0x01, 0x40, 0xc9,
		0xd3, 0x56, 0xf6, 0xac, 0x29, 0x9e, 0x34, 0xeb, 0x40, 0x11, 0xaa, 0x97, 0xcc, 0xe6, 0x15, 0xb3,
		0x79, 0xc1, 0xdc, 0x03, 0x43, 0xf4, 0x1a, 0x1e, 0x65, 0x0f, 0x76, 0xa1, 0x45, 0x3d, 0x65, 0xe3,
		0x53, 0xbd, 0x53, 0x45, 0x6f, 0x54, 0x27, 0xc8, 0x08, 0x7b, 0x18, 0xc9, 0x30, 0x1a, 0xbf, 0x6c,
		0x22, 0xb2, 0x2c, 0x48, 0x02, 0x9c, 0x00, 0x4e, 0x3a, 0x01, 0x27, 0xca, 0xed, 0xf2, 0x09, 0xed,
		0xf1, 0x89, 0xed, 0xf0, 0x09, 0x51, 0x21, 0x47, 0xbb, 0x7b, 0x2e, 0x96, 0x8e, 0xa9, 0x9d, 0x3d,
		0x67, 0x03, 0x74, 0x0a, 0xef, 0xca, 0xd1, 0x9e, 0x9e, 0x7b, 0x69, 0xf9, 0xdb, 0xcf, 0xb3, 0xae,
		0x76, 0x4d, 0xa1, 0xf4, 0x83, 0x11, 0xa6, 0xfa, 0x59, 0x44, 0xf1, 0xd8, 0x71, 0x7f, 0x52, 0x69,
		0x41, 0xb2, 0x60, 0xa8, 0x97, 0xe4, 0xc0, 0x4c, 0xc3, 0x4c, 0x77, 0xc2, 0x4c, 0x93, 0xf6, 0xfd,
		0x4e, 0x39, 0xfd, 0xb1, 0xf0, 0x85, 0x3b, 0xa5, 0x00, 0x82, 0x24, 0x0a, 0x7d, 0x75, 0x30, 0xc9,
		0x8b, 0x02, 0x9e, 0x00, 0x4f, 0x3a, 0x81, 0x27, 0xd4, 0xad, 0xbf, 0x53, 0x90, 0xf2, 0xe2, 0xc8,
		0xc4, 0x4e, 0x42, 0x3b, 0x05, 0xd9, 0xc4, 0x4e, 0xe4, 0x13, 0xc1, 0x43, 0x29, 0x12, 0x56, 0xf1,
		0xf5, 0x9e, 0x89, 0xbe, 0x33, 0xf2, 0xd3, 0xad, 0xd8, 0xfb, 0x08, 0x4c, 0x02, 0x26, 0x81, 0x8a,
		0x00, 0x15, 0x01, 0x2a, 0x02, 0x54, 0x04, 0xa8, 0x08, 0xd2, 0x5f, 0x96, 0xdc, 0x53, 0xaa, 0x99,
		0xea, 0x1a, 0x32, 0xd4, 0xfb, 0x55, 0x02, 0x25, 0x9d, 0xd9, 0xe7, 0x72, 0xd6, 0x67, 0xfb, 0x6b,
		0x29, 0xf1, 0x4a, 0xf6, 0xa3, 0x70, 0x94, 0xc8, 0x60, 0xb0, 0xb8, 0x0c, 0x65, 0x5f, 0xcb, 0x3c,
		0x7e, 0xce, 0xcb, 0x28, 0xb9, 0x19, 0xaa, 0x1d, 0x96, 0xae, 0xec, 0x47, 0xa9, 0xf8, 0x4f, 0x2c,
		0x7e, 0x93, 0xaa, 0xbf, 0x44, 0xf6, 0x93, 0xc8, 0xfe, 0x11, 0x97, 0x5f, 0xc4, 0x0b, 0x1a, 0x55,
		0x0f, 0x12, 0xef, 0xbb, 0x61, 0x9c, 0xd8, 0xee, 0x0f, 0x67, 0x8c, 0xe2, 0x22, 0x92, 0x71, 0x22,
		0x5d, 0xf5, 0xa8, 0xa3, 0x48, 0x98, 0x5a, 0xe0, 0xd0, 0x6b, 0x5d, 0xe0, 0xc0, 0x50, 0x4c, 0xdc,
		0x85, 0xe0, 0x81, 0x5e, 0x0c, 0xac, 0x37, 0x80, 0x50, 0x3d, 0x89, 0x3f, 0xd9, 0xfb, 0x8e, 0x3f,
		0x08, 0x23, 0x99, 0xfc, 0x78, 0x52, 0x7f, 0x87, 0x4b, 0xba, 0x34, 0x97, 0xa7, 0xb8, 0xfe, 0x34,
		0xff, 0x91, 0x5c, 0xc3, 0xcf, 0x51, 0xbb, 0xbf, 0xac, 0x66, 0x0c, 0x3d, 0xe8, 0xb8, 0x6a, 0xf4,
		0xd9, 0x6b, 0xf3, 0xd9, 0x6b, 0xf2, 0xf3, 0xea, 0x97, 0x2d, 0x5f, 0x4b, 0x0a, 0xb1, 0xc9, 0xb5,
		0xf6, 0x7c, 0xa7, 0x26, 0x89, 0xa7, 0x24, 0x15, 0x8a, 0x8f, 0xdf, 0x29, 0xa2, 0x10, 0xe9, 0xf8,
		0xf9, 0x32, 0x00, 0x11, 0x8e, 0x22, 0x00, 0x7b, 0x80, 0x3d, 0xc0, 0x9e, 0xae, 0x61, 0x0f, 0xad,
		0x01, 0xd1, 0x32, 0xf8, 0x50, 0xba, 0x0e, 0x01, 0x7d, 0x80, 0x3e, 0x40, 0x9f, 0xb6, 0xa2, 0x4f,
		0x1d, 0xc7, 0xae, 0x54, 0xfd, 0x1b, 0x9c, 0xbb, 0xb2, 0x5a, 0x7f, 0xee, 0x2a, 0xc7, 0xc3, 0xbe,
		0xa7, 0x53, 0x57, 0x16, 0x2f, 0xdd, 0x3d, 0xb9, 0xc5, 0x85, 0x93, 0x56, 0xa7, 0x61, 0x9c, 0x9c,
		0x2e, 0xdf, 0xa0, 0x01, 0x55, 0x0b, 0x9e, 0x4c, 0x4b, 0xc2, 0x92, 0x37, 0x7b, 0x18, 0xfa, 0xd2,
		0x25, 0x9c, 0x7e, 0xc8, 0x49, 0xea, 0x4a, 0xc9, 0x01, 0x98, 0xc3, 0x9d, 0x60, 0x0e, 0xe9, 0xa5,
		0x07, 0x44, 0x0d, 0xb0, 0x76, 0xa9, 0x1a, 0x4a, 0xc6, 0x76, 0x3a, 0x08, 0x3c, 0x96, 0xcf, 0x84,
		0x32, 0xa8, 0x25, 0x29, 0xea, 0xf5, 0x4f, 0xe3, 0x6d, 0x0c, 0x38, 0x02, 0x1c, 0x75, 0x0b, 0x8e,
		0xbe, 0x87, 0xa1, 0x2f, 0x9c, 0x80, 0x82, 0x42, 0x3d, 0x03, 0x90, 0xc4, 0x77, 0x92, 0xf4, 0x2c,
		0x3d, 0x57, 0x92, 0x73, 0x8d, 0x3c, 0xe4, 0x39, 0x01, 0x0f, 0x5d, 0xc8, 0x73, 0xf6, 0xe5, 0xab,
		0xf0, 0x6c, 0x26, 0xa5, 0xca, 0x6d, 0xb1, 0x8d, 0xd2, 0x1b, 0x66, 0x02, 0x3f, 0x80, 0x09, 0x04,
		0x13, 0x08, 0x26, 0xd0, 0xf8, 0x3c, 0xc4, 0xdf, 0x32, 0x49, 0x44, 0xc4, 0x0e, 0x4d, 0xc5, 0x62,
		0x81, 0x49, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x69, 0xcb, 0x3d, 0xfe, 0x33, 0x12, 0x32, 0x18, 0x68,
		0x73, 0x9b, 0x36, 0x8b, 0x47, 0x06, 0x15, 0x18, 0x05, 0x8c, 0x02, 0x46, 0x6d, 0xb9, 0xc7, 0x24,
		0x72, 0xfa, 0x7d, 0xe9, 0xda, 0xc3, 0x28, 0x1c, 0x8a, 0x28, 0x79, 0x63, 0xaa, 0x23, 0x2b, 0x16,
		0x0b, 0x4c, 0x02, 0x26, 0x01, 0x93, 0x80, 0x49, 0x5b, 0xee, 0xf1, 0xc5, 0x09, 0x3c, 0x0d, 0xb1,
		0x5c, 0xb1, 0x58, 0xc4, 0x72, 0xc0, 0x24, 0x60, 0x52, 0xb7, 0x30, 0xa9, 0x8e, 0x4a, 0x33, 0x0e,
		0x0f, 0x08, 0x55, 0x67, 0xd6, 0x0e, 0x56, 0x9d, 0xb1, 0x05, 0xec, 0x3a, 0x0b, 0xcf, 0x2e, 0x27,
		0x37, 0x69, 0x5e, 0xed, 0xd9, 0x93, 0xf3, 0x6a, 0x3b, 0xbe, 0x1f, 0xbe, 0x08, 0xcf, 0x76, 0xc3,
		0x38, 0x51, 0xcf, 0xe9, 0xe6, 0x24, 0x21, 0x9b, 0x5b, 0x9b, 0xa9, 0x47, 0x36, 0x97, 0x8e, 0x73,
		0xca, 0xd9, 0x5c, 0xe5, 0xa6, 0xd5, 0xb9, 0xed, 0xa4, 0xd8, 0xb4, 0x7a, 0x77, 0x23, 0x7b, 0xc6,
		0xe9, 0x52, 0x5d, 0xf6, 0xa6, 0xf9, 0xa6, 0x47, 0xb5, 0xd5, 0xab, 0x56, 0xee, 0x48, 0xb5, 0xaa,
		0x5b, 0xc7, 0x04, 0x11, 0xb4, 0x0e, 0x55, 0xb3, 0x1f, 0x9e, 0xf1, 0x97, 0x8c, 0xd3, 0xd5, 0x78,
		0x07, 0x20, 0x33, 0x75, 0xb0, 0xca, 0xe4, 0x31, 0xf6, 0x56, 0x22, 0x6e, 0xe7, 0xd5, 0x38, 0xc0,
		0xf8, 0x57, 0xc0, 0xdf, 0xe9, 0x4a, 0xeb, 0x5b, 0x69, 0x68, 0xaa, 0xda, 0x83, 0xc1, 0xd4, 0x1f,
		0xd3, 0x49, 0x52, 0x1c, 0x22, 0x85, 0x53, 0x02, 0xa7, 0x04, 0x4e, 0x09, 0x9c, 0x12, 0x38, 0x25,
		0x70, 0x4a, 0xe0, 0x94, 0xd4, 0x45, 0xc9, 0x98, 0x4e, 0x3d, 0x13, 0x29, 0x4f, 0x4b, 0x33, 0xe9,
		0xfc, 0xd5, 0x79, 0x3d, 0x99, 0xdc, 0xdd, 0xe9, 0xf8, 0xe6, 0x0c, 0x63, 0x9b, 0x3d, 0xe1, 0x3b,
		0x6f, 0x3c, 0x74, 0xf3, 0x44, 0x14, 0xf8, 0xe6, 0xda, 0xfc, 0x4e, 0xf0, 0xcd, 0x74, 0x70, 0x03,
		0xdf, 0x8c, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b, 0x84, 0x76, 0x08, 0xed, 0x10, 0xda, 0x21, 0xb4,
		0x33, 0x2e, 0xb4, 0x03, 0xdf, 0x0c, 0xa7, 0x04, 0x4e, 0x09, 0x9c, 0x12, 0x38, 0x25, 0x70, 0x4a,
		0xe0, 0x94, 0xc0, 0x29, 0x31, 0xc2, 0x29, 0x01, 0xdf, 0x4c, 0xe0, 0x3c, 0xad, 0xda, 0x08, 0xe7,
		0xb3, 0xf4, 0xee, 0x0c, 0x63, 0x9c, 0x7f, 0x84, 0xc3, 0x98, 0x87, 0x70, 0x4e, 0x25, 0x81, 0x6f,
		0xae, 0xcd, 0xef, 0x04, 0xdf, 0x4c, 0x07, 0x37, 0xf0, 0xcd, 0x08, 0xed, 0x10, 0xda, 0x21, 0xb4,
		0x43, 0x68, 0x87, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b, 0xe3, 0x42, 0x3b, 0xf0, 0xcd, 0x70, 0x4a,
		0xe0, 0x94, 0xc0, 0x29, 0x81, 0x53, 0x02, 0xa7, 0x04, 0x4e, 0x09, 0x9c, 0x12, 0x23, 0x9c, 0x12,
		0xf0, 0xcd, 0xea, 0x94, 0xa7, 0x55, 0x1b, 0xdd, 0xfc, 0xc7, 0xf8, 0xe6, 0x0c, 0x60, 0x9b, 0x23,
		0x19, 0xff, 0xb4, 0xe7, 0x23, 0x68, 0xb8, 0xc6, 0x25, 0x6c, 0x16, 0x0b, 0x1e, 0xba, 0x36, 0x7f,
		0x14, 0x3c, 0x34, 0x1d, 0xf4, 0x94, 0x79, 0xe8, 0x54, 0x0b, 0x96, 0xf7, 0x3e, 0x53, 0x7b, 0xcd,
		0xb5, 0x92, 0x11, 0x12, 0xa2, 0x9b, 0x1d, 0x83, 0x4a, 0xa2, 0x9b, 0xdd, 0x6e, 0x77, 0xd8, 0x4c,
		0xf1, 0x43, 0x7a, 0x22, 0x48, 0x64, 0x5f, 0x8a, 0xc8, 0xf6, 0xa5, 0x42, 0x23, 0xad, 0x62, 0x54,
		0x5a, 0x95, 0x0a, 0x44, 0x02, 0x22, 0x01, 0x91, 0xda, 0x8c, 0x48, 0x8a, 0x2b, 0x40, 0xea, 0x5d,
		0xb9, 0x48, 0x42, 0x2d, 0xb4, 0x9f, 0x24, 0xee, 0xfb, 0xd9, 0x92, 0xf6, 0xa8, 0xfb, 0x9d, 0x49,
		0x11, 0x57, 0x95, 0xf1, 0x49, 0x06, 0xb6, 0x98, 0x3d, 0x2d, 0x03, 0x7d, 0xc4, 0xad, 0x96, 0x39,
		0xd5, 0xec, 0xed, 0x37, 0x44, 0xa7, 0x10, 0xc8, 0x35, 0x96, 0x8e, 0xa6, 0x99, 0x30, 0x52, 0x67,
		0x53, 0x53, 0x69, 0x9e, 0x69, 0x0b, 0x5b, 0xa6, 0x28, 0x03, 0x5d, 0x6c, 0x77, 0x91, 0x6a, 0xe3,
		0xa4, 0x78, 0x74, 0xf3, 0x6e, 0xb7, 0x32, 0xfe, 0x79, 0x36, 0xbb, 0x55, 0xf3, 0x5a, 0xda, 0x8e,
		0x57, 0x57, 0xd8, 0xe1, 0xf7, 0xbf, 0xd3, 0x27, 0x11, 0x76, 0x7f, 0x14, 0xb8, 0x4a, 0x2f, 0x7e,
		0xee, 0x89, 0xaf, 0x93, 0x88, 0x79, 0xc6, 0xa0, 0xde, 0x3a, 0x35, 0xcf, 0x98, 0x49, 0x13, 0xac,
		0x5d, 0x1a, 0xb3, 0x9e, 0x84, 0xbe, 0x88, 0x9c, 0xef, 0xbe, 0xb0, 0xe5, 0xd3, 0xd0, 0x71, 0x09,
		0x2d, 0xb4, 0x73, 0x92, 0x80, 0x2f, 0xc0, 0x97, 0x4e, 0xe1, 0xcb, 0x20, 0x72, 0x3c, 0x11, 0xdb,
		0x61, 0x5f, 0x4d, 0x03, 0x96, 0x70, 0x45, 0x21, 0x6d, 0xbe, 0x7f, 0x91, 0xd2, 0x6d, 0xc9, 0xdb,
		0x6f, 0x4e, 0xcc, 0x90, 0x57, 0xf8, 0xfd, 0xf6, 0xe4, 0xec, 0xfc, 0xee, 0xf1, 0xfa, 0xcb, 0xe3,
		0xc5, 0xd7, 0x9b, 0x93, 0xd3, 0x7b, 0xd5, 0x1d, 0x95, 0xd6, 0x06, 0xc4, 0xa4, 0x22, 0x16, 0xa6,
		0x50, 0x7f, 0xf5, 0x89, 0x1e, 0xbf, 0x9e, 0xfc, 0xcf, 0xf5, 0xed, 0xec, 0xf1, 0x9a, 0x88, 0x3f,
		0x75, 0x3d, 0xd8, 0xe5, 0xf5, 0xd5, 0xef, 0xbb, 0xf8, 0x5c, 0x7f, 0x5c, 0xdc, 0x5f, 0x9e, 0xdf,
		0xdd, 0xed, 0xd4, 0x33, 0x7d, 0xbd, 0xb8, 0xe2, 0xd8, 0x84, 0x4a, 0xdf, 0x7c, 0xd0, 0x8d, 0xc1,
		0x7b, 0xbc, 0x7f, 0x59, 0xf2, 0xf5, 0xa9, 0x06, 0xcc, 0xba, 0x03, 0xe5, 0x0a, 0x10, 0xaa, 0x31,
		0x04, 0x2e, 0xb7, 0xc9, 0xb6, 0xbf, 0x90, 0x12, 0x2f, 0x63, 0x7f, 0x46, 0xd5, 0x2f, 0x2e, 0x42,
		0xd9, 0x37, 0xb2, 0xe0, 0x59, 0xe6, 0x85, 0x94, 0xdc, 0x08, 0xd5, 0xea, 0x45, 0x2a, 0x3b, 0x93,
		0x2a, 0x4e, 0xe4, 0xb2, 0xf3, 0xb8, 0xb8, 0x73, 0xaa, 0x6c, 0x0f, 0x45, 0x87, 0x91, 0xec, 0x28,
		0x92, 0x1d, 0xc4, 0xbc, 0x63, 0xb8, 0xb4, 0x04, 0x0d, 0x01, 0x46, 0xd5, 0xba, 0x8e, 0x7d, 0xe7,
		0x39, 0x94, 0xde, 0x3c, 0x13, 0xa5, 0x1c, 0x35, 0xad, 0xc8, 0x41, 0xcc, 0x84, 0x98, 0xa9, 0x53,
		0x31, 0xd3, 0x68, 0x24, 0x3d, 0x4a, 0x9c, 0x74, 0x6c, 0x00, 0x87, 0x32, 0x37, 0x4b, 0xf6, 0x8b,
		0x90, 0x83, 0x1f, 0x04, 0x12, 0x25, 0x2f, 0x0a, 0x88, 0x00, 0x44, 0xe8, 0x16, 0x22, 0xa8, 0x1e,
		0xbc, 0x21, 0x1c, 0xb8, 0x21, 0x1e, 0xb4, 0xa1, 0xd5, 0x34, 0x30, 0xd4, 0xf0, 0xb0, 0x9c, 0xe6,
		0xe0, 0x3a, 0x48, 0xc3, 0x79, 0x54, 0x83, 0x98, 0xdb, 0x37, 0x6e, 0x69, 0xf9, 0x0f, 0xc8, 0xb0,
		0xae, 0x76, 0x4d, 0x15, 0x0b, 0x0f, 0x06, 0x18, 0x6d, 0xf1, 0xea, 0xfa, 0x23, 0x4f, 0xd8, 0xbe,
		0x0c, 0x7e, 0xaa, 0xdb, 0xeb, 0x25, 0x29, 0x30, 0xd5, 0x30, 0xd5, 0x70, 0xde, 0x5b, 0xe6, 0xbc,
		0xcf, 0x34, 0x38, 0x08, 0x3d, 0x41, 0xc7, 0x81, 0x54, 0x0a, 0x70, 0x00, 0x38, 0x00, 0x1c, 0x68,
		0x31, 0x0e, 0xd8, 0xc2, 0x1b, 0x08, 0x7b, 0x18, 0x56, 0x61, 0xab, 0x37, 0x42, 0xc2, 0xa2, 0x40,
		0xa0, 0x03, 0xd0, 0x01, 0xe8, 0xd0, 0x52, 0x74, 0x98, 0xa6, 0x06, 0x89, 0x90, 0x90, 0x4a, 0x01,
		0x0e, 0x00, 0x07, 0x80, 0x03, 0x2d, 0xc3, 0x01, 0x19, 0x70, 0xb0, 0x06, 0x4b, 0x52, 0x80, 0x03,
		0xc0, 0x01, 0xe0, 0x40, 0x4b, 0x71, 0x80, 0xc6, 0x1a, 0x2c, 0x49, 0x01, 0x0e, 0x00, 0x07, 0x80,
		0x03, 0x2d, 0xc6, 0x01, 0x16, 0xd6, 0x60, 0x9d, 0x40, 0xa0, 0x03, 0xd0, 0x01, 0xe8, 0xd0, 0x52,
		0x74, 0xa0, 0xb1, 0x06, 0x4b, 0x52, 0x80, 0x03, 0xc0, 0x01, 0xe0, 0x40, 0x4b, 0x71, 0x80, 0x5e,
		0x2e, 0x9c, 0x93, 0x04, 0x3c, 0x00, 0x1e, 0x00, 0x0f, 0x5a, 0x86, 0x07, 0x7e, 0xe8, 0x3a, 0xbe,
		0x2d, 0x3d, 0x75, 0x1c, 0xc8, 0x24, 0x74, 0x45, 0xff, 0x27, 0xa7, 0xb0, 0xa0, 0xf5, 0x6b, 0x4e,
		0xd0, 0xa4, 0x8b, 0xb3, 0x73, 0xba, 0xae, 0xdc, 0xee, 0xcc, 0x28, 0x6d, 0x57, 0x6a, 0xf3, 0x9a,
		0xad, 0x81, 0x4a, 0x93, 0xa5, 0xd6, 0x76, 0x49, 0x86, 0x96, 0xb7, 0x4e, 0xcb, 0x95, 0x3b, 0x22,
		0x63, 0xfc, 0x8d, 0x86, 0xce, 0xa2, 0xca, 0x0a, 0xc4, 0xa5, 0x48, 0xec, 0x0a, 0xc5, 0xae, 0x58,
		0xfc, 0x0a, 0xa6, 0xa6, 0x68, 0x8a, 0x0a, 0x47, 0x37, 0xaf, 0x7c, 0x66, 0x96, 0x68, 0x6e, 0xd5,
		0xd7, 0x4d, 0x79, 0xdc, 0x16, 0x53, 0xcf, 0xf5, 0x05, 0x59, 0x40, 0x1e, 0x20, 0x0f, 0x90, 0xa7,
		0x3b, 0xc8, 0x53, 0x47, 0xb3, 0x55, 0x65, 0x78, 0x41, 0x7b, 0x55, 0xab, 0xed, 0xed, 0x55, 0x0b,
		0x9a, 0x9d, 0xbc, 0x57, 0x34, 0x34, 0x7c, 0x3d, 0x64, 0xee, 0xa7, 0x37, 0xb5, 0xd0, 0x47, 0x35,
		0x55, 0x61, 0x03, 0xa2, 0xeb, 0x31, 0xc4, 0x8b, 0x28, 0x12, 0x9e, 0x9d, 0x44, 0x4e, 0x10, 0x0f,
		0xc3, 0x28, 0xb1, 0x7d, 0xe7, 0x4d, 0x44, 0xea, 0x21, 0xf7, 0x7a, 0x91, 0x60, 0xdb, 0x11, 0x91,
		0x77, 0x8a, 0x6d, 0x4f, 0xb7, 0xbd, 0x3d, 0x8c, 0xc2, 0x24, 0x74, 0x43, 0x5f, 0xd5, 0xe3, 0x35,
		0xbb, 0x5b, 0x2a, 0x6b, 0x23, 0xa1, 0xa9, 0x05, 0xaf, 0xc8, 0xcf, 0xab, 0xd9, 0x6d, 0x92, 0xbd,
		0x26, 0xd9, 0x69, 0x35, 0xfb, 0xdc, 0xaa, 0xee, 0x6d, 0xea, 0x4d, 0xc7, 0x74, 0x9b, 0xde, 0x3a,
		0xfb, 0xb7, 0xa5, 0xd9, 0xb6, 0xca, 0x0d, 0xdb, 0x2a, 0xe4, 0xe8, 0x2a, 0xda, 0xc8, 0x46, 0x3a,
		0xb4, 0x55, 0x0c, 0x6c, 0x77, 0xab, 0x37, 0x5b, 0xb5, 0xc0, 0x94, 0x17, 0x4c, 0x2b, 0xdb, 0x2f,
		0xd5, 0x2c, 0x71, 0xc5, 0x30, 0xb2, 0x84, 0x6e, 0xed, 0x11, 0x9e, 0x7f, 0x66, 0x44, 0x4a, 0x3c,
		0x44, 0x35, 0xc3, 0xa1, 0x64, 0x30, 0x94, 0x0c, 0x45, 0x35, 0x03, 0xb1, 0x6d, 0x3d, 0x2a, 0x1a,
		0x04, 0x56, 0x43, 0x50, 0x62, 0x17, 0xb1, 0x81, 0xfd, 0x66, 0x3d, 0x5b, 0xbf, 0xa7, 0x8a, 0x7f,
		0xb3, 0x66, 0x55, 0xcb, 0xae, 0xa6, 0xea, 0x2a, 0x6e, 0x58, 0x30, 0xa5, 0x85, 0x2a, 0x5e, 0x94,
		0xfc, 0x23, 0x17, 0x3c, 0xee, 0xe6, 0xd4, 0x6b, 0x99, 0x14, 0xeb, 0x96, 0x54, 0xea, 0x56, 0x73,
		0x54, 0xc6, 0xfc, 0x54, 0x34, 0x37, 0x65, 0xcd, 0x4b, 0x65, 0x73, 0x52, 0xd9, 0x7c, 0x54, 0x37,
		0x17, 0xd5, 0x36, 0xea, 0xb6, 0xd4, 0x62, 0xc9, 0x14, 0x62, 0xa5, 0x54, 0x61, 0x49, 0x7f, 0xa4,
		0xb4, 0x1f, 0x52, 0xc5, 0xff, 0x50, 0xf4, 0x3b, 0xaa, 0xfa, 0x1b, 0xca, 0x7e, 0x86, 0xb2, 0x7f,
		0xa1, 0xee, 0x57, 0xd0, 0xec, 0x68, 0x69, 0xff, 0xa1, 0x3a, 0x21, 0x5d, 0xd2, 0x63, 0xd8, 0x80,
		0xd9, 0xef, 0xb6, 0xec, 0xeb, 0x72, 0xa9, 0xaa, 0xea, 0x29, 0x29, 0xec, 0x70, 0xec, 0xf0, 0x7a,
		0x76, 0x78, 0x25, 0xb0, 0x2f, 0x9b, 0xfa, 0x28, 0xe7, 0xf1, 0x56, 0xf2, 0x74, 0x2b, 0x79, 0xb8,
		0xe5, 0x3c, 0xdb, 0x1a, 0x7c, 0xaf, 0x2d, 0xaa, 0xbe, 0xdd, 0xd7, 0x5a, 0xcf, 0xe0, 0x97, 0x73,
		0xae, 0x56, 0xd9, 0xcf, 0xcc, 0x01, 0xdc, 0xea, 0x70, 0xad, 0xfd, 0xa6, 0x29, 0x4e, 0x58, 0x05,
		0xfe, 0xdb, 0x64, 0x77, 0xac, 0x3c, 0x3f, 0xcd, 0xec, 0x98, 0x95, 0x3a, 0xf0, 0xb4, 0xb4, 0x1d,
		0x4a, 0x1a, 0xad, 0x5e, 0x59, 0xa3, 0xf5, 0x41, 0x97, 0xd1, 0x52, 0x48, 0x8d, 0xb4, 0xd1, 0x7c,
		0x55, 0x4f, 0x6d, 0xd0, 0x0c, 0x59, 0xd9, 0x32, 0xc2, 0x7d, 0x4f, 0x46, 0xa2, 0xda, 0x44, 0xc4,
		0xec, 0xfd, 0xcd, 0xbf, 0xaa, 0x99, 0x9b, 0xfc, 0x50, 0x17, 0x37, 0x49, 0xc8, 0xd3, 0xed, 0x12,
		0x4b, 0xa9, 0x9e, 0x87, 0x33, 0x85, 0xaf, 0xec, 0x87, 0xd1, 0x8b, 0x13, 0x79, 0x32, 0x18, 0xd8,
		0x55, 0x77, 0xa9, 0x6a, 0x82, 0xad, 0x62, 0x62, 0x8d, 0x27, 0x9f, 0x50, 0x94, 0x4f, 0xac, 0xac,
		0xc7, 0xea, 0x49, 0x49, 0x68, 0x34, 0x34, 0xba, 0x26, 0x8d, 0xa6, 0x65, 0xce, 0xdb, 0xa3, 0xd0,
		0x55, 0x1a, 0x61, 0xcd, 0x17, 0xa7, 0x7c, 0xe3, 0x2b, 0xe5, 0x11, 0x4e, 0x50, 0xd9, 0x6e, 0xaa,
		0x6c, 0xe5, 0x51, 0x4e, 0xe3, 0xcd, 0x68, 0x57, 0x4a, 0x74, 0x17, 0xee, 0x67, 0x5b, 0xe1, 0x64,
		0x6a, 0x7b, 0x2b, 0xc4, 0x14, 0x0f, 0xa0, 0x5b, 0x1d, 0xa9, 0x0c, 0xcb, 0x96, 0x67, 0xf7, 0x2a,
		0xc2, 0x84, 0xd3, 0x8f, 0x44, 0x9f, 0x52, 0x05, 0x76, 0xa4, 0xf0, 0xdd, 0x9b, 0x02, 0x2a, 0xec,
		0xf3, 0x8c, 0x0a, 0x5b, 0x5a, 0xf2, 0xcf, 0x8b, 0x95, 0x3b, 0x1b, 0x7e, 0xbd, 0xf2, 0xf1, 0x58,
		0x85, 0x57, 0x3e, 0x4a, 0x15, 0xda, 0x88, 0x19, 0xdd, 0xd3, 0x07, 0xa2, 0x81, 0xd4, 0xb2, 0x18,
		0x00, 0x15, 0x80, 0x0a, 0x40, 0xd5, 0x42, 0xa0, 0xd2, 0x8a, 0x4a, 0x3a, 0x6a, 0x61, 0x97, 0x70,
		0xc7, 0xaa, 0xea, 0x2a, 0xb1, 0x94, 0xc6, 0x2a, 0x22, 0x66, 0xaf, 0x2a, 0x4a, 0x12, 0x00, 0x63,
		0x11, 0x2c, 0x9e, 0x64, 0x60, 0x8b, 0xd9, 0xdd, 0x2b, 0xec, 0x41, 0x0e, 0xb8, 0x58, 0x82, 0x8a,
		0x9e, 0x09, 0x66, 0xb0, 0x93, 0x05, 0xcb, 0xeb, 0x52, 0x65, 0xe9, 0x2f, 0xde, 0x57, 0x6c, 0x20,
		0xbd, 0x3d, 0x27, 0x38, 0x46, 0xaf, 0xd3, 0xf9, 0xd5, 0x16, 0x3f, 0x7e, 0xbc, 0x1c, 0x5f, 0xac,
		0x46, 0x6a, 0x41, 0x8d, 0x1c, 0x54, 0x60, 0x03, 0x7b, 0xa8, 0x3d, 0x46, 0xed, 0x31, 0x99, 0x46,
		0x50, 0xeb, 0x67, 0x41, 0xea, 0x63, 0x81, 0x76, 0x4e, 0x3b, 0xe9, 0x93, 0xa3, 0x9d, 0xd3, 0x3a,
		0xa0, 0x36, 0xa1, 0x9d, 0x13, 0xa1, 0x8f, 0x04, 0xbd, 0x7f, 0x04, 0x34, 0x1e, 0x1a, 0x0f, 0x8d,
		0x37, 0x35, 0xd2, 0xad, 0xac, 0xd6, 0x38, 0xf7, 0x69, 0x44, 0x18, 0x55, 0x35, 0x39, 0x4b, 0x0a,
		0xa3, 0xca, 0x37, 0x4e, 0xe0, 0x09, 0xa3, 0xa2, 0x70, 0x94, 0xc8, 0x60, 0xb0, 0x78, 0x8e, 0xb5,
		0x72, 0x50, 0x55, 0x20, 0x03, 0xd9, 0x5b, 0x64, 0x6f, 0x4d, 0x08, 0xbb, 0xdc, 0x30, 0x4e, 0x6c,
		0xf7, 0x87, 0x13, 0x39, 0x6e, 0x22, 0x22, 0x19, 0x27, 0xd2, 0x55, 0xf7, 0xcb, 0x8a, 0x84, 0x75,
		0xa5, 0xf7, 0x26, 0x7a, 0x7e, 0x68, 0x56, 0x94, 0x7a, 0x9c, 0x36, 0xe5, 0x7e, 0x9c, 0xe9, 0xde,
		0x77, 0xfc, 0x41, 0x18, 0xc9, 0xe4, 0xc7, 0x13, 0xbd, 0x47, 0xde, 0x8a, 0x3c, 0xf4, 0xc9, 0x23,
		0xe7, 0x23, 0xb9, 0xd4, 0x8c, 0x5d, 0xdd, 0xd8, 0xd5, 0x6e, 0xbd, 0xfa, 0xa9, 0xe7, 0x2b, 0xd5,
		0xd4, 0x4f, 0x51, 0x0d, 0xe9, 0x31, 0x14, 0x5f, 0x2c, 0x45, 0x8c, 0xa9, 0xd4, 0xd7, 0x4d, 0xa5,
		0x4b, 0x67, 0x8a, 0x1a, 0x3c, 0x4d, 0x3a, 0xe7, 0xa2, 0x80, 0x3d, 0xc0, 0x1e, 0x60, 0x0f, 0xb0,
		0xa7, 0x0c, 0xf6, 0x30, 0xb5, 0x25, 0x5f, 0x90, 0x05, 0xf4, 0x01, 0xfa, 0x00, 0x7d, 0xba, 0x85,
		0x3e, 0x75, 0x74, 0x09, 0x56, 0xf5, 0x6f, 0xd0, 0x24, 0xd8, 0x32, 0xb3, 0x49, 0xf0, 0x66, 0x92,
		0x3a, 0xcf, 0xc1, 0xbe, 0xa7, 0xd3, 0x55, 0x16, 0x99, 0xce, 0xbe, 0x9d, 0xdc, 0xd6, 0x42, 0x67,
		0xe0, 0xd3, 0x30, 0x4e, 0x4e, 0x97, 0x6f, 0xca, 0x80, 0xb4, 0xad, 0x27, 0x9f, 0x45, 0x14, 0xcb,
		0xe4, 0xcd, 0x1e, 0x86, 0xbe, 0x74, 0x09, 0x33, 0xf8, 0x72, 0x92, 0xd0, 0x15, 0x18, 0x0c, 0x61,
		0xa7, 0xba, 0x02, 0x13, 0x35, 0xc0, 0x32, 0xbe, 0x25, 0x70, 0x95, 0xd9, 0x9e, 0xb1, 0x2d, 0x5e,
		0x5d, 0x7f, 0x14, 0xcb, 0x67, 0x42, 0x41, 0xc8, 0x92, 0x94, 0xaa, 0x8c, 0xaf, 0xe8, 0x3b, 0x23,
		0x7f, 0xb2, 0xff, 0xa2, 0x0e, 0xd5, 0x90, 0x01, 0x8e, 0x00, 0x47, 0xe9, 0x6e, 0xf8, 0x1e, 0x86,
		0xbe, 0x70, 0x02, 0x0a, 0x0a, 0xf5, 0x4c, 0x98, 0x0a, 0xea, 0x24, 0x22, 0x70, 0xdf, 0xd8, 0x92,
		0x99, 0x6b, 0xe4, 0x21, 0x9f, 0x09, 0x78, 0xe8, 0x42, 0x3e, 0xb3, 0x2f, 0x5f, 0x85, 0x67, 0x33,
		0x29, 0x55, 0x6e, 0x8b, 0x6d, 0x94, 0xde, 0x30, 0xe3, 0xf7, 0x01, 0x8c, 0x1f, 0x18, 0x3f, 0x30,
		0x7e, 0xc6, 0xe7, 0x1b, 0xfe, 0x96, 0x49, 0x22, 0x22, 0x76, 0x68, 0x2a, 0x16, 0x0b, 0x4c, 0x02,
		0x26, 0x01, 0x93, 0x80, 0x49, 0x5b, 0xee, 0xf1, 0x9f, 0x91, 0x90, 0xc1, 0x40, 0x9b, 0xdb, 0xb4,
		0x59, 0x3c, 0x32, 0xa5, 0xc0, 0x28, 0x60, 0x14, 0x30, 0x6a, 0xcb, 0x3d, 0x26, 0x91, 0xd3, 0xef,
		0x4b, 0xd7, 0x1e, 0x46, 0xe1, 0x50, 0x44, 0xc9, 0x1b, 0x53, 0xbd, 0x58, 0xb1, 0x58, 0x60, 0x12,
		0x30, 0x09, 0x98, 0x04, 0x4c, 0xda, 0x72, 0x8f, 0x2f, 0x4e, 0xe0, 0x69, 0x88, 0xe5, 0x8a, 0xc5,
		0x22, 0x96, 0x03, 0x26, 0x01, 0x93, 0xba, 0x85, 0x49, 0x75, 0x54, 0x94, 0x71, 0x78, 0x40, 0xa8,
		0x2e, 0xb3, 0x76, 0xa4, 0xba, 0x8c, 0x2d, 0x48, 0xe7, 0x2e, 0x30, 0xbb, 0x9c, 0xdc, 0x98, 0x79,
		0x35, 0x66, 0x4f, 0xce, 0xab, 0xed, 0xf8, 0x7e, 0xf8, 0x22, 0x3c, 0xdb, 0x0d, 0xe3, 0x44, 0x3d,
		0x77, 0x9b, 0x93, 0x84, 0xac, 0x6d, 0x6d, 0x26, 0x1d, 0x59, 0x5b, 0x3a, 0x9e, 0x29, 0x67, 0x6d,
		0x87, 0x91, 0x0c, 0x23, 0x99, 0xbc, 0xd1, 0x5d, 0xe7, 0x4c, 0x12, 0x22, 0x78, 0x36, 0xd5, 0x82,
		0xd7, 0xcc, 0xa1, 0x7a, 0x6d, 0xf7, 0x9e, 0x47, 0x32, 0x48, 0x3e, 0x1d, 0x32, 0x78, 0xcf, 0xc7,
		0x04, 0x11, 0xb7, 0x4e, 0x30, 0x18, 0xdf, 0xcd, 0x7f, 0x48, 0xaf, 0x97, 0xb6, 0x7d, 0x67, 0x1e,
		0x2b, 0x59, 0x0f, 0x98, 0x40, 0x27, 0x27, 0xee, 0xcf, 0xe9, 0x61, 0x36, 0x2e, 0x79, 0x5f, 0xc6,
		0x0e, 0x97, 0x0c, 0x83, 0x33, 0x39, 0x90, 0xa9, 0x6f, 0x7d, 0x40, 0x96, 0xfb, 0xeb, 0x1d, 0xc3,
		0x2b, 0x70, 0x5e, 0x8d, 0x7f, 0x05, 0xbd, 0xe3, 0xc3, 0xc3, 0x4f, 0x47, 0x87, 0x87, 0x07, 0x47,
		0xff, 0x3a, 0x3a, 0xf8, 0xf7, 0xc7, 0x8f, 0xbd, 0x4f, 0xbd, 0x8f, 0x06, 0xbf, 0x95, 0xbd, 0x66,
		0xbe, 0xfd, 0x60, 0x30, 0xc5, 0xc7, 0x74, 0x32, 0x14, 0x87, 0x42, 0xe1, 0x94, 0xc0, 0x29, 0x81,
		0x53, 0x02, 0xa7, 0x04, 0x4e, 0x09, 0x9c, 0x12, 0x38, 0x25, 0x75, 0x51, 0x32, 0x26, 0x52, 0xcc,
		0x44, 0x9a, 0xd3, 0xd2, 0x40, 0x2e, 0x7f, 0x75, 0x5e, 0x4f, 0x26, 0x77, 0x74, 0x3a, 0xbe, 0x21,
		0xc3, 0x58, 0x65, 0x4f, 0xf8, 0xce, 0x1b, 0x0f, 0xad, 0x3c, 0x11, 0x05, 0x5e, 0xb9, 0x36, 0xff,
		0x12, 0xbc, 0x32, 0x1d, 0xc4, 0xc0, 0x2b, 0x23, 0x84, 0x43, 0x08, 0x87, 0x10, 0x0e, 0x21, 0x1c,
		0x42, 0x38, 0x84, 0x70, 0x08, 0xe1, 0x8c, 0x0b, 0xe1, 0xc0, 0x2b, 0xc3, 0x29, 0x81, 0x53, 0x02,
		0xa7, 0x04, 0x4e, 0x09, 0x9c, 0x12, 0x38, 0x25, 0x70, 0x4a, 0x8c, 0x70, 0x4a, 0x3a, 0xcd, 0x2b,
		0xab, 0xf0, 0x9c, 0x96, 0x56, 0x62, 0xf9, 0x2c, 0xbd, 0x23, 0xc3, 0x98, 0xe5, 0x1f, 0xe1, 0x30,
		0xe6, 0x21, 0x96, 0x53, 0x49, 0xe0, 0x95, 0x6b, 0xf3, 0x2f, 0xc1, 0x2b, 0xd3, 0x41, 0x0c, 0xbc,
		0x32, 0x42, 0x38, 0x84, 0x70, 0x08, 0xe1, 0x10, 0xc2, 0x21, 0x84, 0x43, 0x08, 0x87, 0x10, 0xce,
		0xb8, 0x10, 0x0e, 0xbc, 0x32, 0x9c, 0x12, 0x38, 0x25, 0x70, 0x4a, 0xe0, 0x94, 0xc0, 0x29, 0x81,
		0x53, 0x02, 0xa7, 0xc4, 0x08, 0xa7, 0xa4, 0xd3, 0xbc, 0xb2, 0x02, 0xcd, 0x69, 0x69, 0xa5, 0x95,
		0xff, 0x18, 0xdf, 0x90, 0x01, 0xac, 0x72, 0x24, 0xe3, 0x9f, 0xf6, 0x7c, 0x44, 0x0c, 0xd7, 0x38,
		0x83, 0xcd, 0x62, 0xc1, 0x37, 0xd7, 0xe6, 0x77, 0x82, 0x6f, 0xa6, 0x83, 0x9b, 0x32, 0xdf, 0x9c,
		0x6a, 0xc1, 0xf2, 0xde, 0x67, 0x6a, 0x7f, 0xb9, 0x56, 0x32, 0x42, 0x3f, 0x74, 0x9b, 0x63, 0x50,
		0x49, 0x74, 0x9b, 0xdb, 0xed, 0x0e, 0x98, 0x29, 0x7e, 0x48, 0x4f, 0x04, 0x89, 0xec, 0x4b, 0x11,
		0xd9, 0xbe, 0x54, 0x68, 0x80, 0x55, 0x8c, 0x4a, 0xab, 0x52, 0x81, 0x48, 0x40, 0x24, 0x20, 0x52,
		0x9b, 0x11, 0x49, 0x71, 0x05, 0x48, 0xbd, 0x25, 0x17, 0xc9, 0xa6, 0x85, 0xf6, 0x90, 0xc4, 0x7d,
		0x3f, 0x5b, 0xd2, 0x1e, 0x75, 0xbf, 0x33, 0x29, 0xe2, 0xaa, 0x32, 0x3e, 0xc9, 0xc0, 0x16, 0xb3,
		0xa7, 0x65, 0xa0, 0x89, 0xb8, 0xd5, 0x32, 0xa7, 0x9a, 0xbd, 0xfd, 0x86, 0x68, 0x13, 0x02, 0x89,
		0xc6, 0xd2, 0x71, 0x34, 0x13, 0x46, 0xea, 0x3c, 0x6a, 0x2a, 0x9d, 0x33, 0x6d, 0x31, 0xcb, 0x14,
		0x65, 0xa0, 0xcb, 0xec, 0xae, 0x50, 0x6a, 0x9c, 0xb4, 0x8e, 0x0e, 0x7e, 0xed, 0x56, 0xc6, 0x3f,
		0xcf, 0x66, 0xb7, 0x67, 0x5e, 0xcb, 0xd9, 0xf1, 0x8a, 0x0a, 0x3b, 0xfc, 0xfe, 0xb7, 0x70, 0x13,
		0xf9, 0x2c, 0xec, 0xfe, 0x28, 0x70, 0x95, 0x5e, 0xf0, 0xdc, 0xe3, 0x5e, 0x27, 0x11, 0x73, 0x85,
		0x41, 0xb1, 0x75, 0x6a, 0xae, 0x30, 0x93, 0x26, 0x58, 0xbb, 0x34, 0xee, 0x3c, 0x09, 0x7d, 0x11,
		0x39, 0xdf, 0x7d, 0x61, 0xcb, 0xa7, 0xa1, 0xe3, 0x12, 0x5a, 0x5c, 0xe7, 0x24, 0x01, 0x5f, 0x80,
		0x2f, 0x9d, 0xc2, 0x97, 0x41, 0xe4, 0x78, 0x22, 0xb6, 0xc3, 0xbe, 0x9a, 0x06, 0x2c, 0xe1, 0x8a,
		0x42, 0x1a, 0x7c, 0xff, 0x22, 0xa5, 0xd5, 0x92, 0xb7, 0xdf, 0x9c, 0x98, 0x21, 0x7f, 0xf0, 0xfb,
		0xed, 0xc9, 0xd9, 0xf9, 0xdd, 0xe3, 0xf5, 0x97, 0xc7, 0x8b, 0xaf, 0x37, 0x27, 0xa7, 0xf7, 0xaa,
		0x3b, 0x2a, 0xcd, 0xf5, 0xc7, 0xa4, 0xa2, 0x14, 0xa6, 0x90, 0x7e, 0xf5, 0x89, 0x1e, 0xbf, 0x9e,
		0xfc, 0xcf, 0xf5, 0xed, 0xec, 0xf1, 0x9a, 0x88, 0x33, 0x75, 0x3d, 0xd8, 0xe5, 0xf5, 0xd5, 0xef,
		0xbb, 0xf8, 0x5c, 0x7f, 0x5c, 0xdc, 0x5f, 0x9e, 0xdf, 0xdd, 0xed, 0xd4, 0x33, 0x7d, 0xbd, 0xb8,
		0xe2, 0xd8, 0x84, 0x4a, 0xdf, 0x7c, 0xd0, 0x8d, 0xc1, 0x7b, 0xbc, 0x7f, 0x59, 0xf2, 0xf5, 0xa9,
		0x06, 0xc6, 0x3a, 0x02, 0xe2, 0x0a, 0xb0, 0xc9, 0x1c, 0xea, 0x96, 0xdb, 0x4c, 0xdb, 0x17, 0xbe,
		0xc4, 0xa2, 0xef, 0x8f, 0x46, 0xd2, 0x2b, 0xbd, 0xd4, 0xf3, 0x9a, 0xc9, 0xf1, 0xb7, 0x4a, 0xbe,
		0xd2, 0x6a, 0xee, 0x61, 0x65, 0xb7, 0x50, 0xc5, 0x1d, 0x5c, 0x76, 0x03, 0x27, 0xfb, 0xa4, 0xca,
		0xeb, 0x56, 0x74, 0xfa, 0xc8, 0xce, 0x1e, 0xd9, 0xc9, 0xcb, 0x3b, 0x77, 0xd3, 0x87, 0x6f, 0x48,
		0xdd, 0x2b, 0xbb, 0x6e, 0x2a, 0x3b, 0xd0, 0xaa, 0x9e, 0x26, 0x29, 0xa1, 0x5b, 0x7b, 0x84, 0xe7,
		0x9f, 0x71, 0xb0, 0x25, 0x1e, 0xa2, 0x1a, 0xbf, 0xaa, 0xc4, 0xa7, 0x2a, 0xf1, 0xa7, 0xd5, 0xf8,
		0xd2, 0x6d, 0xeb, 0x51, 0x11, 0xf6, 0xc9, 0x70, 0x5f, 0x62, 0xe7, 0x90, 0x30, 0x7d, 0xb3, 0x3e,
		0xad, 0xdf, 0x3b, 0x1b, 0xd6, 0x69, 0x3f, 0x7b, 0x20, 0x3b, 0x16, 0xd1, 0xb3, 0x2c, 0x81, 0x3f,
		0xf3, 0x13, 0xad, 0xb9, 0xaf, 0x6e, 0xdb, 0x9f, 0xa5, 0xaa, 0xf2, 0x4a, 0x63, 0x75, 0x15, 0x8c,
		0x26, 0x87, 0xe8, 0x55, 0xd1, 0x59, 0x19, 0x95, 0x95, 0xd1, 0x98, 0x23, 0xc4, 0xa6, 0xe1, 0x4f,
		0xd9, 0xaa, 0xb7, 0x7d, 0x4f, 0x46, 0xa2, 0x1a, 0x8d, 0x9d, 0xbd, 0xbf, 0xf9, 0x57, 0x77, 0xc5,
		0x51, 0x20, 0xf0, 0x45, 0xbb, 0xe4, 0x32, 0xa8, 0xf3, 0x41, 0xa6, 0x38, 0x0f, 0xfd, 0x30, 0x7a,
		0x71, 0x22, 0x6f, 0xec, 0xef, 0x57, 0xdd, 0xa5, 0xaa, 0x1c, 0x72, 0x45, 0xee, 0x98, 0xc7, 0xb9,
		0x17, 0x81, 0x67, 0x0f, 0x43, 0x19, 0x24, 0xd5, 0xb5, 0x77, 0xfe, 0xd5, 0x6a, 0xda, 0xdb, 0x83,
		0xf6, 0x42, 0x7b, 0xcb, 0xdc, 0x58, 0xd5, 0xc2, 0xeb, 0x7d, 0xd7, 0x19, 0x3a, 0xae, 0x4a, 0x83,
		0x8f, 0x6c, 0x1b, 0x64, 0x12, 0x70, 0x46, 0xc1, 0xd2, 0xbd, 0xf5, 0xd9, 0x54, 0x80, 0x4d, 0x15,
		0x74, 0xa8, 0x84, 0x22, 0xb9, 0x56, 0xd7, 0x19, 0x85, 0x24, 0x4c, 0x1c, 0xdf, 0x8e, 0xe5, 0x7f,
		0x19, 0xb2, 0x0a, 0x0b, 0xb2, 0x68, 0x55, 0xbf, 0xbd, 0x9d, 0xa9, 0xfa, 0xad, 0x4c, 0x1c, 0x71,
		0x2b, 0x17, 0xbb, 0x92, 0xb1, 0x2b, 0x1b, 0x1f, 0xf1, 0xc4, 0xc3, 0x9b, 0xab, 0xd6, 0xbb, 0xaa,
		0xaa, 0xe0, 0x9c, 0x67, 0x0d, 0x64, 0xc2, 0x57, 0xe3, 0x9a, 0x4a, 0x23, 0xbe, 0x11, 0x9e, 0x93,
		0xc1, 0x64, 0xb5, 0xe4, 0x54, 0x4f, 0x4d, 0x6a, 0xca, 0xad, 0xae, 0xda, 0xd4, 0x56, 0x9b, 0xfa,
		0xea, 0x53, 0x63, 0x9a, 0x3a, 0x13, 0xd5, 0x5a, 0x3d, 0x94, 0x2c, 0xed, 0x6b, 0xda, 0x0c, 0xaa,
		0x6a, 0x11, 0xeb, 0x96, 0x88, 0xb1, 0x28, 0xff, 0x2b, 0xa3, 0x14, 0x78, 0xd3, 0x9a, 0xe9, 0xe4,
		0xde, 0x13, 0xa5, 0xa9, 0x0e, 0xa0, 0x14, 0x50, 0x0a, 0x28, 0xd5, 0x0e, 0xa5, 0xe4, 0x06, 0x3d,
		0xab, 0x7a, 0x7a, 0xcc, 0x20, 0x8a, 0xa7, 0x61, 0xcf, 0xec, 0x87, 0x47, 0x09, 0x2c, 0xee, 0x06,
		0x3e, 0xcc, 0x00, 0x97, 0x13, 0xcb, 0xdc, 0xd0, 0x27, 0x93, 0xab, 0xa1, 0x85, 0x0c, 0x93, 0x7a,
		0x2c, 0xbf, 0x2a, 0xc6, 0x46, 0x3f, 0x75, 0xbd, 0x2a, 0x7d, 0x8d, 0x7f, 0x6a, 0x79, 0x7b, 0x7b,
		0x66, 0x48, 0x79, 0x68, 0xca, 0xf1, 0xaa, 0x35, 0x68, 0x26, 0x9e, 0x72, 0xca, 0xe4, 0x50, 0xb3,
		0xfd, 0x4b, 0xa9, 0xef, 0xf7, 0x59, 0x66, 0xe3, 0xfd, 0xcc, 0x47, 0x7f, 0x4f, 0xe6, 0xb6, 0x2c,
		0x6a, 0xc1, 0xc0, 0xf8, 0xe3, 0xbb, 0xc9, 0x0d, 0x3e, 0x9e, 0x07, 0xde, 0xcd, 0xf8, 0xfe, 0x1e,
		0x4f, 0xa7, 0xf7, 0xf7, 0x78, 0x3f, 0xbe, 0xbf, 0xbb, 0xf1, 0xed, 0xa1, 0xa1, 0x54, 0x0d, 0xfb,
		0xa1, 0xee, 0xc3, 0x6e, 0x1b, 0x5f, 0xbe, 0x09, 0x67, 0xdb, 0xaa, 0x57, 0x01, 0xe4, 0x9c, 0x38,
		0x95, 0x3c, 0xab, 0x85, 0xd3, 0x25, 0x48, 0xbe, 0x34, 0x0d, 0x56, 0xf4, 0xd3, 0x25, 0xc3, 0x30,
		0x4a, 0x6c, 0xd5, 0xfd, 0x6f, 0xed, 0xd2, 0x99, 0x35, 0xdf, 0x79, 0x13, 0x91, 0x3d, 0x8c, 0xc2,
		0x24, 0x74, 0x43, 0x5f, 0xad, 0x5d, 0x56, 0xb6, 0xac, 0x45, 0xc2, 0x80, 0x2d, 0xc0, 0x96, 0x4e,
		0x61, 0x0b, 0x5d, 0x09, 0x76, 0x19, 0x60, 0xfe, 0x19, 0x39, 0x7e, 0xda, 0xad, 0x8a, 0x0d, 0x65,
		0xe6, 0x12, 0x01, 0x35, 0x80, 0x9a, 0x2e, 0x43, 0x8d, 0xaa, 0x26, 0x58, 0x66, 0x1d, 0x96, 0xbd,
		0x3c, 0xf9, 0xeb, 0xfc, 0xf6, 0xf1, 0xe6, 0xf6, 0xfa, 0xfe, 0xfa, 0xf4, 0xfa, 0xf2, 0xf1, 0x7f,
		0xbf, 0x9d, 0x5c, 0x5e, 0x7c, 0xb9, 0x38, 0xbf, 0x6d, 0xff, 0xa1, 0xd9, 0x75, 0x4f, 0xf6, 0xf8,
		0xed, 0xea, 0xee, 0xe6, 0xfc, 0x74, 0xfc, 0xff, 0x67, 0x1d, 0x3e, 0xb6, 0x58, 0xc5, 0xaa, 0x84,
		0xae, 0xe3, 0xdb, 0x15, 0xce, 0xc9, 0xe5, 0x75, 0x67, 0x26, 0xa1, 0x2b, 0x56, 0x43, 0x39, 0x51,
		0xd8, 0x05, 0x5b, 0xa1, 0x9a, 0xe8, 0x33, 0xdd, 0x42, 0x28, 0x37, 0x33, 0x54, 0x6c, 0x62, 0xa8,
		0x47, 0xdb, 0x69, 0x51, 0x29, 0x21, 0x0c, 0xed, 0x41, 0xcb, 0xa1, 0xe5, 0xc6, 0xd6, 0x12, 0x63,
		0x88, 0x15, 0x2a, 0x88, 0x9b, 0x50, 0x2c, 0x7e, 0x05, 0xa3, 0xb9, 0xb0, 0xe8, 0x19, 0x5c, 0xe3,
		0xd0, 0x3c, 0xa6, 0x89, 0x0a, 0x0b, 0xb2, 0x80, 0x3c, 0x40, 0x1e, 0x20, 0x4f, 0x77, 0x90, 0xa7,
		0x8e, 0x56, 0xca, 0xca, 0xf0, 0x82, 0xe6, 0xc9, 0xd6, 0x0e, 0x95, 0x8f, 0xa8, 0x26, 0x5f, 0xd8,
		0x4b, 0x47, 0x52, 0x75, 0x35, 0xa2, 0x25, 0xb2, 0x2f, 0x28, 0xed, 0x8f, 0x7d, 0x24, 0x74, 0x11,
		0x53, 0x77, 0xb1, 0x58, 0x44, 0x61, 0xeb, 0x5b, 0xbb, 0x94, 0xc6, 0x9d, 0x62, 0xab, 0x2d, 0x83,
		0x44, 0x44, 0x7d, 0xc7, 0x15, 0x15, 0xbb, 0x58, 0xe4, 0x1d, 0x97, 0x35, 0x02, 0xd1, 0x08, 0x00,
		0xf0, 0xd2, 0x85, 0x46, 0x00, 0x6b, 0xf6, 0xbf, 0x5d, 0xa9, 0xfb, 0x63, 0x55, 0xed, 0xb2, 0x2b,
		0xf6, 0xe8, 0x43, 0xc0, 0x8d, 0x80, 0x1b, 0x01, 0xf7, 0xd2, 0xce, 0xf1, 0x85, 0xd3, 0x8f, 0x44,
		0x9f, 0x23, 0xe2, 0x3e, 0x22, 0xc8, 0xb8, 0x29, 0x88, 0x95, 0x3e, 0xcf, 0x42, 0xa2, 0xc5, 0xcf,
		0xd6, 0x20, 0xc1, 0xd2, 0xdf, 0xa4, 0xa8, 0x80, 0x73, 0x0c, 0x1a, 0x03, 0x51, 0x1e, 0x6f, 0x47,
		0x4f, 0x6c, 0x3a, 0xfd, 0xe0, 0x62, 0x76, 0x6b, 0xe9, 0xa7, 0xfb, 0xad, 0xe8, 0x4d, 0x3d, 0x65,
		0x7b, 0x2a, 0xd6, 0x72, 0xa8, 0x71, 0x3c, 0xa4, 0xd1, 0x78, 0x19, 0x7c, 0x7c, 0xa8, 0xea, 0xe0,
		0x12, 0x4c, 0x0c, 0xe3, 0xa8, 0x3b, 0x16, 0x83, 0xb2, 0x64, 0x44, 0x3e, 0x98, 0x40, 0x87, 0x2c,
		0x33, 0x6d, 0x6d, 0x7b, 0xa5, 0xce, 0x2b, 0x5e, 0x29, 0x0f, 0xef, 0x69, 0x7a, 0x2f, 0xfc, 0x35,
		0x66, 0xa5, 0xae, 0x7e, 0xf8, 0x45, 0x66, 0xa3, 0xce, 0x8e, 0xf8, 0x94, 0x43, 0x2a, 0x0c, 0x75,
		0xf9, 0x68, 0x83, 0xab, 0x23, 0x66, 0x41, 0x1b, 0x5c, 0xd6, 0x4d, 0x6a, 0xb5, 0xa9, 0x0b, 0xae,
		0x9a, 0x06, 0x2b, 0xa8, 0x6c, 0x0f, 0x23, 0x2e, 0x30, 0xe2, 0x82, 0xca, 0xd9, 0x29, 0x16, 0xda,
		0x91, 0x0a, 0xec, 0x50, 0x67, 0xbe, 0x93, 0x74, 0x36, 0xea, 0xcc, 0xd7, 0x01, 0xb5, 0x09, 0x75,
		0xe6, 0x84, 0x02, 0x37, 0x7a, 0x61, 0x1b, 0x34, 0x1e, 0x1a, 0x0f, 0x8d, 0x37, 0x95, 0x62, 0xac,
		0xac, 0xd6, 0x2c, 0x24, 0x63, 0xb5, 0xda, 0x2f, 0x52, 0xe1, 0x58, 0x17, 0x88, 0x93, 0xaa, 0xe1,
		0x14, 0x17, 0x67, 0x52, 0xbe, 0xfa, 0x8b, 0x27, 0xbc, 0x22, 0x8c, 0xbc, 0xcf, 0xf4, 0x5b, 0x79,
		0xb4, 0x37, 0xc6, 0x8e, 0x80, 0x2d, 0xd1, 0x1b, 0x8e, 0x7d, 0x77, 0x02, 0xef, 0x45, 0x7a, 0xc9,
		0x0f, 0x3b, 0x1c, 0x26, 0xf2, 0x49, 0xfe, 0xd7, 0xa1, 0x35, 0xc2, 0x5a, 0x23, 0xaf, 0x66, 0xf7,
		0xed, 0x03, 0x2a, 0x91, 0x50, 0x89, 0xd4, 0xa8, 0x4b, 0x37, 0x6d, 0x88, 0xf5, 0x2c, 0x6c, 0xd5,
		0x23, 0x81, 0x3b, 0x53, 0xee, 0xe8, 0x86, 0x81, 0x3b, 0x8a, 0x22, 0x11, 0x24, 0xe9, 0x7b, 0x27,
		0x64, 0x07, 0x73, 0x92, 0x00, 0x2b, 0x80, 0x15, 0xc0, 0x4a, 0x57, 0x61, 0x25, 0x4e, 0x98, 0x9c,
		0x96, 0xbc, 0x28, 0x00, 0x0b, 0x80, 0x05, 0xc0, 0xd2, 0x4d, 0x60, 0xf1, 0x65, 0xf0, 0xd3, 0x1e,
		0x25, 0xd2, 0x27, 0xe3, 0x4a, 0x4e, 0x12, 0x60, 0x05, 0xb0, 0x02, 0x58, 0xe9, 0x28, 0xac, 0xa0,
		0xcd, 0x5a, 0x55, 0x18, 0x41, 0x32, 0x6c, 0x03, 0x78, 0x20, 0x19, 0xb6, 0x0e, 0x29, 0xd0, 0x66,
		0x0d, 0x5a, 0x0e, 0x2d, 0xd7, 0xa9, 0xe5, 0x68, 0xb3, 0x86, 0xb3, 0x97, 0x3a, 0x15, 0x8a, 0x5d,
		0xb1, 0xf8, 0x15, 0x4c, 0x4d, 0xd1, 0x14, 0x15, 0x8e, 0x6e, 0x5e, 0xf9, 0xcc, 0x2c, 0xd1, 0xdc,
		0xaa, 0xaf, 0x1b, 0xda, 0xac, 0x01, 0x79, 0x80, 0x3c, 0x40, 0x1e, 0xb4, 0x59, 0x5b, 0x11, 0x80,
		0x36, 0x6b, 0xad, 0x3f, 0xdd, 0x9e, 0xaf, 0x10, 0x6b, 0xbc, 0xdf, 0xda, 0xf5, 0xec, 0x96, 0xbe,
		0x4c, 0xef, 0xc8, 0x9c, 0xc6, 0x6b, 0x22, 0x4e, 0xad, 0x86, 0x1d, 0xff, 0x70, 0x52, 0x28, 0x51,
		0x6f, 0xc2, 0xb6, 0x2a, 0x09, 0x04, 0x3d, 0xa2, 0x6f, 0x10, 0xf4, 0x6a, 0xd6, 0xd8, 0x48, 0x82,
		0x7e, 0x07, 0x2b, 0xaf, 0x95, 0xab, 0x89, 0xf5, 0x9a, 0x87, 0x5a, 0x8b, 0xb2, 0x17, 0x6a, 0x35,
		0xc6, 0x2b, 0x15, 0x27, 0x91, 0x53, 0xa5, 0x83, 0xde, 0xbc, 0x32, 0x7b, 0x8d, 0x20, 0x94, 0x67,
		0xa3, 0x3c, 0x5b, 0x03, 0x80, 0x54, 0x2e, 0xcf, 0x46, 0xd2, 0xb0, 0x3e, 0x4e, 0x02, 0xe9, 0x84,
		0xf6, 0xba, 0x31, 0x48, 0x1a, 0x22, 0x69, 0x08, 0x2d, 0x47, 0xd2, 0x70, 0xd3, 0xbe, 0x41, 0xd2,
		0x10, 0xd4, 0xbd, 0xd5, 0xac, 0x82, 0xa9, 0x53, 0xd0, 0x16, 0xa8, 0x7b, 0x24, 0x0d, 0x81, 0x3c,
		0x40, 0x1e, 0x20, 0x4f, 0x5b, 0x90, 0x07, 0x49, 0xc3, 0x6d, 0x42, 0x90, 0x34, 0xa4, 0x11, 0xc1,
		0xc5, 0xe4, 0x65, 0xf3, 0x99, 0xc3, 0x85, 0xfb, 0x3a, 0xcd, 0x6e, 0xcb, 0x98, 0xf4, 0x61, 0x12,
		0x39, 0xfd, 0xbe, 0x74, 0x27, 0xfd, 0xc3, 0xa3, 0xd1, 0x90, 0x76, 0xc6, 0xa7, 0x50, 0x1a, 0xd2,
		0x88, 0x88, 0xc7, 0x91, 0x46, 0x54, 0xb3, 0xcf, 0x48, 0x23, 0x36, 0x6a, 0x3d, 0x1a, 0xc9, 0x25,
		0x16, 0x1a, 0x8c, 0x3a, 0x13, 0x8a, 0xd3, 0x45, 0xad, 0x98, 0x3d, 0x4c, 0xbf, 0xa5, 0x39, 0x55,
		0xf8, 0x01, 0xa9, 0x42, 0x8d, 0x98, 0xbd, 0x43, 0xa9, 0xc2, 0xf4, 0xc6, 0x95, 0x26, 0x5e, 0x2d,
		0xed, 0x67, 0x95, 0xb1, 0x56, 0x18, 0x4c, 0x09, 0x07, 0xa6, 0xe5, 0x0e, 0x8c, 0xfa, 0x28, 0x2a,
		0xca, 0x08, 0xaa, 0x12, 0xa3, 0xa7, 0x56, 0x97, 0xfe, 0xf3, 0x5a, 0x13, 0xbf, 0xfe, 0xcf, 0xd7,
		0xfc, 0xaa, 0xfa, 0xa8, 0xaa, 0x86, 0x1b, 0x87, 0x56, 0xc5, 0xa7, 0x26, 0x87, 0x13, 0xf5, 0x30,
		0x9c, 0x68, 0x02, 0x20, 0x3d, 0xf3, 0x86, 0x13, 0xa1, 0x9b, 0xeb, 0x6a, 0x30, 0x50, 0xc1, 0x93,
		0x65, 0xf5, 0xfc, 0x53, 0xfc, 0xab, 0xd1, 0xcf, 0x8f, 0xc2, 0x51, 0x22, 0x83, 0x01, 0xa9, 0x66,
		0xb0, 0x40, 0x06, 0xca, 0x05, 0x11, 0x03, 0x98, 0x10, 0x03, 0xa4, 0x8d, 0xcc, 0xdc, 0x1f, 0x4e,
		0xe4, 0xb8, 0x89, 0x88, 0x64, 0x9c, 0x48, 0x97, 0xd8, 0x15, 0x6d, 0x45, 0x18, 0x26, 0x4a, 0x23,
		0x2e, 0xe8, 0xc2, 0x44, 0xe9, 0x74, 0xef, 0x3b, 0xfe, 0x20, 0x8c, 0x64, 0xf2, 0xe3, 0x89, 0x5e,
		0x06, 0xb0, 0x22, 0x0f, 0xa5, 0x00, 0x93, 0xfd, 0x93, 0x84, 0xc3, 0xd0, 0x0f, 0x07, 0x6f, 0x28,
		0x06, 0x50, 0x52, 0xbf, 0x6c, 0xf9, 0x50, 0x0e, 0xa0, 0x1c, 0xb5, 0x9b, 0x5c, 0x88, 0x94, 0xa2,
		0x06, 0x4f, 0x1d, 0xd2, 0x5c, 0x14, 0xb0, 0x07, 0xd8, 0x03, 0xec, 0x01, 0xf6, 0x94, 0xc1, 0x1e,
		0xa6, 0xca, 0xeb, 0x05, 0x59, 0x40, 0x1f, 0xa0, 0x0f, 0xd0, 0xa7, 0x5b, 0xe8, 0x53, 0x47, 0x21,
		0xa4, 0xaa, 0x7f, 0x83, 0x3a, 0x48, 0xab, 0xf5, 0x75, 0x90, 0x79, 0x42, 0xf6, 0x3d, 0x9d, 0xbb,
		0xb2, 0x38, 0x69, 0xee, 0xdb, 0xc9, 0x1d, 0x2e, 0x14, 0x43, 0x9e, 0x86, 0x71, 0x72, 0xba, 0x7c,
		0x7f, 0x06, 0xa4, 0x49, 0x3c, 0xf9, 0x2c, 0xa2, 0x58, 0x26, 0x6f, 0xf6, 0x30, 0xf4, 0xa5, 0xfb,
		0xa6, 0x4e, 0x1e, 0xe6, 0x24, 0xa1, 0xa2, 0x00, 0xcc, 0x61, 0xc7, 0x4a, 0x22, 0x49, 0x1a, 0x60,
		0xed, 0x52, 0xef, 0x73, 0x19, 0xdb, 0xe2, 0xd5, 0xf5, 0x47, 0xb1, 0x7c, 0x26, 0x1c, 0x70, 0x5e,
		0x92, 0x52, 0x95, 0x09, 0x16, 0x7d, 0x67, 0xe4, 0x4f, 0xf6, 0x5f, 0xd4, 0xa1, 0x09, 0xe2, 0x80,
		0x23, 0xc0, 0xd1, 0x64, 0x30, 0x63, 0x18, 0xfa, 0xc2, 0x09, 0x28, 0x28, 0xd4, 0x33, 0x61, 0x8a,
		0x82, 0x93, 0x88, 0xc0, 0x7d, 0x63, 0x4b, 0x72, 0xae, 0x91, 0x87, 0x3c, 0x27, 0xe0, 0xa1, 0x0b,
		0x79, 0xce, 0xbe, 0x7c, 0x15, 0x9e, 0xcd, 0xa4, 0x54, 0xb9, 0x2d, 0xb6, 0x51, 0x7a, 0xc3, 0x4c,
		0xe0, 0x07, 0x30, 0x81, 0x60, 0x02, 0xc1, 0x04, 0x1a, 0x9f, 0x87, 0xf8, 0x5b, 0x26, 0x89, 0x88,
		0xd8, 0xa1, 0xa9, 0x58, 0x2c, 0x30, 0x09, 0x98, 0x04, 0x4c, 0x02, 0x26, 0x6d, 0xb9, 0xc7, 0x7f,
		0x46, 0x42, 0x06, 0x03, 0x6d, 0x6e, 0xd3, 0x66, 0xf1, 0xc8, 0xa0, 0x02, 0xa3, 0x80, 0x51, 0xc0,
		0xa8, 0x2d, 0xf7, 0x38, 0xeb, 0x4b, 0x31, 0x8c, 0xc2, 0xa1, 0x88, 0x92, 0x37, 0xa6, 0x3a, 0xb2,
		0x62, 0xb1, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0xb4, 0xe5, 0x1e, 0x5f, 0x9c, 0xc0, 0xd3,
		0x10, 0xcb, 0x15, 0x8b, 0x45, 0x2c, 0x07, 0x4c, 0x02, 0x26, 0x75, 0x0b, 0x93, 0xea, 0xa8, 0x34,
		0xe3, 0xf0, 0x80, 0x50, 0x75, 0x66, 0xed, 0x62, 0xd5, 0x19, 0x5b, 0xc4, 0xae, 0xb1, 0xf0, 0xec,
		0x72, 0x72, 0x8f, 0xe6, 0xd5, 0x9e, 0x3d, 0x39, 0xaf, 0xb6, 0xe3, 0xfb, 0xe1, 0x8b, 0xf0, 0x6c,
		0x37, 0x8c, 0x13, 0xf5, 0x9c, 0x6e, 0x4e, 0x12, 0xb2, 0xb9, 0xb5, 0x99, 0x7a, 0x64, 0x73, 0xe9,
		0x38, 0xa7, 0x9c, 0xcd, 0x1d, 0x46, 0x32, 0x8c, 0x64, 0xf2, 0x46, 0x77, 0xa9, 0x33, 0x49, 0x88,
		0xec, 0xd9, 0x54, 0x0b, 0xde, 0x34, 0x87, 0xea, 0xb5, 0xdd, 0xab, 0x1e, 0xc9, 0x20, 0xf9, 0x74,
		0xc8, 0xe0, 0x55, 0x1f, 0x13, 0x44, 0xdc, 0x3a, 0xc1, 0x60, 0x7c, 0x37, 0xff, 0x21, 0xbd, 0x5e,
		0xda, 0xf6, 0x9d, 0x79, 0xb2, 0x64, 0x3d, 0x60, 0x02, 0x9d, 0x9c, 0xb8, 0x3f, 0xa7, 0x87, 0xdf,
		0xb8, 0xe4, 0x7d, 0x19, 0x3b, 0x5c, 0x32, 0x0c, 0xce, 0xe4, 0x40, 0xa6, 0x3e, 0xf7, 0x01, 0x59,
		0xee, 0xaf, 0x77, 0x0c, 0xaf, 0xc0, 0x79, 0x35, 0xfe, 0x15, 0xf4, 0x8e, 0x0f, 0x0f, 0x3f, 0x1d,
		0x1d, 0x1e, 0x1e, 0x1c, 0xfd, 0xeb, 0xe8, 0xe0, 0xdf, 0x1f, 0x3f, 0xf6, 0x3e, 0xf5, 0x3e, 0x1a,
		0xfc, 0x56, 0xf6, 0x9a, 0xf9, 0xf6, 0x83, 0xe9, 0x33, 0x35, 0x30, 0xc3, 0x07, 0x4e, 0x09, 0x9c,
		0x12, 0x38, 0x25, 0x70, 0x4a, 0xe0, 0x94, 0xc0, 0x29, 0x81, 0x53, 0xc2, 0xea, 0x94, 0x74, 0x9b,
		0x7a, 0x26, 0x72, 0x9e, 0x96, 0x5e, 0xd2, 0xf9, 0xab, 0xf3, 0x7a, 0x32, 0xb9, 0xb9, 0xd3, 0xf1,
		0xbd, 0x19, 0xc6, 0x36, 0x7b, 0xc2, 0x77, 0xde, 0x78, 0xe8, 0xe6, 0x89, 0x28, 0xf0, 0xcd, 0xb5,
		0xf9, 0x9d, 0xe0, 0x9b, 0xe9, 0xe0, 0x06, 0xbe, 0x19, 0xa1, 0x1d, 0x42, 0x3b, 0x84, 0x76, 0x08,
		0xed, 0x10, 0xda, 0x21, 0xb4, 0x43, 0x68, 0x67, 0x5c, 0x68, 0x07, 0xbe, 0x19, 0x4e, 0x09, 0x9c,
		0x12, 0x38, 0x25, 0x70, 0x4a, 0xe0, 0x94, 0xc0, 0x29, 0x81, 0x53, 0x62, 0x84, 0x53, 0x02, 0xbe,
		0x99, 0x42, 0x7a, 0x5a, 0x75, 0x11, 0xce, 0x67, 0xe9, 0xcd, 0x19, 0xc6, 0x38, 0xff, 0x08, 0x87,
		0x31, 0x0f, 0xe1, 0x9c, 0x4a, 0x02, 0xdf, 0x5c, 0x9b, 0xdf, 0x09, 0xbe, 0x99, 0x0e, 0x6e, 0xe0,
		0x9b, 0x11, 0xda, 0x21, 0xb4, 0x43, 0x68, 0x87, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b, 0x84, 0x76,
		0xc6, 0x85, 0x76, 0xe0, 0x9b, 0xe1, 0x94, 0xc0, 0x29, 0x81, 0x53, 0x02, 0xa7, 0x04, 0x4e, 0x09,
		0x9c, 0x12, 0x38, 0x25, 0x46, 0x38, 0x25, 0xe0, 0x9b, 0x09, 0x9c, 0xa7, 0x55, 0x17, 0xdd, 0xfc,
		0xc7, 0xf8, 0xde, 0x0c, 0x60, 0x9b, 0x23, 0x19, 0xff, 0xb4, 0xe7, 0x23, 0x68, 0xb8, 0xc6, 0x25,
		0x6c, 0x16, 0x0b, 0x1e, 0xba, 0x36, 0x7f, 0x14, 0x3c, 0x34, 0x1d, 0xf4, 0x94, 0x79, 0xe8, 0x54,
		0x0b, 0x96, 0xf7, 0x3e, 0x53, 0x7b, 0xcd, 0xb5, 0x92, 0x11, 0x12, 0xa2, 0x9b, 0x1d, 0x83, 0x4a,
		0xa2, 0x9b, 0xdd, 0x6e, 0x77, 0xd8, 0x4c, 0xf1, 0x43, 0x7a, 0x22, 0x48, 0x64, 0x5f, 0x8a, 0xc8,
		0xf6, 0xa5, 0x42, 0x23, 0xad, 0x62, 0x54, 0x5a, 0x95, 0x0a, 0x44, 0x02, 0x22, 0x01, 0x91, 0xda,
		0x8c, 0x48, 0x8a, 0x2b, 0x40, 0xea, 0x5d, 0xb9, 0x48, 0x42, 0x2d, 0xb4, 0x9f, 0x24, 0xee, 0xfb,
		0xd9, 0x92, 0xf6, 0xa8, 0xfb, 0x9d, 0x49, 0x11, 0x57, 0x95, 0xf1, 0x49, 0x06, 0xb6, 0x98, 0x3d,
		0x2d, 0x03, 0x7d, 0xc4, 0xad, 0x96, 0x39, 0xd5, 0xec, 0xed, 0x37, 0x44, 0xa7, 0x10, 0xc8, 0x35,
		0x96, 0x8e, 0xa6, 0x99, 0x30, 0x52, 0x67, 0x53, 0x53, 0x69, 0x9e, 0x69, 0x0b, 0x5b, 0xa6, 0x28,
		0x03, 0x5d, 0x6c, 0x77, 0x92, 0x6a, 0xe3, 0xe4, 0x78, 0x34, 0xf3, 0x6e, 0xb7, 0x32, 0xfe, 0x79,
		0x36, 0xbb, 0x53, 0xf3, 0x5a, 0xda, 0x8e, 0x17, 0x57, 0xd8, 0xe1, 0xf7, 0xbf, 0x85, 0x9b, 0xc8,
		0x67, 0x61, 0xf7, 0x47, 0x81, 0xab, 0xf4, 0xe2, 0xe7, 0x9e, 0xf8, 0x3a, 0x89, 0x98, 0x67, 0x0c,
		0xea, 0xad, 0x53, 0xf3, 0x8c, 0x99, 0x34, 0xc1, 0xda, 0xa5, 0x31, 0xeb, 0x49, 0xe8, 0x8b, 0xc8,
		0xf9, 0xee, 0x0b, 0x5b, 0x3e, 0x0d, 0x1d, 0x97, 0xd0, 0x42, 0x3b, 0x27, 0x09, 0xf8, 0x02, 0x7c,
		0xe9, 0x14, 0xbe, 0x0c, 0x22, 0xc7, 0x13, 0xb1, 0x1d, 0xf6, 0xd5, 0x34, 0x60, 0x09, 0x57, 0x14,
		0xd2, 0xe6, 0xfb, 0x17, 0x29, 0xdd, 0x96, 0xbc, 0xfd, 0xe6, 0xc4, 0x0c, 0x79, 0x85, 0xdf, 0x6f,
		0x4f, 0xce, 0xce, 0xef, 0x1e, 0xaf, 0xbf, 0x3c, 0x5e, 0x7c, 0xbd, 0x39, 0x39, 0xbd, 0x57, 0xdd,
		0x51, 0x69, 0x6d, 0x40, 0x4c, 0x2a, 0x62, 0x61, 0x0a, 0xf5, 0x57, 0x9f, 0xe8, 0xf1, 0xeb, 0xc9,
		0xff, 0x5c, 0xdf, 0xce, 0x1e, 0xaf, 0x89, 0xf8, 0x53, 0xd7, 0x83, 0x5d, 0x5e, 0x5f, 0xfd, 0xbe,
		0x8b, 0xcf, 0xf5, 0xc7, 0xc5, 0xfd, 0xe5, 0xf9, 0xdd, 0xdd, 0x4e, 0x3d, 0xd3, 0xd7, 0x8b, 0x2b,
		0x8e, 0x4d, 0xa8, 0xf4, 0xcd, 0x07, 0xdd, 0x18, 0xbc, 0xc7, 0xfb, 0x97, 0x25, 0x5f, 0x9f, 0x6a,
		0xc0, 0xac, 0x3d, 0x50, 0xae, 0x80, 0xa1, 0xfa, 0x42, 0xe0, 0x72, 0x9b, 0x6c, 0xfb, 0x0b, 0x29,
		0xf1, 0x32, 0xf6, 0x67, 0x54, 0xfd, 0xe2, 0x1a, 0x94, 0x7d, 0x23, 0x0b, 0x9e, 0x65, 0x5e, 0x48,
		0xc9, 0x8d, 0x50, 0xad, 0x5e, 0xa4, 0xb2, 0x33, 0xa9, 0xe2, 0x44, 0xb2, 0x39, 0x8f, 0xaa, 0x4e,
		0x23, 0xd9, 0x59, 0x24, 0x3b, 0x89, 0x9c, 0xce, 0x21, 0x2f, 0x70, 0x54, 0xad, 0xef, 0xd8, 0x77,
		0x9e, 0x43, 0xe9, 0xcd, 0x33, 0x52, 0xca, 0xd1, 0xd3, 0x8a, 0x1c, 0xc4, 0x4e, 0x88, 0x9d, 0x3a,
		0x15, 0x3b, 0x8d, 0x46, 0xd2, 0xa3, 0xc4, 0x4b, 0xc7, 0x06, 0x70, 0x29, 0x73, 0xf3, 0x64, 0xbf,
		0x08, 0x39, 0xf8, 0x41, 0x20, 0x53, 0xf2, 0xa2, 0x80, 0x08, 0x40, 0x84, 0x6e, 0x21, 0x82, 0xea,
		0x01, 0x1c, 0xc2, 0xc1, 0x1b, 0xe2, 0x81, 0x1b, 0x5a, 0x6d, 0x03, 0x43, 0x2d, 0x0f, 0xcb, 0xa9,
		0x0e, 0xae, 0x03, 0x35, 0x9c, 0x47, 0x36, 0x88, 0x39, 0x7e, 0xe3, 0x96, 0x96, 0xff, 0xa0, 0x0c,
		0xeb, 0x6a, 0xd7, 0x54, 0xb9, 0xf0, 0x60, 0x80, 0xd1, 0x16, 0xaf, 0xae, 0x3f, 0xf2, 0x84, 0xed,
		0xcb, 0xe0, 0xa7, 0xba, 0xbd, 0x5e, 0x92, 0x02, 0x53, 0x0d, 0x53, 0x0d, 0xe7, 0xbd, 0x65, 0xce,
		0xfb, 0x4c, 0x83, 0x83, 0xd0, 0x13, 0x74, 0x1c, 0x48, 0xa5, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x81,
		0x16, 0xe3, 0x80, 0x2d, 0xbc, 0x81, 0xb0, 0x87, 0x61, 0x15, 0xd6, 0x7a, 0x23, 0x24, 0x2c, 0x0a,
		0x04, 0x3a, 0x00, 0x1d, 0x80, 0x0e, 0x2d, 0x45, 0x87, 0x69, 0x8a, 0x90, 0x08, 0x09, 0xa9, 0x14,
		0xe0, 0x00, 0x70, 0x00, 0x38, 0xd0, 0x32, 0x1c, 0x90, 0x01, 0x07, 0x6b, 0xb0, 0x24, 0x05, 0x38,
		0x00, 0x1c, 0x00, 0x0e, 0xb4, 0x14, 0x07, 0x68, 0xac, 0xc1, 0x92, 0x14, 0xe0, 0x00, 0x70, 0x00,
		0x38, 0xd0, 0x62, 0x1c, 0x60, 0x61, 0x0d, 0xd6, 0x09, 0x04, 0x3a, 0x00, 0x1d, 0x80, 0x0e, 0x2d,
		0x45, 0x07, 0x1a, 0x6b, 0xb0, 0x24, 0x05, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0xb4, 0x14, 0x07, 0xe8,
		0xe5, 0xc2, 0x39, 0x49, 0xc0, 0x03, 0xe0, 0x01, 0xf0, 0xa0, 0x65, 0x78, 0xe0, 0x87, 0xae, 0xe3,
		0xdb, 0xd2, 0x53, 0xc7, 0x81, 0x4c, 0x42, 0x57, 0xf4, 0x7f, 0x72, 0x1a, 0x0b, 0x5a, 0x5f, 0xa8,
		0xf5, 0xd3, 0xc5, 0xd9, 0x39, 0x5d, 0x57, 0x6e, 0x7b, 0x66, 0x94, 0xb6, 0x2b, 0xb5, 0x7b, 0xcd,
		0xd6, 0x40, 0xa5, 0xd9, 0x52, 0x6b, 0xbb, 0x25, 0x43, 0xcb, 0x5b, 0xa7, 0xe5, 0xca, 0x9d, 0x91,
		0x31, 0x06, 0x47, 0x43, 0x87, 0x51, 0x65, 0x05, 0xe2, 0x52, 0x24, 0x76, 0x85, 0x62, 0x57, 0x2c,
		0x7e, 0x05, 0x53, 0x53, 0x34, 0x45, 0x85, 0xa3, 0x9b, 0x57, 0x3e, 0x33, 0x4b, 0x34, 0xb7, 0xea,
		0xeb, 0xa6, 0x3c, 0x76, 0x8b, 0xa9, 0xf7, 0xfa, 0x82, 0x2c, 0x20, 0x0f, 0x90, 0x07, 0xc8, 0xd3,
		0x1d, 0xe4, 0xa9, 0xa3, 0xe9, 0xaa, 0x32, 0xbc, 0xa0, 0xcd, 0xaa, 0xd5, 0xfa, 0x36, 0xab, 0x05,
		0x5d, 0x4f, 0xde, 0x2b, 0x5a, 0x1a, 0xb6, 0x5e, 0x32, 0xf7, 0xd3, 0x7b, 0x5a, 0xe8, 0xa7, 0x9a,
		0xaa, 0xb0, 0x01, 0xd1, 0xf5, 0x18, 0xe2, 0x45, 0x14, 0x09, 0xcf, 0x4e, 0x22, 0x27, 0x88, 0x87,
		0x61, 0x94, 0xd8, 0xbe, 0xf3, 0x26, 0x22, 0xf5, 0x90, 0x7b, 0xbd, 0x48, 0xb0, 0xed, 0x88, 0xc8,
		0x3b, 0xc5, 0xb6, 0xa7, 0xdb, 0xde, 0x1e, 0x46, 0x61, 0x12, 0xba, 0xa1, 0xaf, 0xea, 0xf1, 0x9a,
		0xdd, 0x35, 0x95, 0xb5, 0x91, 0xd0, 0xd4, 0x82, 0x57, 0xe4, 0xe7, 0xd5, 0xec, 0x36, 0xc9, 0x5e,
		0x93, 0xec, 0xb4, 0x9a, 0x7d, 0x6e, 0x57, 0x17, 0x37, 0xf5, 0xee, 0x63, 0x9a, 0x4d, 0x6f, 0x9d,
		0x7d, 0xdc, 0xd2, 0x6c, 0x5b, 0xe5, 0xc6, 0x6d, 0x15, 0x72, 0x74, 0x15, 0x6d, 0x64, 0x03, 0x9d,
		0xda, 0x2a, 0x07, 0xb6, 0xbb, 0xd4, 0x9f, 0xad, 0x6a, 0x60, 0xca, 0x0b, 0xa6, 0x95, 0xed, 0x97,
		0x6a, 0x96, 0xb8, 0x62, 0x18, 0x59, 0x42, 0xb7, 0xf6, 0x08, 0xcf, 0x3f, 0x33, 0x22, 0x25, 0x1e,
		0xa2, 0x9a, 0xe1, 0x50, 0x32, 0x18, 0x4a, 0x86, 0xa2, 0x9a, 0x81, 0xd8, 0xb6, 0x1e, 0x15, 0x0d,
		0x02, 0xaf, 0x21, 0x28, 0xb1, 0x8d, 0xb8, 0xc0, 0x7e, 0xb3, 0x9e, 0xad, 0xdf, 0x53, 0xc5, 0xbf,
		0x59, 0xb3, 0xaa, 0x65, 0x57, 0x93, 0xb2, 0x8a, 0x1b, 0xd6, 0x4c, 0x75, 0xad, 0x8a, 0xd7, 0x26,
		0xff, 0xe4, 0x05, 0x4f, 0xbd, 0x3f, 0x7d, 0x93, 0xb6, 0x0c, 0x12, 0x11, 0xf5, 0x1d, 0x77, 0x5b,
		0x95, 0xf6, 0x9c, 0x9f, 0x5a, 0xf3, 0xc5, 0x35, 0x2b, 0xbb, 0x39, 0xef, 0xba, 0xd5, 0x76, 0x95,
		0xb1, 0x55, 0x15, 0x6d, 0x53, 0x59, 0x5b, 0x54, 0xd9, 0xf6, 0x54, 0xb6, 0x35, 0xd5, 0x6d, 0x4b,
		0xb5, 0x5d, 0xbd, 0x2d, 0x0f, 0xb9, 0xef, 0x78, 0x4f, 0x32, 0x90, 0x63, 0x1f, 0x2a, 0x1d, 0x02,
		0x11, 0x27, 0x4e, 0x52, 0x62, 0x5d, 0xb2, 0x3e, 0x9d, 0x45, 0xdf, 0xde, 0x06, 0xe3, 0xa5, 0x5c,
		0x9b, 0xd2, 0x2e, 0x4d, 0x15, 0x57, 0x46, 0xd1, 0x85, 0xa9, 0xea, 0xba, 0x28, 0xbb, 0x2c, 0xca,
		0xae, 0x8a, 0xba, 0x8b, 0x42, 0x33, 0xc9, 0xa5, 0x5d, 0x11, 0xca, 0x8e, 0xa9, 0x1a, 0x2b, 0x97,
		0x8c, 0x8d, 0x37, 0x18, 0x8e, 0x0d, 0xc8, 0xe1, 0x3c, 0x3b, 0xd2, 0x4f, 0xe7, 0x7a, 0xb8, 0xce,
		0xd0, 0x71, 0x65, 0xf2, 0x56, 0x41, 0x5b, 0xf2, 0xdf, 0x2d, 0xa7, 0x2b, 0xbd, 0xb2, 0xba, 0xf2,
		0x01, 0xba, 0x62, 0xac, 0xae, 0x94, 0x2d, 0x09, 0xd9, 0x4f, 0xc2, 0xc4, 0xf1, 0xed, 0x58, 0xfe,
		0x57, 0xa8, 0x34, 0x07, 0xcf, 0xbe, 0xbb, 0x2b, 0x3d, 0xc1, 0x11, 0x69, 0xb6, 0xa7, 0xff, 0xf7,
		0x28, 0x90, 0x84, 0x53, 0x7e, 0xe9, 0xb7, 0x51, 0xba, 0x8b, 0x14, 0xc2, 0xce, 0x96, 0xee, 0xce,
		0xec, 0xbe, 0xad, 0xb0, 0xd5, 0xad, 0x5d, 0x1a, 0xb4, 0xa6, 0x56, 0xe6, 0x48, 0x2a, 0x6f, 0x04,
		0x54, 0x00, 0x2a, 0x5a, 0x04, 0x15, 0x68, 0xf8, 0xad, 0xfa, 0xe0, 0x68, 0xf8, 0xbd, 0x4a, 0x54,
		0xa3, 0xe1, 0xb7, 0x46, 0x68, 0x50, 0xff, 0xd6, 0x43, 0xd7, 0xa7, 0x87, 0xad, 0x21, 0x92, 0xdf,
		0xe7, 0x89, 0x92, 0xf7, 0x95, 0x03, 0xdb, 0x72, 0xac, 0xfa, 0x34, 0xc5, 0x70, 0x31, 0xbb, 0x81,
		0x9b, 0xf1, 0xf5, 0x1f, 0x4f, 0x66, 0xd7, 0x3f, 0x9d, 0x5e, 0xfe, 0xf1, 0x7e, 0x7c, 0xf9, 0xbb,
		0xf1, 0xd5, 0x8d, 0x48, 0x85, 0x69, 0x48, 0xfd, 0x94, 0x7f, 0x17, 0x2c, 0xa9, 0x9f, 0x92, 0x0b,
		0xbf, 0xaf, 0x81, 0xc2, 0xf3, 0x64, 0x24, 0xca, 0x4d, 0x11, 0xcf, 0x8c, 0xf1, 0xfc, 0x2b, 0x20,
		0xb7, 0x41, 0x6e, 0xaf, 0x5d, 0xf9, 0xb4, 0x26, 0xb2, 0xec, 0x5e, 0x31, 0x8a, 0xd6, 0x2e, 0xaa,
		0x68, 0x2b, 0xad, 0x1d, 0xd5, 0xcb, 0xe1, 0x2a, 0xeb, 0x09, 0x88, 0xed, 0x5d, 0xd2, 0x13, 0xb5,
		0xfa, 0x49, 0x73, 0x94, 0x45, 0xf6, 0x85, 0xfb, 0xe6, 0xfa, 0x95, 0xd3, 0xa5, 0xab, 0x5f, 0x84,
		0x92, 0x40, 0x49, 0x98, 0x36, 0x8b, 0x51, 0x0a, 0x52, 0xcd, 0x7c, 0x54, 0xb0, 0x17, 0x3d, 0xf8,
		0x55, 0xed, 0x57, 0x85, 0xd2, 0x89, 0xd0, 0x6a, 0x24, 0xb1, 0x12, 0x39, 0x8c, 0x42, 0x5b, 0x3e,
		0xb2, 0x17, 0x85, 0xb6, 0xea, 0x27, 0x38, 0xf9, 0x4b, 0x6d, 0xdf, 0x95, 0xd4, 0xaf, 0x6a, 0x67,
		0xbf, 0xd5, 0xcf, 0x7a, 0x43, 0xd3, 0xa0, 0x69, 0xbb, 0xa9, 0x69, 0x1c, 0x45, 0xed, 0xa5, 0xd5,
		0x09, 0xa5, 0xed, 0xcc, 0xfc, 0x66, 0xd9, 0xe0, 0x53, 0x91, 0xd1, 0xdc, 0x7e, 0x20, 0x58, 0xcd,
		0xc5, 0x0e, 0x87, 0x22, 0x4a, 0x17, 0xc8, 0xf1, 0xab, 0x46, 0xa1, 0xf9, 0xaf, 0x22, 0x0e, 0x45,
		0x1c, 0xca, 0xb6, 0x5d, 0x8c, 0x8a, 0x44, 0xe3, 0xd1, 0x70, 0x18, 0x46, 0x89, 0xf0, 0xec, 0x15,
		0xce, 0xe9, 0x9f, 0x91, 0xe3, 0xcb, 0xbe, 0x2c, 0x71, 0x20, 0x7e, 0x6e, 0x6a, 0xb6, 0xcb, 0x82,
		0x22, 0x41, 0x91, 0xca, 0xb2, 0x9e, 0x65, 0x77, 0xcd, 0x92, 0x3e, 0x95, 0xc8, 0x92, 0xef, 0x5f,
		0x78, 0x22, 0x48, 0x64, 0xf2, 0xf6, 0x9b, 0x13, 0x2b, 0x38, 0xf6, 0x97, 0x27, 0x7f, 0x9d, 0xdf,
		0x3e, 0xde, 0xdc, 0x5e, 0xdf, 0x5f, 0x9f, 0x5e, 0x5f, 0x3e, 0xfe, 0xef, 0xb7, 0x93, 0xcb, 0x8b,
		0x2f, 0x17, 0xe7, 0xb7, 0x65, 0xdf, 0x63, 0x9a, 0xe2, 0x8f, 0x2b, 0xd5, 0x90, 0x28, 0x16, 0x81,
		0xad, 0xbb, 0xd3, 0xc7, 0x6f, 0x57, 0x77, 0x37, 0xe7, 0xa7, 0xe3, 0xff, 0x3f, 0xe3, 0x76, 0x68,
		0x1f, 0x34, 0xef, 0x2a, 0x8a, 0x77, 0x57, 0xf1, 0x45, 0xf7, 0xca, 0xbe, 0x51, 0x85, 0x28, 0x67,
		0x11, 0x06, 0x9e, 0x64, 0x60, 0x8b, 0xd9, 0x5d, 0x56, 0xf0, 0xd3, 0x29, 0x31, 0xce, 0x12, 0x28,
		0xf4, 0xea, 0x3c, 0x1a, 0x5e, 0x83, 0xef, 0xac, 0x64, 0x08, 0x27, 0xf5, 0x13, 0xc3, 0x30, 0x19,
		0x63, 0x83, 0xe3, 0x2b, 0x9c, 0x5e, 0x59, 0x2b, 0x01, 0x67, 0x58, 0x40, 0xdd, 0x16, 0x6f, 0x37,
		0x9c, 0x61, 0x01, 0xb5, 0x84, 0x33, 0x2c, 0xcc, 0xcc, 0xa8, 0xf2, 0x36, 0xa6, 0x6c, 0x67, 0xa6,
		0x6d, 0x4d, 0xdd, 0xde, 0x6c, 0xdb, 0x9c, 0x6d, 0xbb, 0xf3, 0x6d, 0xfb, 0x6a, 0xdb, 0xbf, 0xa2,
		0x1a, 0xa8, 0x33, 0xad, 0xb9, 0x37, 0x8f, 0x33, 0x2c, 0xd3, 0x7b, 0xc1, 0x19, 0x16, 0x40, 0x05,
		0xa0, 0x62, 0xa3, 0x31, 0xc4, 0x19, 0x16, 0xc5, 0x07, 0xc7, 0x19, 0x96, 0xd5, 0xa8, 0x1a, 0x67,
		0x58, 0x34, 0x42, 0x83, 0xfa, 0xb7, 0x70, 0x86, 0x65, 0x4d, 0x5e, 0x71, 0x1d, 0x5d, 0x52, 0xef,
		0x49, 0x96, 0xf4, 0xdc, 0xca, 0xcd, 0xec, 0x26, 0x70, 0x9c, 0xe5, 0xbd, 0x22, 0x8b, 0xc5, 0xff,
		0x0e, 0x74, 0x24, 0x85, 0x4b, 0xf5, 0xa5, 0xac, 0xd2, 0x0d, 0x10, 0xe7, 0x59, 0x76, 0x88, 0xbc,
		0xab, 0x9e, 0xb1, 0x2a, 0xd9, 0x2f, 0xb2, 0x64, 0x49, 0x0d, 0x57, 0xa7, 0xbe, 0xed, 0x7d, 0x20,
		0xcb, 0xa5, 0x51, 0x2a, 0x15, 0xc7, 0x54, 0x22, 0xf6, 0xcb, 0x11, 0xfa, 0x35, 0x74, 0x22, 0xac,
		0xd6, 0xa9, 0x8f, 0x00, 0x72, 0x94, 0x3e, 0x84, 0x8b, 0x2d, 0x85, 0xd3, 0x9e, 0x86, 0x5b, 0x1b,
		0x10, 0xe6, 0xbe, 0x61, 0x4a, 0xe7, 0xc1, 0x12, 0x03, 0x68, 0x4d, 0xee, 0x3d, 0x98, 0xdd, 0x7e,
		0x5d, 0xdd, 0x07, 0x83, 0x97, 0xec, 0x9a, 0x59, 0x63, 0xd1, 0xf2, 0xe7, 0x06, 0x0a, 0xbe, 0xdc,
		0x96, 0x5c, 0x54, 0x85, 0x49, 0xc5, 0x6d, 0x34, 0x68, 0xdb, 0x37, 0x12, 0x8f, 0x49, 0x2b, 0x9d,
		0x8f, 0x52, 0x2b, 0x72, 0x56, 0x28, 0x6f, 0x46, 0x0e, 0x0a, 0x39, 0x28, 0xe5, 0x6d, 0x0a, 0x6a,
		0x19, 0xd4, 0x32, 0xa8, 0xe5, 0x52, 0x6f, 0x7e, 0x37, 0x86, 0x20, 0x13, 0xa6, 0x2f, 0xd2, 0xa7,
		0x2e, 0x42, 0xe3, 0xa1, 0xf1, 0xd0, 0x78, 0xe3, 0xb8, 0x6a, 0xd5, 0x69, 0x87, 0x98, 0x96, 0x54,
		0x13, 0xe3, 0xbf, 0xca, 0x3e, 0xbc, 0x2f, 0x08, 0x44, 0xab, 0xce, 0x26, 0xdc, 0x4e, 0xbb, 0x2c,
		0x4c, 0x3c, 0x4a, 0xff, 0x7d, 0xf5, 0x32, 0xfb, 0x64, 0x36, 0x13, 0xa9, 0xfc, 0xec, 0x41, 0x9e,
		0x52, 0xd7, 0x2c, 0xc8, 0x53, 0xa8, 0xf0, 0x2b, 0x1d, 0xfd, 0x92, 0x62, 0xab, 0x0f, 0x75, 0xc5,
		0x56, 0x15, 0x1f, 0x68, 0xd7, 0xa2, 0xab, 0xf2, 0xe1, 0xbe, 0x21, 0xf1, 0x55, 0xa6, 0xae, 0x95,
		0x26, 0x79, 0xad, 0xe7, 0x21, 0x2b, 0x0e, 0x56, 0x6a, 0xb7, 0xf7, 0xa5, 0xb0, 0xd9, 0xbb, 0xe4,
		0x7f, 0x55, 0x57, 0x86, 0xb6, 0x78, 0x60, 0xbe, 0x70, 0xfa, 0x91, 0xe8, 0x53, 0x5c, 0xb0, 0x23,
		0x85, 0xef, 0xde, 0x14, 0x18, 0xe3, 0xcf, 0x99, 0x31, 0x5e, 0x5c, 0xf2, 0xcf, 0x39, 0xd3, 0x5c,
		0xfc, 0xeb, 0x95, 0x8f, 0x53, 0xed, 0x6d, 0x93, 0x6f, 0xa8, 0x82, 0x3b, 0x70, 0x0f, 0x4d, 0x72,
		0x0f, 0x55, 0x1c, 0x06, 0x06, 0x17, 0xf1, 0xbe, 0x12, 0x36, 0x61, 0x58, 0x26, 0xa8, 0x77, 0x0c,
		0xcb, 0xd4, 0xc3, 0x32, 0xb4, 0xb0, 0xa4, 0xaa, 0x0c, 0xb0, 0xb1, 0x94, 0x51, 0x6d, 0xc5, 0xb1,
		0x7d, 0x2d, 0x07, 0x24, 0x4b, 0x46, 0xb3, 0x55, 0xa3, 0x58, 0x24, 0x9d, 0xb5, 0x00, 0x4e, 0x0b,
		0x92, 0xce, 0xdf, 0xc3, 0x51, 0xe0, 0x39, 0xd1, 0x9b, 0x1d, 0x84, 0x9e, 0xb0, 0x85, 0x37, 0xd8,
		0x36, 0x61, 0x73, 0xed, 0xeb, 0x5b, 0x2b, 0x09, 0x04, 0x0a, 0x08, 0x94, 0x26, 0x08, 0x94, 0x95,
		0x7d, 0x48, 0xe4, 0x51, 0x0a, 0xa5, 0x81, 0x4e, 0x01, 0x9d, 0x02, 0x3a, 0xa5, 0x85, 0x74, 0xca,
		0x58, 0x9b, 0x57, 0x3e, 0x0a, 0x5f, 0x02, 0xe1, 0xad, 0x1a, 0xaf, 0x3a, 0x59, 0x98, 0x77, 0x15,
		0xa1, 0x8d, 0x01, 0xcf, 0x00, 0x62, 0x00, 0x31, 0x80, 0xd8, 0x0e, 0x81, 0x98, 0x29, 0x00, 0x85,
		0xe4, 0x15, 0x80, 0x0a, 0x40, 0x05, 0xa0, 0xda, 0x85, 0xe4, 0x95, 0x95, 0xb9, 0x4a, 0x16, 0x21,
		0x08, 0x44, 0x6e, 0x8b, 0x40, 0xfd, 0x92, 0x28, 0xe0, 0x6c, 0x53, 0x12, 0x19, 0x2a, 0x35, 0x62,
		0x78, 0xf6, 0xef, 0xc7, 0xdf, 0xa6, 0x57, 0xbf, 0x0a, 0x3d, 0x71, 0xee, 0x0d, 0x36, 0x9d, 0x49,
		0x53, 0x20, 0xe2, 0x4b, 0xd0, 0xa5, 0x2a, 0xf3, 0xb3, 0xf2, 0x10, 0xa5, 0x34, 0x16, 0xc9, 0xa2,
		0xa4, 0xc0, 0x40, 0xf0, 0x75, 0x83, 0xe0, 0x53, 0x4f, 0x83, 0xa9, 0x6f, 0x4a, 0x4b, 0xb1, 0xd9,
		0x53, 0xc5, 0x26, 0x4f, 0xbf, 0x6a, 0xb4, 0x11, 0x8a, 0xae, 0x76, 0xaf, 0xea, 0x06, 0x24, 0x78,
		0x9a, 0x0c, 0xad, 0x57, 0x59, 0xfd, 0x4c, 0x95, 0x56, 0xac, 0x7a, 0xe3, 0xa7, 0x06, 0x2c, 0x37,
		0x8f, 0x8d, 0x91, 0xc1, 0x4f, 0x05, 0xa3, 0x32, 0xfe, 0x16, 0xd2, 0x44, 0xb0, 0x22, 0x0c, 0x10,
		0x5a, 0x39, 0x4d, 0xe4, 0x78, 0x4f, 0x32, 0x90, 0x71, 0x12, 0x39, 0x89, 0x7c, 0x2e, 0x3b, 0x2e,
		0x71, 0xed, 0x16, 0x28, 0x94, 0x86, 0x33, 0x4f, 0xa0, 0x2d, 0x76, 0xf6, 0xcc, 0x13, 0xc3, 0x8e,
		0xb7, 0x76, 0xa9, 0xe5, 0x66, 0xc1, 0x30, 0x72, 0x75, 0x34, 0x51, 0x19, 0x6c, 0x4e, 0x30, 0x97,
		0xca, 0x66, 0x13, 0x58, 0x02, 0x2c, 0xa9, 0x6c, 0x7a, 0xb3, 0x2f, 0x2a, 0x74, 0x62, 0x5f, 0xbf,
		0x79, 0x54, 0x5a, 0xd7, 0x31, 0xa8, 0x0c, 0xd9, 0x0c, 0x73, 0xa8, 0x10, 0xb3, 0x2a, 0x71, 0xa9,
		0x14, 0xbb, 0x6a, 0xb1, 0xab, 0x18, 0xbf, 0xaa, 0xa9, 0xa9, 0x9c, 0xa2, 0xea, 0x91, 0x55, 0x30,
		0x13, 0xa0, 0xd4, 0x59, 0x7e, 0xed, 0xf6, 0x53, 0x6c, 0xbf, 0xcd, 0xe0, 0x0d, 0xb3, 0xab, 0x25,
		0xa7, 0x7a, 0x6a, 0x52, 0x53, 0x6e, 0x75, 0xd5, 0xa6, 0xb6, 0xda, 0xd4, 0x57, 0x9f, 0x1a, 0xd3,
		0xd4, 0x99, 0xa8, 0xd6, 0x74, 0x6f, 0x7d, 0xed, 0xce, 0xa3, 0x76, 0xca, 0xe7, 0x74, 0xe3, 0x99,
		0xdc, 0x7a, 0xbe, 0x57, 0x46, 0x69, 0x07, 0xad, 0xd6, 0x1e, 0x69, 0xed, 0x7b, 0x52, 0x69, 0x97,
		0x04, 0x28, 0x05, 0x94, 0x02, 0x4a, 0x6b, 0x83, 0x52, 0xe5, 0x49, 0x02, 0xeb, 0xf4, 0xf4, 0x98,
		0x41, 0x14, 0x6d, 0xd2, 0xc0, 0xea, 0x0f, 0x8f, 0x12, 0x58, 0x5c, 0x93, 0x08, 0x34, 0x01, 0x5c,
		0x4e, 0x2c, 0xd3, 0xa4, 0x82, 0x9c, 0x5c, 0xc6, 0x5e, 0xfa, 0xcc, 0xea, 0xb1, 0xfc, 0xaa, 0x9c,
		0xd7, 0xd6, 0xbd, 0x2a, 0xfe, 0xc9, 0x07, 0xb5, 0xbe, 0xbd, 0x3d, 0x33, 0xa4, 0x3c, 0x34, 0xe5,
		0x78, 0xd5, 0x1a, 0x34, 0x2b, 0x16, 0x23, 0xe5, 0xe4, 0x90, 0x8a, 0x93, 0x7c, 0x19, 0xfc, 0x7c,
		0x9f, 0xe7, 0x7b, 0xdf, 0x93, 0xf9, 0x2c, 0x8b, 0x56, 0xb6, 0x74, 0x29, 0x83, 0x9f, 0x8f, 0x27,
		0xb3, 0xfb, 0x52, 0x9d, 0xce, 0x40, 0x7f, 0xc1, 0x7a, 0xa9, 0x4b, 0xe2, 0x16, 0xd0, 0xf2, 0xea,
		0x55, 0xb8, 0x6f, 0xee, 0xf7, 0x6c, 0x42, 0x2d, 0x84, 0x1b, 0xc6, 0x89, 0xed, 0xfe, 0x70, 0xc6,
		0x70, 0x2b, 0x22, 0x19, 0x27, 0xd2, 0x55, 0xcf, 0xa8, 0x14, 0x09, 0xeb, 0x4a, 0x4a, 0x05, 0x75,
		0xe5, 0x1b, 0xe3, 0x1a, 0x53, 0xeb, 0xca, 0x95, 0xd3, 0x2a, 0xe9, 0x5e, 0x77, 0xfc, 0x41, 0x18,
		0xc9, 0xe4, 0xc7, 0x13, 0x3d, 0xb5, 0xb2, 0x22, 0x8f, 0x96, 0x5e, 0x39, 0xd8, 0x99, 0xf4, 0x0a,
		0x41, 0xad, 0xb8, 0x69, 0x86, 0x36, 0x26, 0x58, 0xd4, 0xd5, 0xae, 0x19, 0x6f, 0x91, 0x4c, 0x1c,
		0xd0, 0xbb, 0xc5, 0xe6, 0x4c, 0xd1, 0x71, 0x5d, 0x4e, 0xd8, 0x3b, 0x45, 0x14, 0x52, 0x6a, 0x1f,
		0x5d, 0x0c, 0x40, 0x0a, 0x5d, 0xa4, 0x81, 0x3d, 0xc0, 0x1e, 0x60, 0x4f, 0x57, 0xb1, 0x87, 0x96,
		0x89, 0x59, 0x06, 0x1f, 0x4a, 0x1a, 0x06, 0xe8, 0x03, 0xf4, 0x01, 0xfa, 0xb4, 0x15, 0x7d, 0xb4,
		0x86, 0x78, 0xd3, 0x63, 0xa7, 0xaa, 0xfe, 0x8d, 0xda, 0xb9, 0xa1, 0xec, 0xdb, 0x94, 0xf3, 0x43,
		0xb9, 0x57, 0xdb, 0x53, 0x45, 0x47, 0x06, 0x20, 0x60, 0x3c, 0x57, 0xa4, 0x05, 0x06, 0x28, 0xe7,
		0x8c, 0xea, 0x35, 0x9c, 0x94, 0xf3, 0x47, 0x99, 0x10, 0xa5, 0x73, 0x48, 0xed, 0x65, 0x70, 0xe9,
		0xd4, 0x22, 0x07, 0x85, 0x7b, 0x1a, 0xc6, 0xc9, 0xe9, 0xf2, 0x4d, 0x18, 0xc0, 0xe1, 0x7a, 0xc2,
		0x97, 0xcf, 0x22, 0x7a, 0xb3, 0xc3, 0xf1, 0x9e, 0x60, 0x63, 0x73, 0x37, 0x8b, 0xad, 0xf9, 0xd8,
		0x0d, 0x78, 0x5d, 0xf0, 0xba, 0xb5, 0xb8, 0x53, 0x3b, 0x36, 0x60, 0xcc, 0x93, 0x91, 0x70, 0x95,
		0x80, 0x7b, 0x8e, 0x03, 0x99, 0x08, 0xe8, 0x3c, 0x74, 0x7e, 0xa7, 0x75, 0xbe, 0x1f, 0x46, 0x2f,
		0x4e, 0xe4, 0xc9, 0x60, 0x60, 0xab, 0xee, 0x7a, 0x6b, 0x97, 0x8e, 0xdb, 0x89, 0x28, 0x0a, 0xf9,
		0x1c, 0x8a, 0x42, 0x69, 0xc0, 0x14, 0x60, 0x0a, 0xfc, 0x08, 0xe3, 0xfd, 0x08, 0xdf, 0x49, 0x44,
		0xe0, 0xbe, 0xb1, 0x61, 0xc1, 0x1a, 0x79, 0xa8, 0x16, 0x01, 0x1a, 0xec, 0x62, 0xb5, 0x48, 0x5f,
		0xbe, 0x0a, 0xcf, 0x66, 0x52, 0xa2, 0xbc, 0xdb, 0xb2, 0x49, 0x7a, 0xc3, 0xf9, 0x94, 0x0f, 0xc8,
		0xa7, 0xe8, 0x53, 0x41, 0x2d, 0x44, 0xaa, 0x85, 0x7c, 0x8a, 0xd5, 0xbd, 0x6c, 0xee, 0xdf, 0x32,
		0x49, 0xe8, 0xe4, 0x61, 0x6e, 0xf1, 0x8a, 0xc5, 0x02, 0x93, 0x80, 0x49, 0xc0, 0x24, 0x60, 0xd2,
		0x96, 0x7b, 0xfc, 0x67, 0x24, 0x64, 0x30, 0xd0, 0xe6, 0x36, 0x6d, 0x16, 0x8f, 0x3a, 0x14, 0x60,
		0x14, 0x30, 0x0a, 0x18, 0xb5, 0xe5, 0x1e, 0x93, 0xc8, 0xe9, 0xf7, 0xa5, 0x6b, 0x0f, 0xa3, 0x70,
		0x28, 0xa2, 0xe4, 0x8d, 0xa9, 0x1a, 0xb7, 0x58, 0x2c, 0x30, 0x09, 0x98, 0x04, 0x4c, 0x02, 0x26,
		0x6d, 0xb9, 0xc7, 0x17, 0x27, 0xf0, 0x34, 0xc4, 0x72, 0xc5, 0x62, 0x11, 0xcb, 0x01, 0x93, 0x80,
		0x49, 0xdd, 0xc2, 0xa4, 0x3a, 0xea, 0x75, 0x39, 0x3c, 0x20, 0xd4, 0xee, 0xe6, 0x01, 0x01, 0xb5,
		0xbb, 0x14, 0xd3, 0x8a, 0xda, 0xdd, 0xea, 0xb5, 0xbb, 0x6c, 0x04, 0x0b, 0xb5, 0x7c, 0xf7, 0x72,
		0x72, 0x23, 0xe6, 0x55, 0xf0, 0x52, 0xa6, 0x07, 0xe5, 0x80, 0x86, 0x36, 0xb0, 0xc5, 0x42, 0x95,
		0x0d, 0xf2, 0xea, 0x75, 0x9b, 0x7c, 0x86, 0xe9, 0x7e, 0xe4, 0x4d, 0x6f, 0x35, 0x54, 0xb8, 0x07,
		0x8f, 0x06, 0x1e, 0x4d, 0xc7, 0x3d, 0x1a, 0x3d, 0x36, 0x55, 0xf6, 0x85, 0xfb, 0xe6, 0xfa, 0xe4,
		0xa9, 0x33, 0xab, 0x82, 0xba, 0x62, 0x4b, 0x31, 0x24, 0x62, 0x83, 0x25, 0xdd, 0xd5, 0x81, 0x33,
		0xb4, 0xcd, 0x6e, 0xed, 0x52, 0xf1, 0xbb, 0x1f, 0xc6, 0x31, 0x5f, 0xbd, 0x6b, 0x81, 0x30, 0x38,
		0xe5, 0x80, 0x12, 0x94, 0xbe, 0x33, 0x32, 0x9a, 0x7a, 0x70, 0x80, 0x16, 0x8d, 0x13, 0xc2, 0xef,
		0x1e, 0x66, 0xd4, 0xc1, 0x65, 0x30, 0xb6, 0xa4, 0x9d, 0xa9, 0xf3, 0x0f, 0x9a, 0xfe, 0x60, 0x9a,
		0x94, 0xd5, 0xac, 0x82, 0xa9, 0xc7, 0xdb, 0x16, 0x12, 0x88, 0xb5, 0xf1, 0x14, 0x29, 0x50, 0x30,
		0x55, 0x57, 0x2d, 0xc8, 0x02, 0xf2, 0x00, 0x79, 0x80, 0x3c, 0xdd, 0x41, 0x9e, 0x3a, 0x4a, 0x17,
		0x94, 0xe1, 0x85, 0x95, 0xdd, 0x57, 0xa4, 0x72, 0x91, 0xe1, 0xae, 0x9e, 0xe1, 0x56, 0x4d, 0x37,
		0x11, 0xf3, 0xd9, 0xa9, 0x1a, 0x9a, 0x10, 0x21, 0x87, 0x9e, 0xb0, 0x85, 0x37, 0x10, 0xf6, 0x30,
		0x94, 0x41, 0x42, 0x08, 0x96, 0x57, 0x04, 0xe1, 0x38, 0x38, 0x22, 0xe7, 0x5d, 0x3c, 0x0e, 0xbe,
		0xb2, 0xcf, 0xed, 0xd1, 0x48, 0x7a, 0x74, 0xaf, 0xb6, 0x50, 0x2a, 0xfc, 0x5b, 0x94, 0xe7, 0x36,
		0xaa, 0x82, 0x6d, 0xf7, 0x71, 0x7d, 0xe1, 0xf4, 0x23, 0xd1, 0xe7, 0x70, 0x72, 0x8f, 0x08, 0x32,
		0x6e, 0x0a, 0xdc, 0x93, 0xcf, 0x99, 0x37, 0xb2, 0xf8, 0x8a, 0x3e, 0xe7, 0x9d, 0x95, 0xc2, 0x5f,
		0xaf, 0x7c, 0x3c, 0x46, 0x8f, 0x95, 0x8f, 0xc2, 0x97, 0x40, 0x78, 0xf6, 0x0a, 0xac, 0xac, 0xfc,
		0x4d, 0x0a, 0x32, 0x06, 0xd3, 0x06, 0xe9, 0xdd, 0x33, 0xe2, 0x2b, 0x40, 0x15, 0xa0, 0x0a, 0x50,
		0x05, 0xa8, 0x2a, 0x83, 0xaa, 0xe9, 0x80, 0x99, 0x3d, 0x28, 0x0f, 0x68, 0x2e, 0x8b, 0x03, 0x70,
		0x02, 0x38, 0x01, 0x9c, 0x00, 0xce, 0xad, 0xc0, 0x59, 0x2b, 0x4a, 0xd6, 0x72, 0x9c, 0x6d, 0x11,
		0x07, 0xad, 0xcc, 0x95, 0xb4, 0x18, 0x82, 0x76, 0x93, 0x6a, 0xc2, 0x3f, 0xa0, 0x26, 0xbc, 0x1c,
		0x8e, 0x7d, 0x40, 0x4d, 0x38, 0xa7, 0x96, 0x19, 0x90, 0x03, 0x20, 0x71, 0xd7, 0x16, 0x47, 0x3a,
		0x20, 0xf4, 0xc4, 0xb9, 0x37, 0x10, 0x37, 0xe9, 0xf5, 0x0d, 0xc8, 0x0b, 0x84, 0x43, 0x11, 0xa5,
		0xef, 0xc4, 0xf1, 0xa9, 0x45, 0xf8, 0x79, 0x51, 0x28, 0xc3, 0xd7, 0x0c, 0xa9, 0xa8, 0xa9, 0x53,
		0x05, 0x23, 0x7a, 0xe5, 0x2c, 0x75, 0xbb, 0x5b, 0xbb, 0x54, 0x88, 0x1f, 0x89, 0xa1, 0x70, 0x12,
		0x3b, 0x9b, 0x47, 0xc3, 0x55, 0x93, 0xbf, 0x45, 0x2e, 0xca, 0xf3, 0x01, 0x31, 0x28, 0xcf, 0xdf,
		0x88, 0x2c, 0xc7, 0x46, 0xa0, 0x43, 0x2c, 0x7d, 0x29, 0x02, 0x57, 0xd8, 0x89, 0xca, 0x92, 0x2c,
		0xc0, 0xc1, 0xb2, 0xa0, 0xae, 0x14, 0xed, 0x43, 0xff, 0x5b, 0xa9, 0xff, 0xca, 0xc5, 0x07, 0xc3,
		0x28, 0x4c, 0x26, 0xa3, 0x6d, 0xd4, 0x14, 0x26, 0xb7, 0x8b, 0x56, 0x05, 0x82, 0xe4, 0x05, 0xc9,
		0x0b, 0x92, 0xb7, 0x71, 0x85, 0xa2, 0xc6, 0x00, 0xc4, 0x58, 0xa0, 0x5e, 0xc6, 0x2a, 0x12, 0x71,
		0x12, 0x4e, 0x42, 0x26, 0x7b, 0x18, 0xfa, 0xd2, 0x7d, 0xa3, 0xe3, 0x5a, 0x81, 0x4c, 0x40, 0x1b,
		0xa0, 0x0d, 0xd0, 0x66, 0x82, 0x4e, 0xb5, 0x17, 0xdd, 0x76, 0x9c, 0x07, 0xa7, 0x85, 0x51, 0x16,
		0x03, 0x0f, 0x7e, 0x9b, 0xdd, 0x41, 0xba, 0x6f, 0x4d, 0x88, 0x51, 0x65, 0xfc, 0x93, 0x8f, 0xb6,
		0x2a, 0x10, 0x86, 0x42, 0x79, 0xc4, 0xaa, 0xbb, 0x18, 0xab, 0x16, 0xec, 0x75, 0xa6, 0x23, 0xa0,
		0x6b, 0x25, 0xc3, 0xc5, 0x83, 0x8b, 0x07, 0x17, 0x8f, 0xb0, 0x7b, 0xba, 0x71, 0x1c, 0x3d, 0xc5,
		0x0f, 0xe9, 0x89, 0x20, 0x91, 0x7d, 0x29, 0x22, 0xdb, 0x97, 0x71, 0xc2, 0x84, 0x4a, 0xab, 0x52,
		0x81, 0x48, 0x40, 0x24, 0x20, 0x52, 0x9b, 0x11, 0x49, 0x71, 0x05, 0x48, 0x75, 0x7d, 0x99, 0x14,
		0x8e, 0xfa, 0xbe, 0xdc, 0x92, 0xf6, 0xa8, 0xfb, 0x9d, 0x49, 0x11, 0x2d, 0x3d, 0x75, 0x7f, 0xda,
		0xd4, 0xd2, 0x62, 0xea, 0x0d, 0x4b, 0x53, 0x49, 0xc2, 0xa6, 0xb4, 0xb8, 0xea, 0x03, 0x33, 0x61,
		0xa4, 0x3a, 0x41, 0x53, 0x79, 0x98, 0x69, 0xd5, 0x2f, 0x53, 0x94, 0x81, 0xae, 0xcf, 0xda, 0x34,
		0x1d, 0x5d, 0x9f, 0x51, 0xe1, 0x5b, 0x96, 0xd9, 0x24, 0x13, 0x6f, 0x2c, 0xec, 0xa6, 0x8c, 0x7f,
		0x9a, 0x37, 0xc1, 0x22, 0x16, 0xd1, 0xb3, 0x88, 0x6c, 0x19, 0x24, 0x62, 0x10, 0xc9, 0xe4, 0xcd,
		0x1e, 0x46, 0xa1, 0x2b, 0x18, 0x1b, 0xe8, 0x96, 0xbd, 0x00, 0xaa, 0xf6, 0xc0, 0x84, 0xa2, 0x6a,
		0x8f, 0x31, 0x88, 0xd1, 0x83, 0x17, 0x49, 0x98, 0x38, 0xbe, 0x3d, 0x0c, 0x13, 0x11, 0x24, 0xd2,
		0xf1, 0x6d, 0xd7, 0x19, 0x3a, 0xae, 0x4c, 0xde, 0xd4, 0x01, 0x62, 0xad, 0xc4, 0xae, 0xe4, 0x46,
		0x70, 0x50, 0x60, 0x03, 0x1e, 0xec, 0x58, 0xf3, 0xdd, 0xc9, 0x66, 0x8f, 0xe5, 0x7f, 0x39, 0x46,
		0x0d, 0xcf, 0x65, 0xd1, 0x98, 0xc6, 0x1e, 0x9a, 0x61, 0x82, 0x67, 0x6c, 0x5b, 0x33, 0x4c, 0x55,
		0x15, 0xcc, 0x04, 0x8c, 0x02, 0x99, 0xf0, 0xf1, 0x6a, 0xa9, 0x34, 0xe2, 0x1b, 0xa1, 0x11, 0xff,
		0x6c, 0x6a, 0xc9, 0xa9, 0x9e, 0x9a, 0xd4, 0x54, 0x07, 0x1b, 0xa9, 0x45, 0x6d, 0xb5, 0xf2, 0x91,
		0x7a, 0xd4, 0x98, 0xce, 0x50, 0x12, 0x59, 0x4a, 0x8b, 0x25, 0x89, 0x90, 0xdb, 0x79, 0x33, 0xbf,
		0xd2, 0x66, 0x50, 0x55, 0x8b, 0xa9, 0x88, 0x2d, 0x93, 0x45, 0x2b, 0x66, 0x6b, 0x96, 0x54, 0xa6,
		0x0d, 0x14, 0xc8, 0xbd, 0x27, 0xca, 0x60, 0x01, 0x40, 0x29, 0xa0, 0x14, 0x50, 0xaa, 0x1d, 0x4a,
		0x47, 0x32, 0x48, 0x3e, 0x1d, 0x32, 0x62, 0xe8, 0x31, 0x83, 0xa8, 0x5b, 0x27, 0x18, 0x8c, 0xef,
		0xee, 0x3f, 0x2c, 0x9b, 0x81, 0x47, 0x09, 0xac, 0x69, 0x16, 0x87, 0x4d, 0xab, 0x98, 0x01, 0x2e,
		0x27, 0xf6, 0xcf, 0x29, 0x96, 0x73, 0xcb, 0xfd, 0x12, 0x39, 0xe9, 0xb9, 0x98, 0x33, 0x39, 0x90,
		0x69, 0xe6, 0xe2, 0x80, 0x4d, 0xfe, 0xaf, 0x77, 0x8c, 0xaf, 0xca, 0x79, 0x6d, 0xdd, 0xab, 0xea,
		0x1d, 0x1f, 0x1e, 0x7e, 0x3a, 0x3a, 0x3c, 0x3c, 0x38, 0xfa, 0xd7, 0xd1, 0xc1, 0xbf, 0x3f, 0x7e,
		0xec, 0x7d, 0xea, 0x7d, 0x6c, 0xd1, 0xdb, 0xdb, 0x33, 0x43, 0xca, 0x43, 0x53, 0x8e, 0x57, 0xad,
		0x41, 0x33, 0x31, 0x17, 0x97, 0xc9, 0xa1, 0xe7, 0xe4, 0xd6, 0xb1, 0xbe, 0xef, 0xc9, 0xac, 0x96,
		0xc5, 0x90, 0xab, 0xbb, 0x1f, 0xdf, 0xc4, 0xcd, 0xec, 0xe6, 0x4e, 0xa7, 0xf7, 0x36, 0xf9, 0xf8,
		0x6e, 0x7c, 0x6b, 0x38, 0x73, 0xa2, 0x75, 0x17, 0x34, 0x90, 0x9e, 0x2d, 0x7e, 0xe5, 0x26, 0xa4,
		0x68, 0x93, 0xc8, 0x09, 0x62, 0x39, 0x7e, 0x4d, 0xc2, 0xb3, 0x8b, 0xe6, 0xa5, 0xab, 0xa7, 0x5e,
		0xb6, 0x49, 0xae, 0x39, 0x29, 0x8b, 0x56, 0x0a, 0x48, 0xca, 0xd6, 0x12, 0xd9, 0x34, 0x97, 0x94,
		0x45, 0x87, 0x48, 0xaa, 0x92, 0xa0, 0x43, 0x24, 0xc1, 0x0b, 0x34, 0xa1, 0x7e, 0x4c, 0x8b, 0x91,
		0x1c, 0x05, 0xce, 0xb3, 0x23, 0x7d, 0xe7, 0xbb, 0x2f, 0xec, 0x44, 0x3e, 0x09, 0xb6, 0xfa, 0xa5,
		0x6d, 0x82, 0x51, 0xb7, 0x04, 0x13, 0x09, 0x13, 0xc9, 0x69, 0x22, 0xf5, 0xe0, 0x83, 0x4a, 0x53,
		0xfc, 0x39, 0x08, 0x28, 0x34, 0x77, 0x6e, 0xad, 0x33, 0x8c, 0x7a, 0xa4, 0x0d, 0x7a, 0xbe, 0xab,
		0x8d, 0x4b, 0x15, 0xa7, 0x3c, 0x18, 0xa5, 0xe3, 0xcf, 0x8e, 0x2f, 0xbd, 0x49, 0x8b, 0x92, 0x27,
		0xe1, 0xfe, 0x70, 0x02, 0x19, 0x3f, 0xa9, 0xeb, 0x7c, 0xa1, 0x34, 0xf4, 0x6b, 0x00, 0x0a, 0xec,
		0x62, 0xbf, 0x86, 0x15, 0xf2, 0xc7, 0xf1, 0xfe, 0x76, 0x5c, 0x11, 0xb8, 0x6f, 0xf6, 0x54, 0x0b,
		0x04, 0xc3, 0x44, 0x99, 0x12, 0xd7, 0xc0, 0x89, 0x69, 0x9c, 0x98, 0x6e, 0x54, 0x3d, 0xd5, 0x83,
		0x71, 0x0b, 0x27, 0xa6, 0x6b, 0x23, 0x31, 0x58, 0x0c, 0xbd, 0x0e, 0x83, 0x0f, 0x44, 0x02, 0x22,
		0x01, 0x91, 0xba, 0x8d, 0x48, 0x51, 0xf8, 0x7d, 0x14, 0x27, 0x81, 0x88, 0x63, 0x56, 0x48, 0x5a,
		0x10, 0x0b, 0x4c, 0x02, 0x26, 0x01, 0x93, 0xba, 0x85, 0x49, 0x75, 0x34, 0xbd, 0xe0, 0x60, 0x3c,
		0xd0, 0xf0, 0x22, 0x87, 0x07, 0x68, 0x78, 0x41, 0xb1, 0xac, 0x68, 0x78, 0x51, 0xbd, 0xac, 0x8a,
		0x29, 0x92, 0xa1, 0x96, 0x54, 0xfd, 0x99, 0xdd, 0xc6, 0xd7, 0xec, 0x2e, 0x74, 0xd1, 0xc4, 0x7b,
		0x8c, 0x6f, 0x72, 0x86, 0x87, 0x15, 0x38, 0x71, 0x35, 0xdc, 0x5b, 0xc1, 0xbb, 0x6a, 0x9b, 0x9b,
		0xa4, 0x19, 0x6a, 0x1a, 0x51, 0x76, 0xfd, 0x14, 0x35, 0x80, 0xbe, 0xf3, 0xf7, 0xab, 0x74, 0x3e,
		0x21, 0x6d, 0xee, 0x72, 0x1b, 0x79, 0xfb, 0xb6, 0x2c, 0xb1, 0xa4, 0xfb, 0x95, 0x8a, 0xfc, 0x32,
		0xf3, 0x57, 0xa1, 0x80, 0xaf, 0x62, 0x9e, 0xa2, 0x72, 0x28, 0xa0, 0xe2, 0xfa, 0x13, 0x73, 0x92,
		0xaa, 0x46, 0x9c, 0xec, 0xc8, 0x93, 0xcd, 0x34, 0x3d, 0xe7, 0xc8, 0x0b, 0x86, 0x55, 0x73, 0x0a,
		0x8a, 0xe7, 0x01, 0x49, 0xe7, 0xff, 0x90, 0x6c, 0x6f, 0x2e, 0x62, 0x45, 0xb2, 0xbd, 0xbe, 0xf8,
		0xd3, 0xb4, 0x74, 0xfb, 0x48, 0x10, 0x2b, 0xd0, 0x17, 0x64, 0x40, 0xe3, 0xa1, 0xf1, 0xd0, 0xf8,
		0xfa, 0x35, 0x5e, 0x47, 0xe4, 0x54, 0x59, 0xad, 0x11, 0x3f, 0x35, 0x1e, 0x3f, 0x55, 0x04, 0x61,
		0x42, 0xfc, 0x94, 0x2a, 0x45, 0x9d, 0xf1, 0x53, 0xe8, 0xa9, 0xc4, 0x4f, 0xe3, 0x6f, 0x69, 0x8e,
		0x9f, 0x3e, 0xd4, 0x15, 0x3f, 0x29, 0xa4, 0x4a, 0x76, 0x29, 0x82, 0xaa, 0x9e, 0xea, 0x68, 0x38,
		0x86, 0x72, 0xbc, 0x27, 0x19, 0xc8, 0x38, 0x89, 0x9c, 0x44, 0x3e, 0x8b, 0xe9, 0x28, 0x79, 0x65,
		0x2f, 0xab, 0x50, 0x1a, 0xfc, 0x2d, 0xf8, 0x5b, 0x3b, 0xeb, 0x6f, 0x31, 0xec, 0x78, 0x8b, 0xd8,
		0xe3, 0x49, 0xb1, 0xa7, 0x93, 0x9e, 0x58, 0xcd, 0x19, 0x0c, 0x22, 0x31, 0x70, 0x12, 0xe1, 0xd9,
		0x63, 0xbb, 0x66, 0x0b, 0x6f, 0x20, 0xec, 0x61, 0x28, 0x83, 0x84, 0x80, 0x2a, 0xeb, 0x65, 0xa2,
		0x4c, 0x1a, 0xe8, 0xb2, 0x8b, 0x65, 0xd2, 0x2b, 0xfb, 0xdc, 0x56, 0x3a, 0x55, 0x54, 0xe8, 0x69,
		0xe6, 0xa4, 0xa2, 0xc8, 0x07, 0x45, 0x3e, 0x8d, 0xaa, 0xa0, 0x9a, 0x2a, 0x2a, 0xaa, 0x24, 0xdd,
		0xf4, 0xe7, 0x76, 0x8f, 0x2f, 0x9c, 0x7e, 0x24, 0xfa, 0x1c, 0x55, 0x3e, 0x47, 0x04, 0x19, 0x37,
		0x05, 0xd1, 0xf8, 0xe7, 0x2c, 0xf8, 0x5e, 0x7c, 0x45, 0x9f, 0xf3, 0xb1, 0x79, 0xe1, 0xaf, 0x57,
		0x3e, 0x1e, 0xa3, 0xc7, 0xca, 0x47, 0xe1, 0x4b, 0x90, 0x37, 0xca, 0x2b, 0x7f, 0x93, 0x82, 0x8c,
		0xc1, 0x75, 0x1f, 0xe9, 0xdd, 0x33, 0xe2, 0x2b, 0x40, 0x15, 0xa0, 0x0a, 0x50, 0x05, 0xa8, 0x2a,
		0x83, 0xaa, 0xe9, 0x80, 0x99, 0x3d, 0x28, 0x0f, 0x68, 0x2e, 0x8b, 0x03, 0x70, 0x02, 0x38, 0x01,
		0x9c, 0x00, 0xce, 0xad, 0xc0, 0x59, 0x2b, 0x4a, 0xd6, 0x51, 0x14, 0xbf, 0x84, 0x83, 0x56, 0xe6,
		0x4a, 0x5a, 0x0c, 0x41, 0x3b, 0x6b, 0xb1, 0xbc, 0x62, 0x65, 0x34, 0xca, 0xab, 0xab, 0x25, 0x49,
		0xc7, 0x7e, 0x01, 0x1b, 0xf1, 0x69, 0x11, 0xf3, 0xa8, 0xa1, 0x27, 0x1e, 0x4f, 0xb2, 0x9b, 0x19,
		0xff, 0xf3, 0xdc, 0x1b, 0x88, 0x9b, 0xf4, 0x4e, 0x4c, 0x20, 0x9d, 0xb3, 0xc6, 0x59, 0xf4, 0x29,
		0x61, 0x05, 0xb2, 0x30, 0x1f, 0x0c, 0x14, 0x33, 0xe6, 0x83, 0x6d, 0xf2, 0xe0, 0x31, 0x1f, 0x0c,
		0xf3, 0xc1, 0xf8, 0x9c, 0x77, 0xcc, 0x07, 0x23, 0x6c, 0x3f, 0xcc, 0x07, 0xab, 0x53, 0x4d, 0xb9,
		0xd5, 0x55, 0x9b, 0xda, 0x6a, 0x53, 0x5f, 0x7d, 0x6a, 0x4c, 0x53, 0x67, 0xa2, 0x5a, 0xf3, 0x45,
		0xe6, 0xb9, 0x9d, 0x87, 0xf9, 0x60, 0x7a, 0x5e, 0x17, 0xe6, 0x83, 0x01, 0x4a, 0x01, 0xa5, 0x9d,
		0x82, 0x52, 0xcc, 0x07, 0xab, 0xc8, 0xe3, 0x61, 0x3e, 0x18, 0xe6, 0x83, 0x61, 0x3e, 0x18, 0x3f,
		0x34, 0xf2, 0x49, 0xc1, 0x7c, 0xb0, 0x2a, 0x72, 0x18, 0x38, 0xf6, 0x1c, 0xdf, 0xdb, 0xf8, 0x64,
		0xb0, 0x09, 0xdd, 0x3e, 0xbb, 0x2f, 0x0c, 0x05, 0xab, 0xef, 0xd5, 0x37, 0x91, 0x56, 0x59, 0x7d,
		0xcf, 0x26, 0x24, 0x54, 0xdc, 0x30, 0x4e, 0xd8, 0x06, 0x9b, 0x14, 0x09, 0x43, 0xdd, 0xbe, 0xf6,
		0x38, 0x08, 0x75, 0xfb, 0xea, 0xd8, 0xa4, 0x9c, 0x56, 0x49, 0xf7, 0xba, 0xe3, 0x0f, 0xc2, 0x48,
		0x26, 0x3f, 0x18, 0x5a, 0x05, 0xaf, 0xc8, 0x43, 0x75, 0x14, 0xaa, 0xa3, 0x1a, 0x55, 0xbb, 0x66,
		0xbc, 0x45, 0x34, 0x09, 0x56, 0x40, 0x21, 0xa5, 0x7e, 0x29, 0xc5, 0x00, 0xa4, 0xd0, 0x36, 0x05,
		0xd8, 0x03, 0xec, 0x01, 0xf6, 0x74, 0x15, 0x7b, 0x68, 0x99, 0x98, 0x65, 0xf0, 0xa1, 0xa4, 0x61,
		0x80, 0x3e, 0x40, 0x1f, 0xa0, 0x0f, 0x5a, 0x91, 0x17, 0x6f, 0x5e, 0x8a, 0x7f, 0x83, 0xfe, 0xe3,
		0x79, 0x10, 0x40, 0xff, 0x71, 0x8a, 0xe1, 0x44, 0x81, 0x7c, 0x75, 0x06, 0x97, 0x4e, 0x2d, 0x72,
		0x50, 0xb8, 0xa7, 0x61, 0x9c, 0x9c, 0x2e, 0xdf, 0x84, 0x01, 0x1c, 0xae, 0x27, 0x7c, 0xf9, 0x2c,
		0xa2, 0x37, 0x3b, 0x1c, 0xef, 0x09, 0x36, 0x36, 0x77, 0xb3, 0x58, 0x0c, 0xa9, 0x06, 0xaf, 0x8b,
		0x21, 0xd5, 0x8c, 0xee, 0x93, 0x1e, 0x6c, 0x10, 0x81, 0xeb, 0x0c, 0xe7, 0x6f, 0x49, 0x19, 0x0c,
		0x56, 0xe4, 0x20, 0xab, 0x03, 0xed, 0xdf, 0xc5, 0xac, 0x0e, 0x4e, 0xbc, 0x83, 0xd9, 0x00, 0xb3,
		0x61, 0x2a, 0xb3, 0x81, 0x13, 0xef, 0x6d, 0xe3, 0x5e, 0x9a, 0x0f, 0x1c, 0x49, 0x8e, 0x0b, 0x47,
		0xcc, 0x78, 0x3e, 0xbe, 0x81, 0x7b, 0x25, 0x9d, 0xd5, 0xe4, 0x12, 0x46, 0x51, 0xc8, 0x17, 0x25,
		0x16, 0x4a, 0x43, 0x70, 0x08, 0xf7, 0x10, 0xc1, 0xa1, 0xf1, 0xc1, 0xa1, 0xef, 0x24, 0x22, 0x70,
		0xdf, 0xd8, 0xb0, 0x60, 0x8d, 0x3c, 0x04, 0x8b, 0x40, 0x83, 0x5d, 0x0c, 0x16, 0xfb, 0xf2, 0x55,
		0x78, 0x36, 0x93, 0x12, 0xe5, 0xb6, 0xd4, 0x46, 0xe9, 0x0d, 0x87, 0x92, 0x1f, 0x10, 0x4a, 0x22,
		0x94, 0x6c, 0x75, 0x28, 0xd9, 0x8d, 0x12, 0x9d, 0xbf, 0x65, 0x92, 0xd0, 0x33, 0x42, 0xb9, 0xc5,
		0x2b, 0x16, 0x0b, 0x4c, 0x02, 0x26, 0x01, 0x93, 0x80, 0x49, 0x5b, 0xee, 0xf1, 0x9f, 0x91, 0x90,
		0xc1, 0x40, 0x9b, 0xdb, 0xb4, 0x59, 0x3c, 0x28, 0x78, 0x60, 0x14, 0x30, 0x0a, 0x18, 0xb5, 0xe5,
		0x1e, 0x93, 0xc8, 0xe9, 0xf7, 0xa5, 0x6b, 0x0f, 0xa3, 0x70, 0x28, 0xa2, 0xe4, 0x8d, 0xe9, 0x88,
		0x45, 0xb1, 0x58, 0x60, 0x12, 0x30, 0x09, 0x98, 0x04, 0x4c, 0xda, 0x72, 0x8f, 0x2f, 0x4e, 0xe0,
		0x69, 0x88, 0xe5, 0x8a, 0xc5, 0x22, 0x96, 0x03, 0x26, 0x01, 0x93, 0xba, 0x85, 0x49, 0xb5, 0xb4,
		0xbe, 0x67, 0xf0, 0x80, 0x70, 0x20, 0x23, 0x0f, 0x08, 0x38, 0x90, 0x41, 0x31, 0xad, 0x38, 0x90,
		0x51, 0xbd, 0xae, 0x86, 0x8d, 0x60, 0xa1, 0xd6, 0xd7, 0x5c, 0x4e, 0x6e, 0xc4, 0xbc, 0x63, 0x19,
		0xbe, 0xf3, 0x26, 0xa2, 0x31, 0xd2, 0x25, 0xa1, 0x1b, 0xfa, 0x6a, 0x21, 0xe4, 0x42, 0x6a, 0x3d,
		0x2f, 0x0c, 0x55, 0x36, 0xda, 0x71, 0x16, 0x79, 0x75, 0x75, 0x8c, 0xa2, 0x57, 0xd9, 0xd0, 0x37,
		0xbd, 0xd5, 0xd0, 0xc4, 0x6d, 0x78, 0x34, 0xf0, 0x68, 0x3a, 0xee, 0xd1, 0xe8, 0xb1, 0xa9, 0xb2,
		0x2f, 0xdc, 0x37, 0xd7, 0x9f, 0xcd, 0xdf, 0x57, 0xb7, 0xa7, 0x2b, 0x82, 0xba, 0x62, 0x4b, 0x31,
		0xf9, 0x67, 0x83, 0x25, 0x35, 0x73, 0xf2, 0x0f, 0x83, 0x1d, 0x25, 0x6d, 0xf6, 0xa6, 0x6c, 0xa8,
		0x1e, 0x00, 0x09, 0xe3, 0x98, 0xaf, 0xde, 0xb5, 0x40, 0x18, 0x9c, 0x72, 0x40, 0x09, 0x4a, 0xdf,
		0x19, 0x19, 0x4d, 0x3d, 0x38, 0x40, 0x8b, 0xc6, 0x09, 0xe1, 0xb7, 0x72, 0x59, 0xfb, 0x01, 0x5c,
		0x06, 0xb8, 0x0c, 0x25, 0x6f, 0x53, 0xb9, 0xa4, 0x9d, 0xa9, 0x9d, 0x1b, 0x3a, 0xb9, 0x61, 0x44,
		0xa0, 0xd5, 0xac, 0x82, 0xa9, 0xc7, 0xdb, 0x16, 0x12, 0x88, 0xb5, 0xf1, 0x14, 0x29, 0x50, 0x30,
		0x55, 0x57, 0x2d, 0xc8, 0x02, 0xf2, 0x00, 0x79, 0x80, 0x3c, 0xdd, 0x41, 0x9e, 0x3a, 0x4a, 0x17,
		0x94, 0xe1, 0x05, 0x33, 0xf9, 0xad, 0x56, 0x66, 0xb8, 0x55, 0xd3, 0x4d, 0xc4, 0x7c, 0x76, 0xaa,
		0x86, 0x26, 0x44, 0xc8, 0xa1, 0x27, 0xec, 0x68, 0xe4, 0x0b, 0x7b, 0x10, 0x85, 0xa3, 0x21, 0x21,
		0x58, 0x5e, 0x11, 0xd4, 0x95, 0xb8, 0x19, 0x0c, 0x59, 0x2b, 0x19, 0x32, 0xe5, 0xd8, 0xb9, 0x60,
		0xc8, 0x14, 0xd9, 0xa7, 0x65, 0x19, 0x5c, 0x65, 0x71, 0x0e, 0xde, 0xff, 0x00, 0xdf, 0x16, 0xbe,
		0x6d, 0xdb, 0x06, 0xef, 0x2f, 0xcc, 0xf9, 0x63, 0x1b, 0x1a, 0xcd, 0x32, 0x3b, 0x90, 0x41, 0x35,
		0xd9, 0xc2, 0x4f, 0x4e, 0x55, 0xd5, 0xa4, 0xb2, 0xdc, 0xaa, 0xab, 0x4d, 0x85, 0xb5, 0xa9, 0xb2,
		0x3e, 0x95, 0xa6, 0xa9, 0x36, 0x51, 0xc5, 0xd9, 0x54, 0x3d, 0x13, 0x94, 0x8e, 0xdc, 0x67, 0xdb,
		0x1f, 0xd9, 0x18, 0x6a, 0x9e, 0x41, 0xfe, 0x16, 0xff, 0x90, 0x5e, 0x36, 0xf5, 0xd7, 0x01, 0x03,
		0x9a, 0xe1, 0x40, 0x17, 0x2c, 0x68, 0x87, 0x07, 0xed, 0x30, 0xa1, 0x1f, 0x2e, 0x78, 0x60, 0x83,
		0x09, 0x3e, 0xf8, 0xd8, 0xb0, 0xb5, 0x3b, 0x77, 0xe6, 0x87, 0xdb, 0x8c, 0x50, 0x60, 0x11, 0x2b,
		0x6c, 0xd6, 0xca, 0x54, 0xab, 0xbc, 0xd1, 0xf7, 0x8a, 0x19, 0x5e, 0x2f, 0x31, 0x45, 0xb9, 0xf6,
		0xbd, 0x52, 0x52, 0x96, 0x80, 0x76, 0x40, 0x3b, 0xa0, 0xbd, 0xf5, 0xd0, 0x3e, 0x92, 0x41, 0xf2,
		0xe9, 0x50, 0x03, 0xa6, 0x1f, 0x33, 0x8a, 0xbc, 0x75, 0x82, 0xc1, 0xf8, 0x6e, 0xff, 0xc3, 0xba,
		0x89, 0x78, 0x95, 0xca, 0x9a, 0xe6, 0x2d, 0xd8, 0xb5, 0x55, 0x13, 0xc0, 0xe6, 0xc4, 0xff, 0x39,
		0xb5, 0x31, 0xba, 0xe4, 0x7f, 0x89, 0x1c, 0x37, 0x91, 0x61, 0x70, 0x26, 0x07, 0x32, 0xcd, 0xc8,
		0x1c, 0xb0, 0x5f, 0xe7, 0xd7, 0x3b, 0x0d, 0xaf, 0xd4, 0x79, 0x6d, 0xfd, 0x2b, 0xed, 0x1d, 0x1f,
		0x1e, 0x7e, 0x3a, 0x3a, 0x3c, 0x3c, 0x38, 0xfa, 0xd7, 0xd1, 0xc1, 0xbf, 0x3f, 0x7e, 0xec, 0x7d,
		0xea, 0x7d, 0x6c, 0xf1, 0x5b, 0xde, 0x33, 0x53, 0xda, 0x83, 0x29, 0x0e, 0x67, 0xa3, 0x64, 0x06,
		0x31, 0x87, 0x99, 0x93, 0xc7, 0x90, 0xd3, 0x5c, 0xce, 0xc5, 0xbd, 0xcf, 0xe7, 0x17, 0xde, 0xb3,
		0xf1, 0x9a, 0x16, 0x47, 0x32, 0x34, 0xf4, 0xc4, 0xed, 0xc8, 0x17, 0xbf, 0x8f, 0xef, 0xf6, 0xf1,
		0x64, 0x76, 0xb7, 0xa7, 0xd3, 0x9b, 0x7d, 0xbc, 0x1f, 0xdf, 0xec, 0xdd, 0xf8, 0x5e, 0xf7, 0x9a,
		0xd9, 0x26, 0xf5, 0x12, 0xe1, 0x4c, 0x1b, 0xaa, 0x96, 0x8d, 0x44, 0xc9, 0xcc, 0xe8, 0xdd, 0x35,
		0xfb, 0x46, 0x0f, 0x55, 0x7e, 0x1a, 0x86, 0xb1, 0xf0, 0x28, 0x99, 0xf7, 0x3c, 0x67, 0x51, 0x20,
		0x14, 0x69, 0x44, 0x74, 0xf8, 0x61, 0x88, 0x35, 0xdb, 0xd6, 0xe1, 0x87, 0x9c, 0x4a, 0x5c, 0x01,
		0x3e, 0xda, 0xa0, 0xb0, 0xdc, 0x96, 0x2c, 0x94, 0xce, 0x93, 0x5e, 0x3c, 0xd8, 0xf9, 0xf4, 0x22,
		0x83, 0x2a, 0xeb, 0xa2, 0x9b, 0x76, 0x21, 0xc1, 0x48, 0x57, 0x75, 0x33, 0xbc, 0x72, 0x36, 0x02,
		0x89, 0x71, 0x2e, 0x59, 0xce, 0xbe, 0x1e, 0x31, 0xc8, 0xd2, 0x3e, 0xa7, 0x2c, 0xf5, 0x04, 0xf3,
		0x1f, 0x2d, 0xfa, 0x85, 0x5c, 0x83, 0xcd, 0x18, 0x3c, 0xf5, 0x77, 0x44, 0xd0, 0xd7, 0x80, 0xf4,
		0x80, 0x77, 0xc0, 0x3b, 0xe0, 0x1d, 0xf0, 0xde, 0x1a, 0x78, 0x6f, 0x2b, 0x80, 0xf3, 0xcc, 0xf5,
		0xcd, 0xe3, 0x12, 0xc3, 0x7c, 0x5f, 0x00, 0x39, 0x80, 0x1c, 0x40, 0x0e, 0x20, 0x37, 0x72, 0x9e,
		0x30, 0x03, 0x6a, 0xd7, 0x4a, 0xef, 0xcc, 0xda, 0x0c, 0x2f, 0xe2, 0xb2, 0x95, 0xb9, 0xda, 0x16,
		0x23, 0xbd, 0x42, 0x3b, 0xd5, 0x97, 0x49, 0xe1, 0x38, 0xdd, 0x37, 0x17, 0xc6, 0x70, 0xca, 0x2f,
		0x13, 0x46, 0x3a, 0xed, 0x47, 0x7d, 0x8f, 0xe6, 0x26, 0x3a, 0xf8, 0xb8, 0x74, 0x8b, 0x3d, 0xd3,
		0x71, 0x3a, 0xbd, 0xb7, 0xec, 0x13, 0xb3, 0x33, 0x1d, 0x71, 0xc2, 0x3e, 0xcd, 0xa0, 0x48, 0x28,
		0x32, 0x1d, 0xc8, 0x74, 0x18, 0xe1, 0x56, 0xb5, 0x2c, 0xd3, 0x91, 0xea, 0x92, 0xe3, 0x0f, 0xc2,
		0x48, 0x26, 0x3f, 0x9e, 0xf8, 0x82, 0xa6, 0x15, 0xb9, 0x88, 0x9a, 0x10, 0x35, 0x21, 0x6a, 0x32,
		0x38, 0x6a, 0x22, 0xf7, 0x03, 0xc9, 0x99, 0xd4, 0xe3, 0x16, 0x32, 0x48, 0x29, 0x6a, 0x91, 0x1a,
		0x15, 0x15, 0x03, 0x21, 0xa1, 0x5f, 0x11, 0x30, 0x10, 0x18, 0x08, 0x0c, 0x04, 0x06, 0xd6, 0x8b,
		0x81, 0x3c, 0xe7, 0xaf, 0x96, 0x41, 0x90, 0xe3, 0xf0, 0x15, 0x50, 0x10, 0x28, 0x08, 0x14, 0x04,
		0x0a, 0x1a, 0x18, 0x8a, 0x4f, 0x59, 0x69, 0xaa, 0xbf, 0xa7, 0x85, 0x72, 0x66, 0x82, 0xf1, 0x1e,
		0x15, 0xbd, 0x19, 0x81, 0x48, 0xc3, 0x18, 0x19, 0xad, 0x30, 0xc4, 0x31, 0x56, 0xa6, 0x59, 0xc7,
		0x00, 0x89, 0x87, 0x55, 0x39, 0x3a, 0x12, 0x0f, 0x5c, 0xd4, 0xb6, 0xa5, 0x21, 0xf1, 0x10, 0x27,
		0x94, 0x01, 0x7c, 0xea, 0xbb, 0x57, 0x25, 0xf3, 0x20, 0x83, 0x44, 0x44, 0xac, 0x07, 0x2c, 0x72,
		0x12, 0x91, 0x73, 0x40, 0xce, 0xc1, 0x08, 0x57, 0xb4, 0x65, 0x39, 0x07, 0x27, 0x8e, 0x43, 0x57,
		0x3a, 0x89, 0xf0, 0x6c, 0x6a, 0xff, 0xd1, 0xb5, 0x1b, 0x73, 0xc3, 0x35, 0x0c, 0x6b, 0xe4, 0xf6,
		0x01, 0x11, 0x28, 0x22, 0xd0, 0x16, 0x47, 0xa0, 0x6c, 0xcd, 0xdc, 0xb4, 0x1c, 0xba, 0xca, 0x6d,
		0x6d, 0x0d, 0x87, 0xaf, 0x98, 0xc9, 0x29, 0x76, 0x92, 0x4a, 0x07, 0x54, 0x68, 0x87, 0x0c, 0x5d,
		0xd0, 0xa1, 0x1d, 0x42, 0xb4, 0x43, 0x49, 0x1d, 0x90, 0xc2, 0x03, 0x2d, 0x4c, 0x10, 0xc3, 0x4f,
		0x76, 0xe5, 0x76, 0x2f, 0x5f, 0xd1, 0x68, 0xce, 0x4f, 0x38, 0x62, 0x94, 0xb9, 0x8b, 0x87, 0xbd,
		0xf8, 0xb6, 0x1a, 0x47, 0xe3, 0x39, 0xbe, 0x43, 0x60, 0xc5, 0x96, 0x07, 0xe6, 0x06, 0xe6, 0x06,
		0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x46, 0xdb, 0xe1, 0x33, 0xb3, 0x0c, 0x0a, 0xef, 0xa1, 0xb4, 0x3c,
		0x0e, 0x32, 0x1e, 0x4e, 0x83, 0x61, 0x81, 0x61, 0x81, 0x61, 0x81, 0x61, 0xd9, 0x01, 0xc3, 0x62,
		0x94, 0x15, 0x69, 0x94, 0x9e, 0xab, 0xef, 0xb0, 0x5c, 0x76, 0x49, 0x96, 0x0a, 0x86, 0x4c, 0x1a,
		0x67, 0x25, 0x43, 0x4e, 0x5f, 0x3e, 0x70, 0x99, 0x4c, 0x0d, 0xe8, 0xae, 0xb1, 0xc2, 0xa1, 0x16,
		0x6c, 0x5f, 0xc2, 0xf5, 0x0f, 0xbb, 0xe4, 0xd3, 0x71, 0x56, 0x42, 0x64, 0x42, 0x59, 0x2a, 0x22,
		0xb8, 0x50, 0xc3, 0xfc, 0xa6, 0xa6, 0xab, 0xd9, 0xf8, 0xf7, 0xda, 0x32, 0x7e, 0x16, 0x7b, 0x25,
		0xc5, 0xc5, 0xf8, 0xde, 0x17, 0x7a, 0x57, 0x66, 0x77, 0xbe, 0xf4, 0x67, 0x6d, 0xac, 0x11, 0x62,
		0x1c, 0x8f, 0x97, 0xc3, 0x6a, 0xd6, 0xee, 0xa3, 0x56, 0xa7, 0x52, 0xb9, 0x98, 0xc9, 0x85, 0x99,
		0x5c, 0x5b, 0x1e, 0x8b, 0x2d, 0x8d, 0xcb, 0x38, 0x86, 0xaf, 0x80, 0xed, 0x60, 0x6c, 0x5b, 0xcd,
		0x08, 0x01, 0x2d, 0xa6, 0x3a, 0x30, 0xc4, 0xa5, 0x41, 0xa2, 0x63, 0xb7, 0x87, 0xb8, 0x70, 0x41,
		0x4a, 0x26, 0x90, 0x75, 0xdc, 0x5f, 0x4e, 0x1d, 0x98, 0x67, 0x7d, 0x59, 0xfa, 0xe6, 0x5d, 0xb0,
		0xc3, 0x8c, 0x4e, 0xb8, 0xa9, 0x09, 0x76, 0x74, 0xc3, 0x4f, 0x6d, 0x30, 0x54, 0x1b, 0x1c, 0xd5,
		0x07, 0x4b, 0xbc, 0xf0, 0xc4, 0x0c, 0x53, 0xd9, 0x32, 0xb0, 0xb3, 0xb2, 0xb9, 0x9d, 0xaf, 0x6b,
		0xac, 0x60, 0xce, 0x9b, 0x39, 0xd4, 0x20, 0x9b, 0x77, 0xcc, 0x20, 0xff, 0x96, 0x60, 0xdc, 0x0e,
		0xcc, 0xe3, 0x07, 0x73, 0xfb, 0x80, 0x73, 0x0c, 0x21, 0x4c, 0x0d, 0x4c, 0x0d, 0x4c, 0x0d, 0x4c,
		0xcd, 0xaa, 0x33, 0xcb, 0x3d, 0xe6, 0x70, 0x15, 0x67, 0x8e, 0x35, 0x88, 0xd6, 0x33, 0xf6, 0x70,
		0xf6, 0xa3, 0x47, 0x49, 0x2d, 0xdd, 0x63, 0x10, 0x35, 0x03, 0x7c, 0xee, 0x32, 0x9a, 0xc7, 0x22,
		0x66, 0xd7, 0xa9, 0x61, 0x70, 0x9e, 0x26, 0xf5, 0x5d, 0x7e, 0xf5, 0x1a, 0xc7, 0x25, 0x36, 0xf5,
		0xea, 0xeb, 0x1b, 0x9f, 0xd8, 0xc8, 0x6e, 0xd8, 0x6b, 0x87, 0xd4, 0x07, 0x53, 0x1d, 0x6d, 0xa3,
		0x48, 0x26, 0xe6, 0x4c, 0x65, 0x26, 0xb7, 0x8e, 0x8c, 0xa5, 0xe6, 0xb9, 0x8c, 0xf3, 0x67, 0xd1,
		0x99, 0xbc, 0xd4, 0x35, 0xae, 0x91, 0x6f, 0xbb, 0x61, 0x3e, 0x28, 0x79, 0x63, 0x1a, 0x9f, 0x42,
		0xe7, 0x19, 0xff, 0x48, 0xdf, 0x31, 0xe4, 0xce, 0x5b, 0x4c, 0xcd, 0x92, 0xf3, 0xdc, 0x13, 0x6b,
		0x67, 0x09, 0x0b, 0x27, 0xa1, 0xcd, 0xe0, 0x0c, 0x70, 0x12, 0xda, 0x1c, 0xa4, 0x67, 0x4b, 0xa1,
		0x33, 0x37, 0x65, 0x2e, 0xc6, 0x02, 0xae, 0xe6, 0xcc, 0x9a, 0x82, 0x14, 0x9c, 0x1a, 0xb0, 0x90,
		0x4c, 0x6f, 0x08, 0x46, 0xcc, 0x8c, 0x74, 0xf4, 0x9d, 0x1a, 0x60, 0x6b, 0xf9, 0x97, 0x73, 0x0d,
		0x8e, 0x77, 0xa8, 0xea, 0x97, 0xaf, 0x39, 0x74, 0x31, 0x20, 0x33, 0x34, 0x89, 0x06, 0x16, 0x03,
		0x8b, 0x81, 0xc5, 0xc0, 0xe2, 0x6e, 0x60, 0x31, 0x6f, 0x96, 0x9e, 0xbf, 0x59, 0x35, 0xd0, 0x18,
		0x68, 0x0c, 0x34, 0x06, 0x1a, 0x9b, 0x8d, 0xc6, 0x26, 0x9c, 0x4e, 0x65, 0x1b, 0x92, 0xd2, 0xa2,
		0xa3, 0xa7, 0x3d, 0x1c, 0x3d, 0xad, 0xe7, 0xe8, 0x69, 0x0f, 0x47, 0x4f, 0xb7, 0x08, 0xc5, 0xd1,
		0x53, 0x5a, 0xbe, 0x8c, 0x3f, 0xb7, 0x62, 0xe9, 0x4e, 0x98, 0x71, 0x35, 0xf3, 0xa6, 0x6b, 0x07,
		0x25, 0x63, 0xe6, 0x3b, 0x89, 0x08, 0xdc, 0x37, 0x6d, 0x49, 0xb3, 0x35, 0xf2, 0x91, 0x37, 0xab,
		0xdd, 0xed, 0x47, 0xde, 0x0c, 0x79, 0xb3, 0xad, 0x82, 0xfa, 0xf2, 0x55, 0x78, 0xb6, 0x26, 0x50,
		0xc8, 0x6d, 0xf1, 0x8d, 0x57, 0x33, 0x9c, 0x39, 0xf8, 0x00, 0xe6, 0x00, 0xcc, 0x01, 0x98, 0x03,
		0x30, 0x07, 0x0d, 0x87, 0x33, 0x7f, 0xcb, 0x64, 0xec, 0x4b, 0xeb, 0x86, 0xea, 0xe2, 0xcb, 0x00,
		0xa3, 0x81, 0xd1, 0xc0, 0x68, 0x60, 0x34, 0x30, 0x7a, 0xe3, 0x33, 0xfd, 0x33, 0x12, 0x32, 0x18,
		0xd4, 0xe6, 0x56, 0x6f, 0xbe, 0x1c, 0x32, 0x72, 0xc0, 0x6c, 0x60, 0x36, 0x30, 0x1b, 0x98, 0xbd,
		0xf1, 0x99, 0x92, 0xc8, 0xe9, 0xf7, 0xa5, 0x6b, 0x0f, 0xa3, 0x70, 0x28, 0xa2, 0xe4, 0x4d, 0x53,
		0xdd, 0x5a, 0xf1, 0x65, 0x80, 0xd1, 0xc0, 0x68, 0x60, 0x34, 0x30, 0x1a, 0x18, 0xbd, 0xf1, 0x99,
		0x5e, 0x9c, 0xc0, 0xab, 0x81, 0xfb, 0x28, 0xbe, 0x0c, 0xb8, 0x0f, 0x60, 0x34, 0x30, 0x1a, 0x18,
		0x8d, 0xca, 0x36, 0x3d, 0x6f, 0x30, 0x9b, 0xbb, 0xa0, 0xc1, 0x43, 0x46, 0x95, 0x1b, 0x3f, 0x20,
		0xa2, 0xca, 0xcd, 0x24, 0xd7, 0x08, 0x55, 0x6e, 0x55, 0xe5, 0xd5, 0x50, 0xe5, 0xa6, 0x8d, 0x91,
		0xd5, 0x5a, 0xe8, 0x76, 0x39, 0xb9, 0xeb, 0xf6, 0xd7, 0xba, 0xb1, 0x30, 0x38, 0xf3, 0x61, 0xa4,
		0x0c, 0x66, 0x88, 0xbb, 0x8e, 0xed, 0x00, 0xe3, 0x13, 0x4c, 0x71, 0xe9, 0x31, 0x3e, 0xa1, 0xe2,
		0x63, 0xb1, 0xd5, 0xb0, 0x69, 0x3a, 0xd4, 0x86, 0xf3, 0x6c, 0x46, 0x02, 0x02, 0x62, 0xfe, 0xe6,
		0x00, 0x03, 0x11, 0xff, 0xce, 0x45, 0xfc, 0xef, 0x98, 0xf0, 0x57, 0x53, 0xba, 0x6c, 0x41, 0x36,
		0x90, 0x18, 0x48, 0x0c, 0x24, 0x06, 0x12, 0xef, 0x2a, 0x12, 0x9b, 0xc0, 0xbd, 0xb2, 0xc1, 0xad,
		0x56, 0xc2, 0x95, 0x89, 0xdd, 0x02, 0x65, 0x66, 0x20, 0x65, 0xc6, 0x64, 0xea, 0xb5, 0x12, 0x64,
		0x29, 0x28, 0xb5, 0x90, 0x0f, 0x8b, 0x64, 0xfc, 0x53, 0xdb, 0xc1, 0xcf, 0x22, 0xe1, 0x38, 0xf5,
		0x59, 0xce, 0x25, 0xc3, 0xa9, 0x4f, 0x9c, 0xfa, 0xac, 0x93, 0x31, 0x2b, 0xd0, 0x55, 0x4d, 0xf1,
		0xdb, 0xda, 0x2b, 0x21, 0x9a, 0x33, 0x0e, 0x3a, 0x10, 0xcf, 0x35, 0x09, 0x2d, 0x88, 0xe8, 0xc0,
		0xad, 0xad, 0x41, 0x6a, 0xe9, 0x89, 0x20, 0x91, 0x7d, 0x29, 0x22, 0xdb, 0x97, 0x71, 0xa2, 0x09,
		0xa5, 0x57, 0xaf, 0x02, 0x84, 0x06, 0x42, 0x03, 0xa1, 0x81, 0xd0, 0xe6, 0x22, 0x34, 0xd3, 0x0a,
		0xb2, 0x52, 0x55, 0x6b, 0x28, 0x2b, 0x4d, 0x63, 0x51, 0x7b, 0xdc, 0xfa, 0xa9, 0x71, 0x3e, 0x67,
		0x0d, 0xb5, 0x83, 0xb5, 0xc1, 0x8c, 0xa5, 0xa9, 0x96, 0x90, 0x17, 0x62, 0x2c, 0xe6, 0x19, 0xbf,
		0x3a, 0x08, 0xd3, 0x4c, 0x38, 0x2b, 0x71, 0xca, 0xe8, 0xc4, 0x99, 0x40, 0xcb, 0x6b, 0x8a, 0xa2,
		0x51, 0x15, 0xdd, 0x1a, 0x64, 0x43, 0x55, 0xb4, 0x31, 0x88, 0x85, 0x14, 0x0f, 0x31, 0xc5, 0xc3,
		0x9f, 0x29, 0xb0, 0x74, 0x67, 0x7c, 0x6e, 0x65, 0xfc, 0xb3, 0xfd, 0xf5, 0xd0, 0xe3, 0x77, 0xc0,
		0x98, 0xf0, 0x19, 0x4b, 0x43, 0x86, 0xa7, 0x76, 0x12, 0x00, 0x19, 0x1e, 0x64, 0x78, 0xb6, 0x0a,
		0x72, 0xc5, 0xd0, 0xf6, 0x64, 0x24, 0x5c, 0xd6, 0x31, 0xbf, 0xf3, 0x81, 0x1f, 0x4b, 0xe2, 0x71,
		0x32, 0x1a, 0x4c, 0x21, 0x98, 0xc2, 0x0e, 0x33, 0x85, 0xc3, 0x30, 0x4a, 0xd8, 0xf1, 0x60, 0xc9,
		0x41, 0x38, 0x64, 0x94, 0x79, 0x1e, 0x8c, 0xd2, 0x09, 0xa1, 0xbf, 0x3a, 0xc7, 0x42, 0x32, 0x53,
		0x36, 0x9d, 0xe4, 0x83, 0xde, 0xf1, 0x18, 0xe7, 0x54, 0x65, 0xa2, 0xd0, 0x17, 0x7a, 0x8c, 0xf3,
		0x5c, 0x3c, 0xaf, 0x71, 0xee, 0xc1, 0x38, 0xc3, 0x38, 0xc3, 0x38, 0xf3, 0xc3, 0x3f, 0x97, 0xe7,
		0x9f, 0x09, 0xe4, 0x07, 0x98, 0x62, 0xb3, 0xcf, 0x08, 0x32, 0x9a, 0x22, 0x01, 0x6d, 0xa0, 0xa3,
		0x13, 0x7c, 0x6a, 0x03, 0x21, 0xdd, 0x60, 0x54, 0x1b, 0x28, 0xd5, 0x06, 0x4e, 0x75, 0x82, 0x14,
		0x2f, 0x58, 0x31, 0x83, 0x96, 0xbe, 0xc8, 0xa2, 0x36, 0xa8, 0xb1, 0xf8, 0xcb, 0x12, 0x74, 0x2d,
		0xb2, 0x96, 0x00, 0xa1, 0x96, 0x40, 0xa1, 0x96, 0x80, 0x41, 0x6f, 0xe0, 0xc0, 0xaf, 0x87, 0x9c,
		0x89, 0xf9, 0x4c, 0x3b, 0x6c, 0x16, 0x8a, 0x7f, 0xbb, 0x16, 0xda, 0x0c, 0xe4, 0x3f, 0xac, 0x3e,
		0xac, 0x3e, 0xac, 0x3e, 0xac, 0x7e, 0x69, 0xbc, 0xb1, 0xc3, 0x21, 0x33, 0xbd, 0x98, 0xf3, 0x00,
		0x3e, 0x6a, 0x90, 0x7d, 0x91, 0xd6, 0x55, 0x27, 0x6f, 0xbf, 0x39, 0xb1, 0x46, 0x3d, 0x9b, 0x2d,
		0xd9, 0xcd, 0xf5, 0xed, 0xfd, 0xe3, 0xed, 0xf5, 0xe5, 0xf9, 0xe3, 0xed, 0xb7, 0xcb, 0xf3, 0xc7,
		0xeb, 0x9b, 0xfb, 0x8b, 0xeb, 0x2b, 0x5d, 0x3a, 0xf7, 0xa7, 0xe3, 0x8f, 0xc4, 0xd8, 0x94, 0xff,
		0x47, 0x8b, 0xfc, 0xf1, 0xcf, 0xff, 0x69, 0x93, 0xbc, 0x7d, 0xd9, 0x1e, 0xcf, 0x2e, 0xbe, 0x7c,
		0x39, 0xbf, 0x3d, 0xbf, 0x9a, 0xfc, 0x6a, 0x5f, 0xdb, 0xad, 0xfc, 0x7a, 0xb7, 0x9b, 0xeb, 0x77,
		0x77, 0xf2, 0xf5, 0x1c, 0x4b, 0xa7, 0xb4, 0x74, 0x57, 0xd7, 0xd8, 0x74, 0x6a, 0x2b, 0x77, 0x72,
		0xf5, 0x97, 0xee, 0x95, 0xd3, 0x22, 0xf9, 0xa1, 0x63, 0xee, 0x03, 0xe2, 0xd9, 0xdd, 0x8a, 0x67,
		0x91, 0x4d, 0x35, 0x77, 0x33, 0x69, 0xca, 0xa6, 0x72, 0x95, 0x73, 0xf1, 0xd6, 0xb0, 0x66, 0x72,
		0xeb, 0xa8, 0x65, 0x1d, 0xf9, 0xe2, 0xbd, 0x8e, 0x84, 0xab, 0xa5, 0xbd, 0xa4, 0x75, 0xe4, 0x8b,
		0xc7, 0x53, 0x31, 0xbc, 0x09, 0xa3, 0xe4, 0x76, 0x7c, 0xdf, 0xbb, 0x94, 0x60, 0x0f, 0x9f, 0x86,
		0xbe, 0x78, 0xe5, 0x65, 0xc3, 0xe6, 0xf9, 0xf5, 0x45, 0xe9, 0xa8, 0x7d, 0x33, 0x96, 0xe3, 0x42,
		0x7a, 0xbd, 0x49, 0x0e, 0x0b, 0xa7, 0x64, 0xa9, 0x64, 0xd4, 0x31, 0x3c, 0xaa, 0xce, 0x79, 0x54,
		0x86, 0x98, 0xcf, 0x20, 0x98, 0x94, 0x72, 0xda, 0xf1, 0x50, 0xb8, 0x76, 0x24, 0xfa, 0x22, 0x12,
		0x81, 0xab, 0xc5, 0x96, 0xae, 0xbb, 0x14, 0xea, 0xd6, 0x60, 0x58, 0x61, 0x58, 0x8d, 0x37, 0xac,
		0xec, 0x75, 0x6b, 0x2b, 0x88, 0xa0, 0x2f, 0x99, 0xbd, 0x7a, 0xa1, 0x96, 0x65, 0xb3, 0x0f, 0x90,
		0xcd, 0xae, 0x0d, 0x98, 0x6a, 0x03, 0xa8, 0xda, 0x80, 0xaa, 0x4e, 0xc0, 0xe2, 0xe7, 0x1a, 0xad,
		0x56, 0x66, 0xb3, 0x47, 0x23, 0xe9, 0xb5, 0xa8, 0x7c, 0xcd, 0xc8, 0x4a, 0xa7, 0x55, 0x7f, 0x91,
		0xb5, 0x6b, 0xe5, 0x56, 0xef, 0x94, 0xb1, 0x73, 0x65, 0x6d, 0x76, 0x02, 0x55, 0x4f, 0xb0, 0x13,
		0xb0, 0x13, 0x6d, 0xb2, 0x13, 0xec, 0x8c, 0x52, 0x7b, 0x2c, 0x05, 0x18, 0xaf, 0xce, 0x31, 0x5e,
		0xc8, 0x21, 0x4e, 0x72, 0x88, 0x9a, 0x89, 0x30, 0xab, 0x9e, 0x7c, 0x62, 0xf6, 0x14, 0x77, 0x43,
		0xe1, 0xde, 0x66, 0xcf, 0xb0, 0x43, 0xe4, 0x68, 0x3f, 0x8c, 0x5e, 0x9c, 0xc8, 0x93, 0xc1, 0x40,
		0x53, 0x7a, 0x71, 0xf5, 0x02, 0xc8, 0x30, 0x1a, 0xeb, 0x4f, 0x82, 0x08, 0x6d, 0xd2, 0x5f, 0xec,
		0x4a, 0x86, 0x51, 0x0f, 0x20, 0x58, 0x2d, 0x69, 0xaf, 0x61, 0x04, 0xe8, 0xfb, 0xce, 0x9b, 0x88,
		0xec, 0x61, 0x14, 0x26, 0xa1, 0x1b, 0xfa, 0xf6, 0x3f, 0x23, 0xc7, 0x4f, 0x3b, 0xa5, 0xf3, 0xa3,
		0xff, 0xda, 0x2b, 0xc1, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x74, 0xd8, 0x0c, 0x68, 0x46, 0x06, 0x4b,
		0xd3, 0x39, 0x28, 0xbd, 0xe7, 0x9f, 0xb2, 0xd5, 0xb9, 0x3c, 0xf9, 0xeb, 0xfc, 0xf6, 0xf1, 0xe6,
		0xf6, 0xfa, 0xfe, 0xfa, 0xf4, 0xfa, 0xf2, 0xf1, 0x7f, 0xbf, 0x9d, 0x5c, 0x5e, 0x7c, 0xb9, 0x38,
		0xbf, 0xe5, 0xd6, 0x18, 0x8d, 0x47, 0x9e, 0x34, 0x9f, 0x0c, 0x5b, 0xb7, 0x42, 0x8f, 0xdf, 0xae,
		0xee, 0x6e, 0xce, 0x4f, 0xc7, 0xff, 0x7f, 0x66, 0x3a, 0x99, 0xf7, 0x00, 0xaa, 0x09, 0x54, 0x53,
		0xcb, 0x5d, 0xc9, 0xd0, 0x75, 0x7c, 0x5b, 0x7a, 0x1a, 0x5c, 0xc7, 0x99, 0x64, 0x4c, 0xee, 0xe1,
		0x71, 0x15, 0x31, 0x29, 0xbb, 0x41, 0x47, 0x11, 0x93, 0xb2, 0xd5, 0x76, 0x2e, 0xe6, 0xaa, 0x95,
		0x79, 0x26, 0x3d, 0xd3, 0x2e, 0x35, 0x4c, 0xb6, 0xec, 0x01, 0x7d, 0x81, 0xbe, 0x40, 0x5f, 0x5e,
		0xf4, 0x65, 0x2f, 0x5a, 0x4d, 0xe7, 0xe6, 0xeb, 0x0b, 0x6e, 0x27, 0xe2, 0x51, 0xa0, 0x5a, 0x4f,
		0xe1, 0x11, 0x3b, 0xf0, 0xe8, 0x06, 0xa0, 0xda, 0x80, 0xa8, 0x36, 0x40, 0xaa, 0x0f, 0x98, 0xf4,
		0xf0, 0x14, 0x28, 0x3a, 0xd2, 0xe5, 0x3e, 0xf2, 0xbf, 0x2f, 0xce, 0xf2, 0xd4, 0x14, 0xa8, 0x35,
		0x17, 0xa5, 0x2e, 0x5c, 0x03, 0x16, 0x01, 0x16, 0x01, 0x16, 0x01, 0x16, 0x01, 0x16, 0x61, 0x87,
		0xcb, 0x50, 0xa7, 0x33, 0x40, 0xd9, 0x61, 0x1f, 0x49, 0x87, 0x15, 0xe1, 0xa8, 0x6f, 0xd5, 0x58,
		0xdf, 0xca, 0xec, 0xaf, 0xe8, 0x2f, 0x65, 0x4d, 0x61, 0x70, 0x87, 0x18, 0xcf, 0xf0, 0x59, 0x44,
		0x91, 0xf4, 0x84, 0x3d, 0x8c, 0x64, 0x18, 0xc9, 0xe4, 0x8d, 0x9f, 0xfe, 0xcc, 0x5f, 0x02, 0x45,
		0x4b, 0x3c, 0x0e, 0x28, 0x8a, 0x96, 0x6a, 0x74, 0x35, 0x51, 0xb4, 0xc4, 0xb7, 0x7b, 0x47, 0x32,
		0x48, 0x3e, 0x1d, 0x6a, 0xc8, 0x46, 0x1d, 0x33, 0x8a, 0xbc, 0x75, 0x82, 0x81, 0x60, 0x2f, 0xe9,
		0xd1, 0xd3, 0xd4, 0x52, 0x63, 0xa8, 0xa8, 0x25, 0xfa, 0xcf, 0xc4, 0xff, 0x39, 0xa5, 0xc8, 0x75,
		0xc9, 0xff, 0x12, 0x39, 0xe9, 0xc1, 0x93, 0x33, 0x39, 0x90, 0xa9, 0x77, 0x78, 0xc0, 0x1f, 0x11,
		0xea, 0x69, 0x21, 0xda, 0xfa, 0x57, 0xda, 0x3b, 0x3e, 0x3c, 0xfc, 0x74, 0x74, 0x78, 0x78, 0x70,
		0xf4, 0xaf, 0xa3, 0x83, 0x7f, 0x7f, 0xfc, 0xd8, 0xfb, 0xa4, 0xa3, 0x91, 0x7a, 0x6d, 0x6f, 0xd9,
		0xd0, 0xa8, 0xf4, 0x61, 0x87, 0x9c, 0xd1, 0x34, 0x3a, 0x48, 0x38, 0xad, 0xce, 0xd2, 0x58, 0xf2,
		0x89, 0x68, 0x38, 0x9f, 0x70, 0x3e, 0xe1, 0x7c, 0x76, 0xd8, 0xf9, 0xe4, 0x86, 0x02, 0x0b, 0x47,
		0xa6, 0x2a, 0x10, 0x34, 0x72, 0x10, 0x38, 0xbe, 0x3d, 0x8c, 0xc2, 0xa1, 0x88, 0x74, 0xb0, 0x0d,
		0xab, 0x17, 0x40, 0xc3, 0x40, 0xc0, 0x3d, 0xe0, 0xde, 0x78, 0xb8, 0x67, 0xaf, 0xbd, 0x72, 0x86,
		0x43, 0x5f, 0xba, 0xce, 0x77, 0x5f, 0xd8, 0x53, 0x48, 0xd0, 0x5c, 0x8d, 0xb5, 0xee, 0x82, 0x68,
		0x0c, 0x85, 0xc6, 0x50, 0x4d, 0x03, 0x56, 0x6d, 0xc0, 0x55, 0x27, 0x80, 0x69, 0x8a, 0xcc, 0x91,
		0x91, 0xcf, 0x39, 0x3d, 0x98, 0x80, 0x8b, 0x89, 0x41, 0xb5, 0x29, 0x21, 0x67, 0xe1, 0x5d, 0x30,
		0x7a, 0xfa, 0x2e, 0x22, 0x3b, 0xec, 0x2f, 0x99, 0xe4, 0x58, 0x9f, 0x13, 0xb0, 0xee, 0x82, 0x70,
		0x02, 0xe0, 0x04, 0xc0, 0x09, 0x80, 0x13, 0xa0, 0x6d, 0xf7, 0xb3, 0x67, 0x54, 0x57, 0xb1, 0xe6,
		0x58, 0x83, 0x68, 0x3d, 0x19, 0xd6, 0xd9, 0x8f, 0xbe, 0x71, 0x93, 0x5a, 0x33, 0xae, 0x9a, 0x41,
		0x3e, 0x77, 0x19, 0xcd, 0x19, 0xd8, 0xec, 0x3a, 0x35, 0xe4, 0xe8, 0x34, 0xa9, 0xef, 0xaa, 0xab,
		0xb6, 0x73, 0xaf, 0xbe, 0xbe, 0x4c, 0x6d, 0x23, 0xbb, 0x61, 0xaf, 0x1d, 0x52, 0x1f, 0x3a, 0xe0,
		0x90, 0xaf, 0xb0, 0xf3, 0x9a, 0xcf, 0xc4, 0x14, 0x5e, 0x0d, 0xae, 0x38, 0x5c, 0x71, 0xb8, 0xe2,
		0x70, 0xc5, 0xb5, 0xed, 0x7e, 0x9c, 0x99, 0xd4, 0x61, 0x29, 0x26, 0x07, 0x5d, 0x58, 0x7b, 0x2b,
		0x6f, 0xb5, 0x17, 0x0b, 0xd7, 0x84, 0xd5, 0x80, 0xd5, 0x80, 0xd5, 0x80, 0xd5, 0xd0, 0x67, 0x35,
		0xea, 0xc2, 0x1e, 0x4b, 0x53, 0x47, 0xcf, 0x4c, 0xb6, 0xd6, 0xce, 0x9e, 0xb9, 0x75, 0xbb, 0xbb,
		0xf8, 0xfd, 0xea, 0xe4, 0xf2, 0xf1, 0xe6, 0xf6, 0xfa, 0xe6, 0xfc, 0xf6, 0xfe, 0xaf, 0xc7, 0x3f,
		0x4f, 0x2e, 0xbf, 0x9d, 0x3f, 0xde, 0x7e, 0xbb, 0x3c, 0xdf, 0xd7, 0x59, 0xdf, 0x1c, 0x6b, 0xa3,
		0xad, 0xf4, 0x52, 0x57, 0x25, 0xd7, 0xee, 0xf1, 0xe4, 0x6a, 0xfa, 0xcf, 0xfd, 0x36, 0xb2, 0x34,
		0xcd, 0xaf, 0xdf, 0xd9, 0xc5, 0x97, 0x2f, 0xe7, 0xb7, 0xe7, 0x57, 0xf7, 0x58, 0x45, 0xc2, 0x2a,
		0x5e, 0x5d, 0x63, 0xfd, 0x28, 0xeb, 0x77, 0x77, 0xf2, 0xf5, 0x5c, 0xfb, 0x02, 0x6a, 0x91, 0xfc,
		0xd0, 0x99, 0x03, 0x1c, 0xbf, 0x70, 0xa0, 0x9c, 0xf1, 0x40, 0xb9, 0x9e, 0xf2, 0x5f, 0xab, 0x96,
		0xb3, 0xe5, 0x77, 0xe9, 0xbd, 0xdf, 0xcc, 0x6e, 0xdd, 0x94, 0xaa, 0xef, 0xbd, 0x06, 0xf7, 0xe5,
		0xac, 0xcd, 0x05, 0x53, 0x13, 0x63, 0xde, 0x5a, 0xa1, 0x95, 0xda, 0x20, 0xe6, 0x42, 0xf6, 0x1e,
		0x57, 0xe9, 0xba, 0x86, 0xb0, 0x77, 0x31, 0xd4, 0x7d, 0x92, 0x81, 0x2d, 0x66, 0xab, 0xc0, 0xa8,
		0x6e, 0x3a, 0x83, 0xdc, 0xa5, 0xc0, 0xb6, 0xb7, 0x4b, 0xfd, 0x1c, 0x74, 0x54, 0x92, 0xf1, 0x56,
		0x8e, 0x51, 0x11, 0x81, 0xd9, 0x42, 0xd5, 0x65, 0x99, 0xf6, 0x39, 0x0e, 0xcf, 0x68, 0xb6, 0x40,
		0x34, 0x45, 0x50, 0x57, 0x00, 0xc2, 0x96, 0xd8, 0x4f, 0xc2, 0x64, 0x6c, 0xef, 0xc3, 0x44, 0x04,
		0x89, 0x74, 0x7c, 0xdb, 0x75, 0x86, 0x8e, 0xcb, 0xd1, 0xc7, 0x64, 0xce, 0x4b, 0xae, 0xbb, 0x02,
		0xd5, 0xb4, 0xb1, 0x1c, 0x29, 0x62, 0xe3, 0x7c, 0x39, 0x39, 0x5e, 0x4d, 0x7d, 0xf2, 0xb8, 0x4d,
		0x99, 0x36, 0xc6, 0x56, 0x9b, 0xf1, 0xd2, 0xd7, 0xe7, 0xae, 0x59, 0x37, 0x8f, 0xeb, 0xf8, 0xcf,
		0x54, 0x59, 0x63, 0xf9, 0x5f, 0x0d, 0x67, 0xc8, 0x17, 0x64, 0xa3, 0x9b, 0xbb, 0x61, 0xd0, 0xa0,
		0xd3, 0xdb, 0xb5, 0xd0, 0xcd, 0xbd, 0x85, 0x4c, 0x06, 0xfb, 0x89, 0xc2, 0x51, 0x20, 0x13, 0x7d,
		0xb9, 0xe7, 0x54, 0x3a, 0x3a, 0xf7, 0xa2, 0x73, 0x6f, 0xb3, 0x30, 0x54, 0x1b, 0x1c, 0xd5, 0x07,
		0x4b, 0xbc, 0xf0, 0xc4, 0x0c, 0x53, 0xd9, 0x32, 0xe8, 0xcf, 0x30, 0xcf, 0xe2, 0x16, 0x5b, 0x03,
		0xd4, 0x58, 0x9a, 0x7a, 0x60, 0x64, 0xb2, 0x79, 0x7b, 0x61, 0xf0, 0x6f, 0x09, 0xf6, 0x76, 0xf1,
		0x18, 0x1b, 0x02, 0x53, 0x03, 0x53, 0x03, 0x53, 0x83, 0xd3, 0x68, 0x45, 0x38, 0x83, 0xd3, 0x68,
		0x0b, 0x37, 0x8e, 0xd3, 0x68, 0xd5, 0xaf, 0x83, 0xd3, 0x68, 0xc6, 0xbe, 0x7a, 0x9c, 0x46, 0x33,
		0x41, 0xea, 0x03, 0xca, 0x65, 0xca, 0x78, 0x14, 0xed, 0x2d, 0x97, 0x59, 0x97, 0xd6, 0x7a, 0xcf,
		0x4e, 0x73, 0x5b, 0xba, 0x73, 0x97, 0xf7, 0xe3, 0x3b, 0xbe, 0x99, 0x3d, 0xc9, 0xe9, 0xf4, 0x41,
		0x26, 0x1f, 0xdf, 0x8d, 0x9f, 0x03, 0xa5, 0x34, 0xed, 0x4c, 0x9c, 0x6b, 0x4a, 0xbd, 0x36, 0xb4,
		0x21, 0xdb, 0x98, 0x5e, 0x1f, 0x8d, 0x18, 0x66, 0xd2, 0xcf, 0xe3, 0x82, 0x11, 0xbd, 0x84, 0x8b,
		0xc7, 0x1b, 0x61, 0x63, 0x16, 0x90, 0x36, 0x47, 0xda, 0xbc, 0x31, 0x48, 0x67, 0x8b, 0xe4, 0x39,
		0x35, 0xd4, 0xe2, 0x3b, 0xaa, 0x4a, 0xc0, 0xbc, 0xbd, 0x1a, 0xdf, 0xc7, 0xac, 0x4a, 0x95, 0xb0,
		0x78, 0x3c, 0x95, 0xa9, 0xac, 0xdd, 0xea, 0x58, 0x6b, 0x09, 0x79, 0x6a, 0x08, 0x55, 0xdf, 0x0f,
		0x93, 0xeb, 0x53, 0x83, 0xcb, 0x43, 0xd0, 0x3d, 0x9d, 0x1e, 0x8d, 0x1a, 0x50, 0x56, 0x57, 0x42,
		0x85, 0x17, 0xbc, 0xef, 0x3b, 0x89, 0x08, 0xdc, 0x37, 0xdb, 0xfd, 0xe1, 0x8c, 0xc3, 0x78, 0x11,
		0xc9, 0x38, 0x91, 0xae, 0xf2, 0x8b, 0xce, 0xa0, 0x70, 0x8d, 0x5c, 0x55, 0x88, 0x20, 0x95, 0xfa,
		0x90, 0xab, 0xfc, 0x38, 0xdc, 0x14, 0xf6, 0x93, 0xda, 0x5c, 0x8e, 0x09, 0xbb, 0x43, 0xc2, 0xee,
		0x88, 0xe8, 0x38, 0x49, 0x5d, 0xaf, 0x89, 0xa3, 0x96, 0xd3, 0xec, 0xf7, 0xe5, 0xab, 0xf0, 0x6c,
		0x66, 0x65, 0xcd, 0x6d, 0xcd, 0x8d, 0x57, 0x31, 0x2c, 0xf2, 0x30, 0xb6, 0x60, 0x97, 0xb1, 0x09,
		0x03, 0x62, 0x0f, 0x9d, 0x4d, 0x14, 0x76, 0x2d, 0xfa, 0x60, 0x6b, 0x9d, 0xd3, 0x7c, 0xfc, 0x41,
		0xb0, 0x8a, 0x7f, 0xcb, 0x64, 0xec, 0x14, 0xea, 0x82, 0xc8, 0x62, 0xf1, 0xc0, 0x46, 0x60, 0x23,
		0xb0, 0x11, 0xd8, 0x68, 0x38, 0x36, 0xfe, 0x33, 0x12, 0x32, 0x18, 0x68, 0x77, 0x23, 0x37, 0x5f,
		0x06, 0x0c, 0x36, 0xb0, 0x12, 0x58, 0x09, 0xac, 0x34, 0x1c, 0x2b, 0x93, 0xc8, 0xe9, 0xf7, 0xa5,
		0xcb, 0xdc, 0x6d, 0x77, 0xae, 0xe2, 0x85, 0xe2, 0x81, 0x8d, 0xc0, 0x46, 0x60, 0x23, 0xb0, 0xd1,
		0x70, 0x6c, 0x7c, 0x71, 0x02, 0x4f, 0x63, 0x8c, 0x5d, 0x2c, 0x1e, 0x31, 0x36, 0xb0, 0x11, 0xd8,
		0x08, 0x6c, 0xac, 0x03, 0x1b, 0x9b, 0xa8, 0x7f, 0xe0, 0xf4, 0x08, 0xb5, 0x14, 0x44, 0x30, 0xa1,
		0x3b, 0xb5, 0x35, 0x17, 0x27, 0x28, 0x69, 0x6c, 0xc5, 0xa5, 0x05, 0x92, 0x38, 0x5b, 0x6f, 0x35,
		0xe3, 0x3a, 0xa0, 0x2c, 0x66, 0x55, 0x0e, 0x7f, 0x59, 0x0c, 0x3b, 0xf1, 0xc6, 0x5b, 0x1c, 0x73,
		0x39, 0xb9, 0xbd, 0xd3, 0xe5, 0xbb, 0x33, 0xb8, 0x46, 0x86, 0x14, 0xf9, 0xcf, 0xa7, 0x5b, 0x12,
		0xe0, 0x9c, 0xab, 0xfe, 0xe5, 0xc0, 0x94, 0xfa, 0x17, 0x72, 0x79, 0x6e, 0x97, 0xab, 0x5f, 0xa8,
		0xe5, 0xb7, 0x2d, 0xab, 0x7d, 0xe1, 0x39, 0xd1, 0xcf, 0x7a, 0x82, 0x1f, 0x75, 0xf4, 0x88, 0x25,
		0x0d, 0x50, 0x64, 0x44, 0x92, 0xbb, 0xcc, 0xb2, 0x4d, 0x86, 0x98, 0xf0, 0xa6, 0x1d, 0x16, 0x64,
		0x02, 0x01, 0x81, 0x80, 0x40, 0x40, 0x20, 0xe0, 0x2e, 0x72, 0x69, 0x64, 0x98, 0xc3, 0x89, 0xa2,
		0x6e, 0x52, 0x27, 0x44, 0xcb, 0xc8, 0x4b, 0x94, 0xa4, 0x60, 0x60, 0x32, 0x2f, 0x32, 0x5e, 0x3c,
		0xe1, 0x0d, 0x84, 0x3d, 0x0c, 0x65, 0x90, 0x30, 0x50, 0x24, 0x2b, 0x02, 0x71, 0x5a, 0x08, 0xa7,
		0x85, 0x18, 0x9c, 0x8c, 0xce, 0x9d, 0x16, 0x5a, 0xd1, 0x23, 0x9b, 0xb7, 0x0f, 0x41, 0xa1, 0x74,
		0x44, 0x13, 0xb5, 0xa9, 0x32, 0xe2, 0x09, 0x9d, 0xaa, 0xbe, 0xab, 0x11, 0x85, 0x2f, 0x9c, 0x7e,
		0x24, 0xfa, 0x9c, 0x21, 0xc5, 0x11, 0x83, 0xac, 0x9b, 0x02, 0xe7, 0xed, 0x73, 0xe6, 0xab, 0x2d,
		0xbe, 0xd2, 0xcf, 0x79, 0x57, 0xae, 0xf0, 0xd7, 0x2b, 0x1f, 0xa7, 0x6e, 0xde, 0xf2, 0x47, 0xe1,
		0x4b, 0x20, 0x3c, 0x7b, 0x05, 0xc6, 0x56, 0xfe, 0x26, 0x05, 0xb5, 0x16, 0x92, 0x46, 0xe9, 0x53,
		0x69, 0xc0, 0x7b, 0x80, 0x3c, 0x40, 0x1e, 0x20, 0x0f, 0x90, 0x6f, 0x0d, 0xc8, 0xb7, 0x15, 0xc0,
		0xb3, 0x05, 0xe0, 0x05, 0xf1, 0x65, 0xb1, 0x00, 0x72, 0x00, 0x39, 0x80, 0x1c, 0x40, 0x6e, 0x1c,
		0x90, 0x37, 0x8a, 0xda, 0x8d, 0x54, 0xfd, 0x2e, 0xe2, 0xb2, 0x95, 0xb9, 0xda, 0x16, 0x23, 0xc9,
		0x82, 0x62, 0xe0, 0xea, 0x88, 0x8a, 0x62, 0xe0, 0x3a, 0x7c, 0x1d, 0x64, 0xb4, 0x56, 0xe5, 0x68,
		0xc8, 0x68, 0xb1, 0xe4, 0x54, 0x2c, 0xfe, 0xe4, 0x56, 0xe8, 0x89, 0x73, 0x6f, 0x20, 0x6e, 0xd2,
		0xbb, 0x32, 0x38, 0xcb, 0x15, 0xc9, 0xf8, 0x27, 0x7b, 0x7b, 0xbc, 0x22, 0xa1, 0xc8, 0x76, 0x21,
		0xdb, 0x65, 0x84, 0x53, 0xdd, 0xb2, 0x6c, 0x57, 0x81, 0x2e, 0x31, 0x57, 0xcd, 0xad, 0xbd, 0x02,
		0xe2, 0x68, 0xc4, 0xd1, 0x88, 0xa3, 0x0d, 0x8e, 0xa3, 0x51, 0x49, 0x9c, 0x21, 0xa4, 0xf4, 0x44,
		0x90, 0xc8, 0xbe, 0x14, 0x91, 0xed, 0xcb, 0x38, 0x61, 0x46, 0xc7, 0x55, 0xe9, 0x40, 0x46, 0x20,
		0x23, 0x90, 0x11, 0xc8, 0x58, 0xdb, 0x0a, 0xb1, 0x90, 0x5c, 0x5a, 0xc8, 0x2e, 0x76, 0xd2, 0x4b,
		0x97, 0xc2, 0x6b, 0x26, 0xc1, 0xb4, 0xab, 0x3f, 0x37, 0x29, 0xc6, 0xa3, 0xfa, 0x16, 0xcf, 0xc4,
		0x34, 0x56, 0xb2, 0x8c, 0x97, 0x34, 0x63, 0x70, 0x6e, 0x9a, 0xa0, 0xde, 0x99, 0xa3, 0x3a, 0xd0,
		0xec, 0x8d, 0x23, 0x0c, 0x68, 0x76, 0xed, 0xc8, 0x01, 0x9a, 0xbd, 0x98, 0x66, 0xe7, 0x23, 0x74,
		0x2d, 0x76, 0xaa, 0xfd, 0x56, 0xc6, 0x3f, 0xdb, 0xd3, 0x6d, 0x63, 0xbc, 0xa8, 0x0c, 0x04, 0xfb,
		0x58, 0x0a, 0x18, 0x75, 0x30, 0xea, 0x46, 0x04, 0x91, 0x2d, 0x63, 0xd4, 0x5d, 0x31, 0xb4, 0x3d,
		0x19, 0x09, 0x97, 0x65, 0xde, 0x69, 0xb6, 0x17, 0x97, 0xc5, 0xa2, 0x9f, 0x23, 0x18, 0x22, 0x30,
		0x44, 0x06, 0x33, 0x44, 0xc3, 0x30, 0x4a, 0xd8, 0xf4, 0x75, 0xc9, 0xb0, 0x1e, 0x32, 0xc8, 0x3a,
		0x0f, 0x46, 0x4f, 0xe3, 0xe7, 0xfd, 0xb5, 0xb3, 0xac, 0x13, 0x53, 0x88, 0xbf, 0xd3, 0xbc, 0xc1,
		0x3b, 0x9a, 0x91, 0x4b, 0xb7, 0x78, 0x14, 0xfa, 0x82, 0xd7, 0xc8, 0xcd, 0xc5, 0xf2, 0x18, 0xb9,
		0x1e, 0x8c, 0x1c, 0x8c, 0x1c, 0x8c, 0x1c, 0xdd, 0xb3, 0xcd, 0x04, 0xf1, 0x29, 0x7e, 0xb1, 0xd9,
		0x64, 0x50, 0x7e, 0x66, 0x4f, 0x97, 0x1d, 0x0c, 0x74, 0x80, 0x82, 0x76, 0x70, 0xd0, 0x05, 0x12,
		0xda, 0xc1, 0x42, 0x3b, 0x68, 0xd4, 0x01, 0x1e, 0x3c, 0x20, 0xc2, 0x04, 0x26, 0xfc, 0x9e, 0xb3,
		0x76, 0x28, 0xb0, 0xf8, 0xd2, 0xad, 0xdc, 0x8b, 0xc8, 0xea, 0x08, 0x6b, 0x75, 0x88, 0xb5, 0x3a,
		0xc6, 0x7a, 0x1c, 0x64, 0x3e, 0xbd, 0xe1, 0x48, 0x44, 0x66, 0xbb, 0xda, 0x26, 0x51, 0xb5, 0xdb,
		0xb5, 0xc6, 0x26, 0x90, 0xb8, 0xb0, 0xa2, 0xb0, 0xa2, 0xb0, 0xa2, 0xbb, 0x65, 0x45, 0x27, 0xf9,
		0xb6, 0x70, 0xc8, 0x44, 0x47, 0xe5, 0x2c, 0xea, 0x47, 0x46, 0x99, 0x17, 0x69, 0x3d, 0x64, 0xf2,
		0xf6, 0x9b, 0x13, 0x6b, 0xd0, 0x8f, 0xd9, 0xd2, 0xdc, 0x5c, 0xdf, 0xde, 0x3f, 0xde, 0x5e, 0x5f,
		0x9e, 0x3f, 0xde, 0x7e, 0xbb, 0x3c, 0x7f, 0xbc, 0xbe, 0xb9, 0xbf, 0xb8, 0xbe, 0xe2, 0xd6, 0x95,
		0x3f, 0x1d, 0x7f, 0x24, 0xc6, 0x26, 0xf2, 0x3f, 0xac, 0x72, 0xc7, 0x3f, 0xff, 0xc7, 0x2e, 0x71,
		0xfb, 0xf2, 0x3c, 0x9e, 0x5d, 0x7c, 0xf9, 0x72, 0x7e, 0x7b, 0x7e, 0x35, 0xf9, 0xd5, 0x3e, 0xfb,
		0x2d, 0xfc, 0x7a, 0xb7, 0x1b, 0xeb, 0x74, 0x77, 0xf2, 0xf5, 0x1c, 0x4b, 0xb4, 0x71, 0x89, 0xae,
		0xae, 0xb1, 0x89, 0x36, 0xaf, 0xd0, 0xc9, 0xd5, 0x5f, 0xba, 0x56, 0x88, 0x55, 0xe2, 0xc3, 0x8e,
		0x9a, 0x65, 0xc4, 0x65, 0xed, 0x88, 0xcb, 0x90, 0xc5, 0xaa, 0x7f, 0x53, 0x30, 0x67, 0xb1, 0xa8,
		0x65, 0x27, 0x3c, 0xb5, 0x6d, 0x99, 0x3c, 0x0d, 0x35, 0x6e, 0x23, 0x5f, 0xbc, 0xe7, 0xcc, 0x6f,
		0x59, 0xfc, 0xa5, 0x6e, 0x23, 0x5f, 0x3c, 0x9e, 0x8a, 0xe1, 0x4d, 0x18, 0x25, 0xb7, 0xe3, 0x1b,
		0x6c, 0x63, 0x62, 0x32, 0x7c, 0x1a, 0xfa, 0xe2, 0x95, 0x87, 0x5d, 0x99, 0xe7, 0x25, 0x17, 0xa5,
		0xa2, 0xf6, 0xa6, 0x76, 0xce, 0x04, 0x69, 0x49, 0xd4, 0xde, 0x94, 0xdf, 0x7d, 0x38, 0x9d, 0x05,
		0x0f, 0xc3, 0x18, 0x73, 0x14, 0x04, 0x93, 0x12, 0x30, 0x3b, 0x1e, 0x0a, 0xd7, 0x8e, 0x44, 0x5f,
		0x44, 0x22, 0x70, 0x59, 0x6d, 0xd3, 0xba, 0x4b, 0xa0, 0x7e, 0x06, 0x86, 0x0a, 0x86, 0x8a, 0x0d,
		0x86, 0xd9, 0xea, 0x67, 0x56, 0x34, 0x96, 0x3f, 0x09, 0xb8, 0x7a, 0x01, 0xc3, 0xb3, 0x80, 0x07,
		0xc8, 0x02, 0x22, 0x0b, 0x58, 0x2b, 0x90, 0x98, 0x49, 0x37, 0xea, 0xcb, 0x02, 0x32, 0xf4, 0x2d,
		0xd6, 0xe0, 0x17, 0x33, 0x32, 0x80, 0xef, 0xd8, 0x51, 0x99, 0xa7, 0x0b, 0xd6, 0x56, 0x6f, 0x8d,
		0xa1, 0x13, 0x96, 0x76, 0x7c, 0x46, 0x95, 0x06, 0xf0, 0x19, 0xf8, 0xac, 0x13, 0x9f, 0xd9, 0x18,
		0x0b, 0x73, 0x11, 0x1a, 0x0c, 0x4a, 0xeb, 0x19, 0x94, 0x8e, 0xe4, 0x68, 0x34, 0xf1, 0x29, 0x96,
		0xa6, 0x7c, 0x4d, 0x76, 0xbb, 0x77, 0x43, 0xe1, 0xde, 0x66, 0x37, 0xdb, 0x42, 0xb2, 0xac, 0x1f,
		0x46, 0x2f, 0x4e, 0xe4, 0xc9, 0x60, 0xc0, 0x9c, 0xbe, 0x59, 0x15, 0x8c, 0x0c, 0x0e, 0x88, 0x31,
		0x10, 0x63, 0x6c, 0xc0, 0xce, 0x9f, 0xc1, 0xe1, 0x55, 0x58, 0xcb, 0xd0, 0xe3, 0xd3, 0x8d, 0x80,
		0xac, 0xef, 0xbc, 0x89, 0xc8, 0x1e, 0x46, 0x61, 0x12, 0xba, 0xa1, 0x6f, 0xff, 0x33, 0x72, 0xfc,
		0xb4, 0xf3, 0x28, 0x1f, 0xda, 0xae, 0xbd, 0x02, 0x60, 0x17, 0xb0, 0x0b, 0xd8, 0x35, 0x18, 0x76,
		0x35, 0x69, 0xae, 0xc5, 0x7c, 0x4e, 0x40, 0xcf, 0xf9, 0x80, 0x6c, 0x15, 0x2e, 0x4f, 0xfe, 0x3a,
		0xbf, 0x7d, 0xbc, 0xb9, 0xbd, 0xbe, 0xbf, 0x3e, 0xbd, 0xbe, 0x7c, 0xfc, 0xdf, 0x6f, 0x27, 0x97,
		0x17, 0x5f, 0x2e, 0xce, 0x6f, 0xb9, 0x76, 0xba, 0x86, 0x23, 0x01, 0x9a, 0x4e, 0x48, 0xac, 0x5b,
		0x89, 0xc7, 0x6f, 0x57, 0x77, 0x37, 0xe7, 0xa7, 0xe3, 0xff, 0x3f, 0x33, 0x8d, 0xec, 0x79, 0x00,
		0x55, 0x01, 0xaa, 0xa2, 0x21, 0xd7, 0x2a, 0x74, 0x1d, 0xdf, 0xe6, 0x1c, 0x3c, 0x99, 0x49, 0x44,
		0x47, 0xf8, 0x72, 0xae, 0xd3, 0x84, 0xff, 0x81, 0xe3, 0xa4, 0xc5, 0x71, 0x9a, 0x2e, 0x2e, 0xdc,
		0xa6, 0x95, 0x9d, 0x87, 0x39, 0x19, 0xe9, 0xf0, 0x74, 0xd6, 0xa9, 0x41, 0x8c, 0x13, 0x82, 0x7a,
		0x40, 0x3d, 0xa0, 0x5e, 0xd7, 0x51, 0x8f, 0xad, 0x78, 0xed, 0x79, 0x1c, 0xbd, 0xf0, 0x07, 0x5d,
		0x13, 0xb1, 0x28, 0x54, 0x33, 0x0c, 0x10, 0x74, 0x01, 0x83, 0x76, 0x80, 0xd0, 0x0e, 0x14, 0xfa,
		0x01, 0x83, 0x37, 0x2e, 0x46, 0x11, 0x44, 0xf3, 0xef, 0x81, 0xa3, 0x4c, 0x2d, 0x05, 0x4a, 0x4d,
		0xc5, 0x69, 0x0b, 0xb2, 0x81, 0xc4, 0x40, 0x62, 0x20, 0x31, 0x90, 0x78, 0x57, 0x91, 0xb8, 0x51,
		0x67, 0x7c, 0x3a, 0x43, 0x89, 0x0d, 0x6e, 0x41, 0x1a, 0xa3, 0xbe, 0xad, 0x74, 0x7d, 0x1b, 0x93,
		0x79, 0xd7, 0x50, 0xca, 0x96, 0xc2, 0x4f, 0x0b, 0x99, 0xaf, 0xf0, 0x59, 0x44, 0x91, 0xf4, 0x84,
		0x3d, 0x8c, 0x64, 0x18, 0xc9, 0xe4, 0x8d, 0x8f, 0x06, 0xcb, 0x8b, 0x46, 0x11, 0x45, 0x39, 0xc7,
		0x0b, 0x45, 0x14, 0x28, 0xa2, 0xa8, 0xd3, 0x89, 0x9a, 0x9f, 0xb5, 0x92, 0x41, 0xf2, 0xe9, 0x90,
		0x31, 0x1b, 0x70, 0xcc, 0x20, 0xea, 0xd6, 0x09, 0x06, 0x82, 0xad, 0xe4, 0x80, 0xb7, 0x19, 0x96,
		0x86, 0x50, 0x86, 0x35, 0xea, 0xcc, 0xc4, 0xfe, 0x39, 0xa5, 0x3e, 0xb9, 0xe5, 0x7e, 0x89, 0x9c,
		0xb4, 0x80, 0xfb, 0x4c, 0x0e, 0x64, 0xea, 0x1d, 0x1d, 0xf0, 0x45, 0x2c, 0xbc, 0xad, 0xc5, 0x5a,
		0xf7, 0xaa, 0x7a, 0xc7, 0x87, 0x87, 0x9f, 0x8e, 0x0e, 0x0f, 0x0f, 0x8e, 0xfe, 0x75, 0x74, 0xf0,
		0xef, 0x8f, 0x1f, 0x7b, 0x9f, 0x38, 0x1b, 0x95, 0x6a, 0x7f, 0x7b, 0x86, 0x44, 0x4b, 0x0f, 0x6d,
		0x1c, 0xdb, 0x3f, 0x76, 0x7b, 0x13, 0x0e, 0x74, 0x5f, 0x1a, 0x8b, 0x38, 0x11, 0x09, 0x27, 0x0c,
		0x4e, 0x18, 0x9c, 0x30, 0x83, 0x9d, 0x30, 0x2e, 0x55, 0xb5, 0x70, 0x74, 0x60, 0x21, 0xe2, 0x97,
		0x83, 0xc0, 0xf1, 0xed, 0x61, 0x14, 0x0e, 0x45, 0xc4, 0x19, 0xe5, 0xae, 0x0a, 0x46, 0xe3, 0x22,
		0xc0, 0x2b, 0xe0, 0x95, 0x0d, 0x5e, 0xd9, 0x6a, 0x3f, 0x9c, 0xe1, 0xd0, 0x97, 0xae, 0xf3, 0xdd,
		0x17, 0xf6, 0x54, 0x65, 0x35, 0x55, 0x83, 0xac, 0xbb, 0x10, 0x1a, 0x65, 0x18, 0x07, 0x1c, 0xba,
		0x00, 0x44, 0x3b, 0x90, 0x68, 0x07, 0x94, 0x3a, 0x80, 0x85, 0x39, 0x52, 0x44, 0x66, 0xd2, 0x90,
		0x15, 0x44, 0xe7, 0xf9, 0x65, 0xe1, 0x3b, 0x3c, 0x11, 0x2c, 0x18, 0x3d, 0x7d, 0x17, 0x91, 0x1d,
		0xf6, 0x97, 0x4c, 0x5d, 0xcc, 0x6f, 0x54, 0xd7, 0x5d, 0x08, 0x46, 0x15, 0x46, 0x15, 0x46, 0xb5,
		0xc3, 0x46, 0x95, 0x2d, 0x63, 0xb5, 0x8a, 0x05, 0xc7, 0x8c, 0x22, 0x79, 0x33, 0x58, 0xb3, 0x1f,
		0xfe, 0xb1, 0x3e, 0x5a, 0x32, 0x5a, 0x9a, 0x40, 0x36, 0x27, 0x5e, 0x53, 0x86, 0x2b, 0x93, 0xaf,
		0x31, 0x57, 0xc2, 0xac, 0x6e, 0xab, 0xae, 0x4d, 0xeb, 0x5f, 0xa9, 0xfe, 0x4c, 0x58, 0xad, 0x6f,
		0x79, 0xcf, 0x4c, 0x69, 0x0f, 0x3b, 0xe4, 0x98, 0xae, 0xb0, 0xb2, 0x9a, 0x6a, 0xce, 0x0b, 0xaf,
		0x02, 0x97, 0x14, 0x2e, 0x29, 0x5c, 0x52, 0xf0, 0x3c, 0x38, 0x0b, 0x54, 0x09, 0xa1, 0x27, 0x05,
		0xe5, 0x7a, 0x06, 0x8b, 0x6f, 0xb8, 0x16, 0xd0, 0x1a, 0x68, 0x0d, 0xb4, 0xee, 0x32, 0x5a, 0xeb,
		0xc6, 0x06, 0xab, 0xdd, 0x93, 0xc6, 0xef, 0x2e, 0x7e, 0xbf, 0x3a, 0xb9, 0x7c, 0xbc, 0xb9, 0xbd,
		0xbe, 0x39, 0xbf, 0xbd, 0xff, 0xeb, 0xf1, 0xcf, 0x93, 0xcb, 0x6f, 0x93, 0x49, 0xbf, 0x18, 0x37,
		0xbe, 0x7d, 0x8d, 0xd2, 0x31, 0xc8, 0xe9, 0x3f, 0x31, 0x29, 0x7a, 0xe3, 0x3a, 0xcd, 0x67, 0xb3,
		0x63, 0xb5, 0xb6, 0xaf, 0xd6, 0xd5, 0x35, 0xd6, 0xa9, 0xcc, 0x3a, 0xa5, 0x93, 0xec, 0x75, 0x2d,
		0xd4, 0x6e, 0x8f, 0x21, 0x6f, 0x79, 0xdd, 0x50, 0x4b, 0x0e, 0x34, 0xf2, 0x56, 0x0f, 0x5a, 0x7a,
		0xce, 0x36, 0xde, 0xa5, 0x37, 0x79, 0x33, 0xbb, 0xc7, 0xa6, 0xaa, 0x3f, 0xf7, 0x6a, 0xdc, 0x47,
		0xb3, 0x63, 0xce, 0xc4, 0x26, 0x86, 0x3c, 0xb5, 0x10, 0x2b, 0xb5, 0x0f, 0x4c, 0x85, 0xab, 0x3d,
		0x6a, 0xa9, 0x2a, 0x63, 0x78, 0xb6, 0x18, 0x92, 0x3d, 0xc9, 0xc0, 0x16, 0xb3, 0xa7, 0x65, 0xd0,
		0x07, 0x1d, 0xc1, 0xd8, 0x52, 0x00, 0xd6, 0x6b, 0xe3, 0xb9, 0x5f, 0xce, 0x8a, 0x17, 0x9e, 0x0a,
		0x17, 0x55, 0x4d, 0x65, 0x42, 0x7a, 0x4d, 0x08, 0xbf, 0x4f, 0xa9, 0x59, 0xe7, 0x46, 0x72, 0xb5,
		0x8d, 0x5a, 0x7d, 0x83, 0x2a, 0xbc, 0xca, 0xfd, 0x24, 0x4c, 0xc6, 0x86, 0x30, 0x4c, 0xc6, 0x41,
		0xad, 0xe3, 0xdb, 0xae, 0x33, 0x74, 0x5c, 0xca, 0x79, 0xf4, 0x39, 0x3f, 0xb5, 0x4e, 0xb2, 0xaa,
		0x69, 0x20, 0x95, 0xe8, 0x93, 0xb9, 0x3d, 0x0e, 0x2e, 0x8f, 0xb9, 0xcf, 0x0f, 0x97, 0x29, 0x60,
		0x67, 0xe6, 0xd8, 0xc1, 0x9f, 0xbf, 0x4f, 0x4f, 0xbd, 0x6e, 0x0d, 0xb5, 0x9c, 0x7e, 0xaa, 0x4c,
		0xb1, 0xfc, 0x2f, 0xe3, 0xd9, 0xc4, 0x05, 0x99, 0xe8, 0x9a, 0x5a, 0x93, 0xca, 0xea, 0xf0, 0xe2,
		0x2c, 0x74, 0x4d, 0x35, 0x28, 0x02, 0x66, 0x3b, 0x39, 0x33, 0x0a, 0x64, 0xc2, 0x9f, 0x93, 0x4b,
		0xa5, 0xa2, 0x53, 0x9f, 0x61, 0x70, 0xa0, 0x0b, 0x16, 0xb4, 0xc3, 0x83, 0x76, 0x98, 0xd0, 0x0f,
		0x17, 0xcc, 0x04, 0x9e, 0xf1, 0x99, 0xb7, 0x99, 0x1f, 0x6e, 0x33, 0x42, 0x81, 0xc5, 0x7c, 0xe6,
		0x39, 0x93, 0xc9, 0x73, 0xf6, 0x99, 0x91, 0x5d, 0x7d, 0x87, 0x76, 0xd8, 0x80, 0x76, 0x40, 0x3b,
		0xa0, 0xdd, 0x44, 0x68, 0xc7, 0xa9, 0x0c, 0xce, 0x6d, 0x89, 0x53, 0x19, 0xeb, 0xe5, 0xe3, 0x54,
		0x46, 0x63, 0xaf, 0x14, 0xa7, 0x32, 0xea, 0x90, 0xf6, 0x80, 0x74, 0x7e, 0x2b, 0xd2, 0xf9, 0xeb,
		0xb2, 0x0c, 0xef, 0xd9, 0xd8, 0x4d, 0x8b, 0x3d, 0x27, 0x74, 0x3f, 0xbe, 0xb5, 0x9b, 0xd9, 0x2d,
		0x9f, 0x4e, 0xef, 0x78, 0xf2, 0xf1, 0xdd, 0xf8, 0x86, 0x3b, 0x91, 0xea, 0x37, 0x37, 0x81, 0xc8,
		0x9c, 0xb9, 0xaa, 0x6b, 0x03, 0x99, 0x9c, 0x66, 0x1c, 0x8d, 0x08, 0x33, 0x2e, 0xe7, 0xfe, 0xed,
		0x48, 0xbd, 0x24, 0x84, 0x66, 0x9d, 0xc9, 0x11, 0x2c, 0xd2, 0x87, 0x0d, 0x46, 0x9c, 0x6d, 0x4f,
		0x1f, 0x92, 0x23, 0x46, 0x0e, 0x0d, 0xb2, 0xe8, 0x47, 0xa2, 0x14, 0xb0, 0x66, 0x4f, 0xe3, 0xfa,
		0xce, 0xaa, 0xcd, 0x14, 0x16, 0x85, 0x56, 0x61, 0xc6, 0xd2, 0x55, 0x87, 0xa5, 0x96, 0x88, 0x56,
		0x43, 0x54, 0x75, 0xbd, 0x89, 0x26, 0x9f, 0xdf, 0xd4, 0x2b, 0xa8, 0x02, 0xab, 0x25, 0xaf, 0x06,
		0x40, 0xe5, 0x95, 0xa1, 0xc2, 0x8b, 0xd9, 0x0f, 0x87, 0x22, 0x4a, 0xdf, 0xc9, 0xd8, 0x5d, 0x4e,
		0x9c, 0xa4, 0x3a, 0xd2, 0xcc, 0x47, 0x4f, 0xe4, 0x44, 0x55, 0x55, 0x48, 0x25, 0x23, 0xad, 0x5c,
		0xdb, 0x43, 0x31, 0xca, 0x4c, 0xc6, 0x98, 0x6a, 0x84, 0xd9, 0x8c, 0x2f, 0x9b, 0xd1, 0xe5, 0x33,
		0xb6, 0x7a, 0xc1, 0x5f, 0xd9, 0xa8, 0xb2, 0x6d, 0x77, 0x8b, 0x98, 0x35, 0x53, 0xcc, 0x8e, 0x69,
		0x82, 0x91, 0x97, 0x40, 0x78, 0x76, 0x8a, 0xaf, 0xc2, 0x1b, 0x08, 0x7b, 0x18, 0xca, 0x20, 0x21,
		0x40, 0x49, 0xa1, 0x38, 0x35, 0x38, 0xe9, 0xb5, 0x0e, 0x4e, 0x08, 0xc7, 0x7a, 0xbb, 0x00, 0x28,
		0xea, 0xc7, 0x6e, 0xf5, 0x42, 0x8a, 0x6a, 0xed, 0xcf, 0xbe, 0xe3, 0x3d, 0xc9, 0x40, 0xc6, 0xc9,
		0x18, 0x4e, 0x9e, 0x85, 0xa2, 0x19, 0xce, 0x6d, 0xa5, 0x42, 0xa9, 0x08, 0x9f, 0x11, 0x3e, 0x23,
		0x7c, 0x6e, 0x5e, 0xa3, 0x2c, 0xa6, 0x92, 0x19, 0x62, 0x89, 0x4c, 0x3d, 0xf4, 0x9f, 0x33, 0x18,
		0x44, 0x62, 0xe0, 0x24, 0x0c, 0x1e, 0x42, 0xfe, 0x9d, 0xac, 0x97, 0x8d, 0x93, 0x06, 0x6c, 0x5d,
		0x42, 0xba, 0x8c, 0x76, 0xf4, 0x2e, 0x1f, 0x2d, 0x3b, 0x6d, 0xb0, 0xa2, 0x47, 0x36, 0x89, 0xbd,
		0xcf, 0x6d, 0xc9, 0x42, 0xe9, 0x86, 0x8d, 0x47, 0x3a, 0xc0, 0xfc, 0x8e, 0xe6, 0x55, 0x5b, 0x9b,
		0x8a, 0xeb, 0x54, 0x75, 0x9a, 0xca, 0x13, 0x55, 0x9f, 0xcf, 0xe5, 0xc9, 0xed, 0x3e, 0x5f, 0x38,
		0xfd, 0x48, 0xf4, 0x39, 0x87, 0x23, 0x1d, 0x31, 0xc8, 0xba, 0x29, 0x20, 0x83, 0x3f, 0x67, 0xdc,
		0xef, 0xe2, 0x2b, 0xfd, 0x9c, 0xa7, 0x86, 0x0b, 0x7f, 0xbd, 0xf2, 0x71, 0x4a, 0x1b, 0x2f, 0x7f,
		0x54, 0xc8, 0x4d, 0xac, 0xfc, 0x4d, 0x0a, 0x6a, 0x2d, 0x3c, 0xa0, 0x9c, 0x3e, 0x95, 0x06, 0xbc,
		0x07, 0xc8, 0x03, 0xe4, 0x01, 0xf2, 0x00, 0xf9, 0xd6, 0x80, 0x7c, 0x5b, 0x01, 0x3c, 0x5b, 0x00,
		0x5e, 0x10, 0x5f, 0x16, 0x0b, 0x20, 0x07, 0x90, 0x03, 0xc8, 0x01, 0xe4, 0xc6, 0x01, 0x79, 0xa3,
		0xa8, 0xdd, 0x44, 0xa7, 0xac, 0x25, 0x5c, 0xb6, 0x32, 0x57, 0xdb, 0x62, 0x24, 0x59, 0xb4, 0x74,
		0xd3, 0x22, 0xb6, 0x3e, 0x42, 0x1f, 0xa5, 0x55, 0x39, 0xf4, 0xda, 0xa8, 0xe2, 0xb0, 0x96, 0x9d,
		0x5e, 0xb7, 0x18, 0x8a, 0xa8, 0xae, 0xc7, 0xb7, 0x3a, 0xfe, 0xbf, 0x73, 0x6f, 0x20, 0x6e, 0xc6,
		0x37, 0xf3, 0x78, 0x92, 0xdd, 0xe7, 0xd2, 0xe7, 0x26, 0x17, 0x45, 0x3b, 0xcf, 0x8e, 0xf4, 0xd3,
		0x89, 0xa5, 0x7c, 0x5d, 0x97, 0x0a, 0x64, 0x22, 0x0b, 0x82, 0x8c, 0x2f, 0xd9, 0xd5, 0x42, 0xbf,
		0x25, 0x86, 0x10, 0x0a, 0xfd, 0x96, 0xea, 0x56, 0x59, 0x44, 0x4f, 0xfa, 0x54, 0xda, 0x8c, 0xd8,
		0x09, 0xfd, 0x96, 0x9a, 0x56, 0x7f, 0x1d, 0x30, 0xa0, 0x19, 0x0e, 0x74, 0xc1, 0x82, 0x76, 0x78,
		0xd0, 0x0e, 0x13, 0xfa, 0xe1, 0x82, 0x07, 0x36, 0x98, 0xe0, 0x83, 0x9f, 0x82, 0xc9, 0xed, 0x5c,
		0xf4, 0x5b, 0x6a, 0xf6, 0xf5, 0xa2, 0xdf, 0x12, 0xa0, 0x1d, 0xd0, 0x0e, 0x68, 0x47, 0xbf, 0x25,
		0xce, 0x4d, 0x84, 0x7e, 0x4b, 0x4b, 0xe2, 0xd1, 0x6f, 0xa9, 0xf8, 0x95, 0xa2, 0xdf, 0x92, 0x69,
		0x6f, 0x19, 0xfd, 0x96, 0x0c, 0x26, 0x33, 0xcc, 0xeb, 0xb7, 0xb4, 0x26, 0x29, 0x94, 0xcb, 0x32,
		0x98, 0xd5, 0x6f, 0xa9, 0x28, 0x3f, 0x34, 0xbb, 0x65, 0xf4, 0x5b, 0x32, 0x34, 0xd1, 0xc8, 0x95,
		0xb9, 0xaa, 0x6b, 0x03, 0xb5, 0x24, 0xb5, 0x28, 0x86, 0xb6, 0xef, 0xbc, 0x89, 0xc8, 0x1e, 0x46,
		0x61, 0x12, 0xba, 0xa1, 0xcf, 0x9a, 0x64, 0xcc, 0x4b, 0x6f, 0x38, 0xdd, 0x78, 0x80, 0x43, 0x57,
		0xfa, 0x63, 0x56, 0x1c, 0xba, 0xca, 0x3d, 0x00, 0x39, 0xe5, 0xb8, 0xac, 0x46, 0xf6, 0x3f, 0x23,
		0xc7, 0x97, 0x7d, 0x29, 0x22, 0xbe, 0x04, 0xe4, 0xda, 0x2b, 0xa0, 0x9c, 0xb3, 0x36, 0x95, 0xd6,
		0x45, 0x4f, 0xa1, 0x9c, 0xd3, 0x1c, 0x2f, 0x5e, 0x43, 0x39, 0xa7, 0x1e, 0xcd, 0xb5, 0x98, 0x67,
		0xa4, 0xeb, 0x99, 0x8d, 0x9e, 0xad, 0xc2, 0xe5, 0xc9, 0x5f, 0xe7, 0xb7, 0x8f, 0x37, 0xb7, 0xd7,
		0xf7, 0xd7, 0xa7, 0xd7, 0x97, 0x8f, 0xff, 0xfb, 0xed, 0xe4, 0xf2, 0xe2, 0xcb, 0xc5, 0xf9, 0x2d,
		0xd7, 0x4e, 0xd7, 0x30, 0x09, 0x5d, 0xd3, 0x74, 0xf8, 0x75, 0x2b, 0xf1, 0xf8, 0xed, 0xea, 0xee,
		0xe6, 0xfc, 0x74, 0xfc, 0xff, 0x67, 0xa6, 0xd1, 0xb9, 0x0f, 0x4d, 0x6b, 0x75, 0x33, 0xe7, 0xe9,
		0x46, 0x4f, 0xdf, 0x45, 0x64, 0x87, 0xfd, 0xd4, 0x55, 0x96, 0x41, 0x9c, 0x38, 0x81, 0x2b, 0x18,
		0xe7, 0xc9, 0xae, 0xbb, 0x00, 0x6c, 0x3a, 0x6c, 0x3a, 0x6c, 0xba, 0xc1, 0x36, 0x9d, 0x2d, 0x79,
		0xc4, 0x98, 0x34, 0x62, 0x4e, 0x16, 0x31, 0xa6, 0xdc, 0x74, 0x24, 0x87, 0x34, 0x65, 0x10, 0x74,
		0x25, 0x83, 0x74, 0xa6, 0x07, 0x18, 0x93, 0x3f, 0x5a, 0x92, 0x3e, 0xba, 0x5f, 0x95, 0xfe, 0x24,
		0x8f, 0xd6, 0xb7, 0x67, 0x48, 0xf2, 0xe4, 0xa1, 0x4b, 0x27, 0xaf, 0x98, 0x63, 0x32, 0x2d, 0xa7,
		0xac, 0x98, 0x7c, 0xcc, 0x1e, 0xd5, 0x9b, 0x64, 0x74, 0x8c, 0x16, 0x9d, 0xa2, 0x27, 0x19, 0xd8,
		0x62, 0xf6, 0xb4, 0x0c, 0xd6, 0x4f, 0x87, 0x5b, 0xb4, 0xe4, 0x12, 0xf5, 0xda, 0x78, 0xa2, 0x1c,
		0x67, 0xed, 0x56, 0xe5, 0xd4, 0x90, 0x02, 0xe3, 0xca, 0xab, 0x58, 0xba, 0x93, 0x61, 0x62, 0x78,
		0x39, 0xbe, 0xcf, 0x9b, 0xd9, 0x6d, 0x1a, 0x9c, 0x14, 0x4b, 0x17, 0x55, 0xc6, 0x0c, 0x3d, 0x07,
		0x33, 0x49, 0x48, 0x76, 0xcd, 0x2a, 0x08, 0x83, 0x40, 0xb8, 0x89, 0x7c, 0x26, 0xa6, 0x6d, 0x3b,
		0x7d, 0xc2, 0x6e, 0x61, 0x09, 0xbb, 0x92, 0xf4, 0x9a, 0x3d, 0x74, 0x18, 0xd8, 0x22, 0xf0, 0x88,
		0x2d, 0x41, 0xf3, 0x6a, 0x5a, 0x24, 0x1d, 0x67, 0xef, 0x6a, 0x55, 0x69, 0x90, 0x63, 0xba, 0x55,
		0xde, 0x0c, 0x82, 0x8c, 0xed, 0x1c, 0xde, 0x42, 0xc3, 0x01, 0x2d, 0xe8, 0x90, 0xdb, 0xed, 0xdb,
		0x2e, 0xc8, 0x7b, 0xc4, 0xa3, 0xc7, 0x7d, 0xc4, 0xe3, 0x43, 0x7b, 0x8e, 0x78, 0xb0, 0x02, 0x8a,
		0x2e, 0x60, 0xd1, 0x0e, 0x30, 0xda, 0x81, 0xa6, 0x2e, 0xc0, 0x61, 0xa6, 0x9f, 0x98, 0xf6, 0x31,
		0x17, 0x10, 0x6d, 0xf4, 0x51, 0x78, 0xba, 0xab, 0x55, 0x72, 0x5c, 0x38, 0x3a, 0xaf, 0xd5, 0x45,
		0xab, 0x72, 0x9f, 0x3f, 0xd3, 0x09, 0x52, 0xb5, 0x82, 0x95, 0x6e, 0xd0, 0xaa, 0x0d, 0xbc, 0x6a,
		0x03, 0xb1, 0xba, 0xc1, 0x8c, 0x17, 0xd4, 0x98, 0xc1, 0x2d, 0x5b, 0x0c, 0xf6, 0x33, 0x6d, 0x39,
		0x2d, 0xe0, 0xeb, 0x20, 0xb7, 0xd6, 0x13, 0x3a, 0xd2, 0x20, 0xdb, 0xb0, 0x7e, 0xd0, 0x8b, 0x7b,
		0xf4, 0xf3, 0x8c, 0x35, 0x2a, 0xfa, 0x55, 0x01, 0xe0, 0x17, 0xfc, 0x19, 0xbd, 0xbd, 0x9d, 0xbe,
		0x6d, 0xce, 0x99, 0x42, 0xd4, 0x32, 0x80, 0x60, 0xed, 0x56, 0xd7, 0x30, 0x90, 0x00, 0x86, 0xb6,
		0xac, 0xa1, 0x65, 0xac, 0xbf, 0x81, 0x91, 0xe5, 0x37, 0xb2, 0x7c, 0xf5, 0x3b, 0x30, 0xb0, 0x30,
		0xb0, 0x46, 0x0f, 0x5c, 0x68, 0x91, 0x69, 0xac, 0xc1, 0x1e, 0xc2, 0x08, 0xc2, 0x08, 0xc2, 0x08,
		0xc2, 0x08, 0xc2, 0x08, 0x1a, 0x62, 0x04, 0xbb, 0x62, 0xe0, 0x78, 0x07, 0x58, 0xac, 0xc7, 0x5d,
		0xc6, 0x81, 0x16, 0x30, 0x74, 0x30, 0x74, 0x30, 0x74, 0x30, 0x74, 0x30, 0x74, 0x0d, 0x0c, 0xec,
		0xd0, 0x68, 0xd5, 0x8c, 0xca, 0x6b, 0x2a, 0x0c, 0xfc, 0xb0, 0x74, 0xe7, 0x11, 0x79, 0x8a, 0xd6,
		0x73, 0x52, 0x39, 0x47, 0x85, 0xe4, 0x85, 0x33, 0x96, 0x33, 0xe7, 0x84, 0xb3, 0x94, 0x37, 0xeb,
		0xda, 0x41, 0xcc, 0xdd, 0xa5, 0x32, 0xb9, 0xba, 0xca, 0xa1, 0xb3, 0x7c, 0x49, 0x61, 0x76, 0xa4,
		0x9e, 0xb2, 0x1d, 0x4b, 0x4f, 0xfd, 0xf4, 0xa9, 0x18, 0x8e, 0x55, 0x67, 0x2c, 0x60, 0x7a, 0xe7,
		0xe7, 0x81, 0xb7, 0x3a, 0xc8, 0x24, 0xff, 0xcb, 0xfd, 0x1d, 0x6a, 0xcb, 0xeb, 0xfa, 0x52, 0x04,
		0x09, 0xdb, 0x3c, 0xf8, 0xb5, 0x96, 0x77, 0xcd, 0x75, 0x50, 0xd5, 0xc5, 0xe3, 0xd1, 0xa3, 0xaa,
		0xab, 0x66, 0xef, 0x1d, 0x55, 0x5d, 0x2c, 0x02, 0x91, 0x62, 0x06, 0xe9, 0x00, 0xd2, 0x01, 0xa4,
		0x03, 0x48, 0x87, 0xee, 0x91, 0x0e, 0x48, 0x31, 0x6f, 0x37, 0x8d, 0x48, 0x31, 0xc3, 0x08, 0xc2,
		0x08, 0xc2, 0x08, 0xc2, 0x08, 0x76, 0xc7, 0x08, 0x22, 0xc5, 0xcc, 0x8b, 0xbb, 0x48, 0x31, 0xc3,
		0xd0, 0xc1, 0xd0, 0xc1, 0xd0, 0xc1, 0xd0, 0x35, 0x69, 0xe8, 0x90, 0x62, 0xae, 0x00, 0x3f, 0x55,
		0x53, 0xcc, 0x48, 0x24, 0x23, 0x91, 0xcc, 0xf6, 0xd0, 0xcd, 0x24, 0x92, 0xb5, 0x26, 0x08, 0xad,
		0xda, 0xf3, 0xc7, 0xa7, 0xe9, 0xe3, 0x2c, 0xfd, 0xf9, 0x4e, 0xa5, 0x8d, 0xe7, 0xaf, 0x70, 0x18,
		0x46, 0x89, 0xed, 0xc9, 0x68, 0xf2, 0x4f, 0x0d, 0x99, 0xe3, 0xb5, 0x97, 0x32, 0x7c, 0xea, 0x2b,
		0x92, 0xc7, 0x48, 0x1e, 0x97, 0xf5, 0xc7, 0xbb, 0x90, 0x3c, 0xd6, 0x37, 0x01, 0x56, 0x0b, 0x2e,
		0x58, 0x98, 0xee, 0xad, 0x6e, 0x0f, 0xa2, 0xd0, 0x17, 0xfa, 0x4d, 0x41, 0x7a, 0x15, 0x58, 0x01,
		0x58, 0x01, 0x58, 0x01, 0x58, 0x81, 0x7d, 0x6e, 0x48, 0x80, 0x01, 0xa8, 0xf0, 0x4c, 0x2b, 0x7d,
		0xd8, 0xa7, 0x51, 0x16, 0x33, 0xfe, 0x17, 0x5d, 0x04, 0xf0, 0x0f, 0xf8, 0x07, 0xfc, 0x03, 0xfe,
		0x35, 0x82, 0x03, 0x0c, 0x81, 0xba, 0x21, 0xe0, 0x1b, 0xa0, 0xba, 0xed, 0x85, 0x73, 0x8e, 0x63,
		0x84, 0x49, 0x80, 0x49, 0x80, 0x49, 0xd8, 0x35, 0x93, 0xc0, 0x8d, 0x10, 0x16, 0xf3, 0xe0, 0xd6,
		0x4c, 0xa6, 0x96, 0x01, 0xae, 0xb9, 0xd5, 0xd1, 0x3c, 0xc8, 0x35, 0xbb, 0x9e, 0x86, 0x81, 0xae,
		0xb3, 0x1f, 0x4d, 0x05, 0x20, 0xcd, 0x0c, 0x78, 0xe5, 0xd5, 0xce, 0xd9, 0xcf, 0xc3, 0xce, 0xcd,
		0x37, 0x63, 0xf1, 0x52, 0x64, 0x5f, 0xb8, 0x6f, 0xae, 0x2f, 0xec, 0x38, 0x71, 0x12, 0x1d, 0xa1,
		0xea, 0xca, 0x05, 0xe0, 0x93, 0x70, 0xf9, 0x24, 0x4f, 0x4f, 0xbc, 0x14, 0x3f, 0xbc, 0x91, 0x0a,
		0xde, 0x48, 0xba, 0xf8, 0xf0, 0x43, 0x8c, 0x00, 0x03, 0x84, 0xa5, 0x15, 0x9e, 0x49, 0x0f, 0x21,
		0xa9, 0x81, 0x81, 0x64, 0x3f, 0xc3, 0x7e, 0x00, 0x68, 0x07, 0xb4, 0x77, 0x1c, 0xda, 0xd9, 0xcf,
		0xad, 0x3f, 0x4f, 0x27, 0x16, 0x6b, 0x0a, 0xcd, 0x26, 0xe2, 0x71, 0x56, 0xa1, 0xae, 0x29, 0x23,
		0xcc, 0xc0, 0xa3, 0x1b, 0x80, 0x6a, 0x03, 0xa2, 0xda, 0x00, 0xa9, 0x3e, 0x60, 0xd2, 0x13, 0x65,
		0xb7, 0xef, 0x9c, 0x42, 0x9c, 0x44, 0x32, 0x18, 0xe8, 0x3c, 0xa6, 0x70, 0xdc, 0x81, 0x33, 0x6c,
		0x29, 0x50, 0xf3, 0x66, 0xbb, 0x8b, 0x8d, 0x01, 0x77, 0x3e, 0x0b, 0x16, 0x01, 0x16, 0x01, 0x16,
		0x01, 0x16, 0x01, 0x16, 0xc1, 0xd4, 0xf3, 0x5f, 0xec, 0xb0, 0x8f, 0xd3, 0x5d, 0x2b, 0xc2, 0x71,
		0xba, 0xab, 0xb6, 0xd3, 0x5d, 0xdc, 0xd5, 0x38, 0xb5, 0x9e, 0xe5, 0x4a, 0x01, 0x72, 0x87, 0xb8,
		0xd0, 0x70, 0x28, 0xa2, 0x74, 0x67, 0x39, 0xbe, 0xae, 0xf4, 0x57, 0xfe, 0x12, 0x48, 0x80, 0x19,
		0xea, 0x9a, 0x82, 0x25, 0x6d, 0xce, 0xf5, 0xec, 0x4a, 0x02, 0x4c, 0x17, 0x1c, 0x58, 0x48, 0x81,
		0x95, 0x7f, 0xa6, 0xa1, 0x13, 0xd5, 0xd2, 0xea, 0x79, 0xcd, 0x75, 0xd0, 0xea, 0x99, 0xcb, 0x00,
		0xa0, 0x2a, 0xb3, 0x71, 0x33, 0x80, 0x56, 0xcf, 0x95, 0x05, 0xa2, 0xd5, 0x73, 0x55, 0x48, 0x42,
		0xf3, 0xaf, 0xfa, 0x60, 0xaa, 0x36, 0xb8, 0xaa, 0x0d, 0xb6, 0xd6, 0xc3, 0x17, 0x9a, 0x7f, 0xe9,
		0xda, 0xfd, 0x68, 0xfe, 0x85, 0x56, 0xcf, 0xaa, 0xa6, 0x11, 0xad, 0x9e, 0x61, 0x04, 0x61, 0x04,
		0x61, 0x04, 0x61, 0x04, 0xbb, 0x63, 0x04, 0xd1, 0xea, 0x99, 0x17, 0x77, 0xd1, 0xea, 0x19, 0x86,
		0x0e, 0x86, 0x0e, 0x86, 0x0e, 0x86, 0xae, 0x49, 0x43, 0x87, 0x56, 0xcf, 0xa5, 0x95, 0x75, 0xa7,
		0x8a, 0x3c, 0xb4, 0x26, 0x7e, 0xac, 0xda, 0xcb, 0x3e, 0x6e, 0xd2, 0xc7, 0xd9, 0xd9, 0x16, 0xbe,
		0xc3, 0x28, 0x4c, 0xa6, 0xaf, 0x50, 0x4f, 0xb7, 0xc6, 0xd5, 0x0b, 0x18, 0x5e, 0x01, 0x72, 0x80,
		0x04, 0x20, 0x12, 0x80, 0x25, 0x7d, 0x2a, 0xb4, 0x65, 0x31, 0x0f, 0x18, 0x2c, 0xd4, 0x82, 0x54,
		0x08, 0xc8, 0x45, 0xf4, 0x24, 0x83, 0xd4, 0xf3, 0xd0, 0xd9, 0xbb, 0xbd, 0xf8, 0x32, 0x28, 0x05,
		0xe4, 0x32, 0x04, 0x28, 0x05, 0x6c, 0xd0, 0x04, 0xa0, 0x14, 0xd0, 0x34, 0x48, 0x80, 0x09, 0x50,
		0x34, 0x01, 0x9a, 0xaa, 0xc0, 0xf3, 0x97, 0x00, 0xf4, 0x03, 0xfa, 0x01, 0xfd, 0x80, 0x7e, 0x54,
		0x81, 0x37, 0x05, 0xfb, 0xac, 0x19, 0xb8, 0xec, 0xd5, 0x72, 0x0e, 0xa1, 0x03, 0xc1, 0x03, 0x70,
		0x07, 0xb8, 0xb7, 0x0d, 0xdc, 0x99, 0x53, 0xee, 0xcc, 0x67, 0xc6, 0x19, 0xb0, 0x77, 0xaf, 0xc1,
		0xf7, 0x37, 0x3b, 0x13, 0xce, 0xb0, 0xc8, 0xbc, 0xa7, 0xc0, 0xb5, 0x9c, 0xfe, 0xd6, 0x72, 0xea,
		0x9b, 0xf7, 0xb4, 0x37, 0xf5, 0x7d, 0x32, 0x27, 0xfe, 0x9a, 0x49, 0xf8, 0x31, 0xa8, 0x7b, 0xad,
		0x19, 0x3d, 0x1a, 0xa8, 0xab, 0x03, 0x80, 0xda, 0x37, 0x15, 0xb7, 0x18, 0xd7, 0xd6, 0xd2, 0xbe,
		0xa5, 0x08, 0xbb, 0x47, 0xdf, 0xae, 0x51, 0xdb, 0x22, 0xd5, 0x5f, 0xb0, 0xc2, 0xcb, 0x65, 0x1d,
		0xb1, 0xa4, 0x61, 0x6a, 0x0a, 0xd1, 0x6f, 0x27, 0x93, 0x30, 0x1c, 0x7e, 0x39, 0x7b, 0x61, 0x1b,
		0x97, 0xe7, 0xcd, 0xee, 0x69, 0xb3, 0x7b, 0xd6, 0x3a, 0x0a, 0xcf, 0xea, 0x05, 0x4e, 0xb2, 0x6f,
		0xac, 0x69, 0x14, 0x11, 0x07, 0xb5, 0x41, 0xa4, 0x32, 0x6a, 0x02, 0x38, 0xa6, 0xa6, 0xfc, 0xcc,
		0x7d, 0xb7, 0x77, 0x0f, 0xd8, 0xc8, 0x04, 0x43, 0x97, 0x61, 0x8d, 0x4a, 0x10, 0xb4, 0x16, 0xd4,
		0xd8, 0x9a, 0xd8, 0x77, 0x08, 0xd0, 0x82, 0x9f, 0x5c, 0xf3, 0xf1, 0x17, 0xde, 0x43, 0x5e, 0x28,
		0x80, 0x0d, 0x1e, 0x1b, 0x3c, 0x36, 0xc2, 0xee, 0x61, 0x9b, 0x20, 0xdf, 0x41, 0x6c, 0x23, 0x55,
		0x0f, 0x17, 0xc0, 0x1a, 0xa1, 0x26, 0x10, 0x88, 0x06, 0x44, 0x03, 0xa2, 0xb1, 0x4d, 0x43, 0xef,
		0x0c, 0x98, 0x3d, 0x39, 0xc3, 0xa1, 0xf0, 0xec, 0x58, 0x44, 0xcf, 0xd2, 0x15, 0xb6, 0x0c, 0x12,
		0x11, 0xf5, 0x1d, 0x97, 0xda, 0x22, 0x2d, 0x7b, 0x19, 0x5b, 0xe4, 0xd3, 0xc0, 0xae, 0x07, 0xb0,
		0x03, 0xd8, 0xb5, 0x11, 0xec, 0xa8, 0x2d, 0xc6, 0xf6, 0xd7, 0xe8, 0x13, 0xcf, 0x29, 0xf3, 0x79,
		0x5f, 0xf4, 0x4d, 0x57, 0xa1, 0xe6, 0x75, 0x59, 0x6a, 0x5d, 0xd8, 0x6a, 0x5c, 0x38, 0x6b, 0x5b,
		0x34, 0xd5, 0xb4, 0x70, 0xd7, 0xb2, 0x68, 0xab, 0x61, 0xd1, 0x56, 0xbb, 0xa2, 0xaf, 0x66, 0xa5,
		0xd9, 0x1a, 0x07, 0xb6, 0xda, 0x14, 0x0d, 0x07, 0xb4, 0x39, 0x0f, 0x64, 0x97, 0x38, 0x80, 0x3d,
		0xfd, 0x6c, 0x0d, 0xf2, 0x2c, 0xfd, 0x0d, 0xfd, 0xb0, 0x75, 0x5b, 0x12, 0xdb, 0xd3, 0x1a, 0x18,
		0x0d, 0x70, 0xcc, 0x53, 0x13, 0xc3, 0x5a, 0x0b, 0xc3, 0x5a, 0x03, 0xc3, 0x53, 0xfb, 0xb2, 0xab,
		0x05, 0x09, 0x5a, 0x9c, 0x73, 0x4b, 0x4f, 0x99, 0xc2, 0xd7, 0xf4, 0x5e, 0xef, 0x26, 0xb7, 0x7a,
		0x31, 0xbb, 0x53, 0x42, 0x75, 0x4b, 0x3d, 0xf1, 0x15, 0x4f, 0xad, 0x02, 0x43, 0x71, 0x02, 0x39,
		0x56, 0x3a, 0x40, 0x0e, 0x6f, 0x07, 0x22, 0xa5, 0x76, 0xe5, 0xf0, 0xc8, 0x71, 0x12, 0xcf, 0xb4,
		0x52, 0xd6, 0xe9, 0xa4, 0x88, 0x7c, 0x10, 0xf9, 0x20, 0xf2, 0xd1, 0x16, 0xf9, 0xb0, 0xcd, 0x72,
		0x63, 0xaa, 0xc3, 0x27, 0xc4, 0x18, 0xef, 0x88, 0xb8, 0xc7, 0x33, 0x9d, 0x93, 0x7f, 0x1a, 0x27,
		0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x9a, 0xc9, 0xb2, 0x90, 0x61, 0x0e, 0x9c, 0x4a, 0x97,
		0x39, 0x15, 0x6a, 0xc9, 0x33, 0x3f, 0x73, 0xa2, 0x3e, 0xc4, 0xb1, 0x1e, 0x8a, 0x84, 0x6f, 0x28,
		0x23, 0xfb, 0xd4, 0x35, 0x14, 0x40, 0x83, 0x3c, 0x41, 0x01, 0x34, 0xeb, 0x10, 0xc3, 0xce, 0x54,
		0xd6, 0xf0, 0x36, 0x9a, 0xd3, 0xd2, 0x45, 0x0a, 0xf0, 0x06, 0x78, 0x03, 0xbc, 0xb1, 0x37, 0x66,
		0xeb, 0x24, 0xc4, 0x31, 0x79, 0x6e, 0x5c, 0x9d, 0x92, 0x00, 0x6d, 0x80, 0x36, 0x40, 0x1b, 0x6b,
		0xe3, 0xb1, 0xee, 0xc0, 0x5a, 0x98, 0x38, 0xbe, 0x3d, 0x0c, 0x13, 0x11, 0x24, 0xd2, 0xf1, 0x6d,
		0xd7, 0x19, 0x3a, 0xae, 0x4c, 0xde, 0x18, 0xd0, 0x6d, 0x9d, 0x64, 0xd4, 0x41, 0x03, 0xe4, 0x3a,
		0x06, 0x72, 0xe4, 0xdc, 0xfe, 0x44, 0x99, 0x62, 0xf9, 0x5f, 0xc6, 0x1c, 0xd7, 0x82, 0x4c, 0x9e,
		0x1c, 0x57, 0x0f, 0x39, 0xae, 0xba, 0x55, 0x57, 0x9b, 0x0a, 0x6b, 0x53, 0x65, 0x7d, 0x2a, 0x4d,
		0x53, 0x6d, 0xa2, 0x8a, 0xb3, 0xa9, 0x7a, 0x26, 0x68, 0x14, 0xc8, 0x44, 0x43, 0x0b, 0xcf, 0xb1,
		0x54, 0xb4, 0xf0, 0x34, 0x0c, 0x0e, 0x74, 0xc1, 0x82, 0x76, 0x78, 0xd0, 0x0e, 0x13, 0xfa, 0xe1,
		0x82, 0x07, 0x36, 0x98, 0xe0, 0x83, 0x2f, 0x2c, 0x5a, 0xbb, 0x73, 0x67, 0x7e, 0xb8, 0xcd, 0x08,
		0x05, 0x16, 0x7a, 0x33, 0x97, 0x7f, 0x26, 0x9e, 0x3a, 0xcd, 0xdc, 0x7b, 0xe5, 0xa8, 0xd7, 0x04,
		0xb4, 0x03, 0xda, 0x01, 0xed, 0xad, 0x85, 0xf6, 0x91, 0x0c, 0x92, 0x4f, 0x87, 0x1a, 0x30, 0xfd,
		0x98, 0x51, 0xe4, 0xad, 0x13, 0x0c, 0xc6, 0x77, 0xfb, 0x1f, 0xd6, 0x4d, 0xa4, 0x61, 0x00, 0xec,
		0x57, 0x19, 0x68, 0x1c, 0x49, 0xac, 0x65, 0xce, 0x74, 0x26, 0xfe, 0xcf, 0xa9, 0x8d, 0xd1, 0x25,
		0xff, 0x4b, 0xe4, 0xa4, 0x99, 0xa3, 0x33, 0x39, 0x90, 0x69, 0x99, 0xd5, 0x01, 0xff, 0xdc, 0x61,
		0x0d, 0x43, 0x71, 0xbf, 0x3a, 0xaf, 0xad, 0x7f, 0xa5, 0xbd, 0xe3, 0xc3, 0xc3, 0x4f, 0x47, 0x87,
		0x87, 0x07, 0x47, 0xff, 0x3a, 0x3a, 0xf8, 0xf7, 0xc7, 0x8f, 0xbd, 0x4f, 0xbd, 0x8f, 0x2d, 0x7e,
		0xcb, 0x86, 0x4e, 0x10, 0x7e, 0x40, 0x43, 0xfa, 0x16, 0x35, 0x30, 0x5f, 0x97, 0x6b, 0x78, 0xcf,
		0xc6, 0x71, 0x5a, 0x7a, 0xea, 0x15, 0xef, 0xc7, 0xf7, 0x77, 0x33, 0xbb, 0xef, 0xd3, 0xe9, 0x6d,
		0x4f, 0x3e, 0xbe, 0x1b, 0xdf, 0x35, 0x9a, 0x99, 0x1b, 0xbc, 0xbd, 0xcc, 0xaa, 0x7d, 0x2d, 0xde,
		0x4b, 0x26, 0x57, 0xc3, 0x92, 0x3a, 0xb8, 0x70, 0xcc, 0x24, 0x61, 0xab, 0x9c, 0xc0, 0x81, 0x61,
		0xed, 0x71, 0x29, 0x92, 0x8a, 0xdc, 0x71, 0x24, 0xd7, 0x54, 0x1f, 0xe2, 0xd9, 0x19, 0x05, 0xac,
		0xd9, 0xd3, 0xb8, 0xbe, 0x84, 0x29, 0x3c, 0xb4, 0xd3, 0x30, 0x2c, 0xa7, 0x60, 0x58, 0x4e, 0xbf,
		0xd0, 0x4e, 0xbd, 0x54, 0x5d, 0xef, 0x93, 0xd1, 0x60, 0x7c, 0xbb, 0xc2, 0x53, 0x22, 0x05, 0x88,
		0xc6, 0x63, 0x7d, 0x77, 0x9e, 0x99, 0x63, 0xf0, 0x39, 0xef, 0x32, 0x14, 0xfe, 0x7a, 0xe5, 0xe3,
		0xd4, 0x9d, 0x58, 0xfe, 0xa8, 0xd0, 0xb9, 0x50, 0xb5, 0x5c, 0x67, 0x22, 0x76, 0x23, 0x39, 0x9c,
		0x3a, 0x4d, 0xfb, 0x41, 0x18, 0xa0, 0x6b, 0x46, 0xe1, 0xe0, 0x7e, 0x98, 0x42, 0x35, 0x53, 0xb8,
		0xb0, 0x84, 0x5d, 0xa9, 0xb2, 0xc9, 0x86, 0x16, 0xb1, 0xd5, 0xd8, 0x30, 0x8c, 0x41, 0x62, 0xd6,
		0x76, 0x26, 0xad, 0x67, 0xd3, 0x7e, 0x4e, 0x14, 0xd0, 0x8a, 0x06, 0xdc, 0xa8, 0xa0, 0x0d, 0x1d,
		0xb4, 0xa1, 0x84, 0x6e, 0xb4, 0x60, 0xe2, 0xbc, 0xea, 0x46, 0x2b, 0xcd, 0xee, 0xeb, 0x43, 0x55,
		0x77, 0x8a, 0x46, 0xa6, 0xe8, 0x22, 0x51, 0x14, 0x36, 0x35, 0x3f, 0x47, 0x52, 0x6d, 0x6f, 0x96,
		0x7f, 0x4f, 0x15, 0x2c, 0xd6, 0x7e, 0x24, 0x86, 0xc2, 0x49, 0x6c, 0x4f, 0xf8, 0xf2, 0x59, 0x44,
		0x6f, 0xb6, 0xfb, 0xc3, 0x89, 0x1c, 0x37, 0x11, 0x91, 0x8c, 0x13, 0xe9, 0x56, 0x7e, 0x67, 0x19,
		0xd6, 0x6d, 0x91, 0x5b, 0x35, 0x08, 0x52, 0x22, 0x46, 0x94, 0xab, 0xac, 0x29, 0xe8, 0xcf, 0xd6,
		0x5d, 0x9a, 0x8a, 0xec, 0x6c, 0x48, 0xce, 0x86, 0xdc, 0x9c, 0xdd, 0xa3, 0xf5, 0x06, 0xdd, 0xca,
		0x64, 0x06, 0xbd, 0x15, 0x88, 0x22, 0x7d, 0xa1, 0x07, 0x1d, 0x62, 0x11, 0x3d, 0x8b, 0x28, 0x6d,
		0x4f, 0x39, 0x88, 0x64, 0xf2, 0x66, 0x0f, 0xa3, 0xd0, 0x15, 0x71, 0xcc, 0x06, 0x13, 0x65, 0x2f,
		0x00, 0xbc, 0x00, 0x5e, 0x00, 0x2f, 0x8c, 0xc7, 0x0b, 0xb6, 0xf3, 0x5b, 0xdc, 0xe7, 0xb6, 0x14,
		0xe3, 0x4b, 0x03, 0x10, 0x41, 0x39, 0x85, 0xd2, 0x05, 0x3c, 0x50, 0x4d, 0x91, 0xe8, 0x45, 0x03,
		0x55, 0xe6, 0x87, 0xe3, 0x5c, 0x15, 0xdf, 0x79, 0x2a, 0xb4, 0x2f, 0x06, 0x05, 0xdb, 0xdd, 0x23,
		0x8e, 0x2c, 0xe7, 0x9d, 0x38, 0xcf, 0x39, 0xa1, 0x75, 0x27, 0xb8, 0x51, 0x03, 0xd4, 0x98, 0x89,
		0x15, 0x35, 0xae, 0x75, 0x27, 0xf7, 0x39, 0x24, 0xce, 0xf3, 0x47, 0x4c, 0xe7, 0x8e, 0x1a, 0xec,
		0x87, 0x8c, 0x3e, 0xf0, 0x80, 0x52, 0x40, 0x69, 0x47, 0xa0, 0x94, 0xed, 0xdc, 0x0f, 0xe3, 0x79,
		0x1f, 0xe6, 0x73, 0x3e, 0x8c, 0xa7, 0xa5, 0x74, 0x9c, 0xeb, 0xd1, 0x74, 0xf8, 0x43, 0xd7, 0x39,
		0x1e, 0x9d, 0x27, 0x3b, 0x18, 0xcf, 0xed, 0x68, 0x39, 0xaf, 0xa3, 0xfb, 0x55, 0xe9, 0x3f, 0x9f,
		0xa3, 0xf5, 0xed, 0x19, 0x72, 0xee, 0xe5, 0x01, 0x07, 0x1f, 0x2a, 0xc8, 0xa1, 0xe7, 0xec, 0xf5,
		0x9e, 0xa0, 0xa1, 0x66, 0xf2, 0xf5, 0x1c, 0x93, 0x31, 0xad, 0xf0, 0xb8, 0xf9, 0xca, 0x0d, 0xc6,
		0x83, 0x2e, 0x7a, 0x5e, 0xb9, 0x09, 0x05, 0x1c, 0xa3, 0xc0, 0x79, 0x76, 0xa4, 0xef, 0x7c, 0xf7,
		0x85, 0x9d, 0xc8, 0x27, 0xc1, 0x96, 0x9a, 0xdd, 0x26, 0x18, 0x29, 0x59, 0xed, 0x51, 0x13, 0x52,
		0xb2, 0xea, 0xf0, 0x85, 0x94, 0xec, 0x14, 0x1f, 0x54, 0x4e, 0xb5, 0x51, 0xce, 0xe2, 0x90, 0x35,
		0xfd, 0x00, 0xa9, 0x56, 0xa4, 0x5a, 0x6b, 0xd3, 0x72, 0xc5, 0xd3, 0x66, 0xfa, 0x75, 0x7c, 0x8f,
		0x71, 0xbd, 0x14, 0x4e, 0x91, 0xa9, 0x9d, 0x1e, 0x23, 0x9d, 0x1a, 0x23, 0x9d, 0x16, 0x53, 0x3b,
		0x25, 0x56, 0x76, 0xfd, 0x14, 0x9d, 0x61, 0xba, 0x13, 0xbc, 0x5f, 0xa5, 0x5a, 0x8f, 0xe4, 0xe3,
		0x96, 0x53, 0xed, 0xed, 0xdb, 0xb2, 0xc4, 0x92, 0x56, 0x33, 0x4a, 0x2a, 0xaa, 0x5a, 0xd1, 0x08,
		0x55, 0x36, 0x3e, 0x2a, 0x46, 0x87, 0x68, 0x6c, 0x54, 0x8d, 0x0c, 0xd9, 0xb8, 0x90, 0x8d, 0x0a,
		0xdd, 0x98, 0xf0, 0x82, 0x61, 0x65, 0xa3, 0xa1, 0x6a, 0x2c, 0x2a, 0x1a, 0x89, 0x12, 0xba, 0xb5,
		0x47, 0x78, 0xfe, 0x0a, 0x46, 0xa0, 0x1a, 0xf8, 0x2b, 0x81, 0xbe, 0x12, 0xd8, 0x57, 0x03, 0xf9,
		0x6d, 0xeb, 0x51, 0x11, 0xd4, 0x49, 0x60, 0x5e, 0x62, 0xd7, 0xa8, 0xe3, 0xf7, 0x66, 0x45, 0x5a,
		0xbf, 0x69, 0x8a, 0x7f, 0xb3, 0x66, 0xd9, 0xca, 0x2e, 0x97, 0xca, 0x32, 0x6d, 0x58, 0x9d, 0xca,
		0xab, 0x52, 0xbc, 0x18, 0xf9, 0x47, 0x2d, 0x78, 0xcc, 0xcd, 0x76, 0xa9, 0x0c, 0x0a, 0x6c, 0xb1,
		0x3b, 0x5b, 0xed, 0x4c, 0x19, 0xbb, 0x52, 0xd1, 0x8e, 0x94, 0xb5, 0x1b, 0x95, 0xed, 0x44, 0x65,
		0xbb, 0x50, 0xdd, 0x0e, 0x54, 0xdb, 0xa0, 0x5b, 0x71, 0xbd, 0x2c, 0x8e, 0x6f, 0xc1, 0xed, 0x82,
		0xbd, 0xb4, 0xb7, 0xe1, 0xfe, 0xb6, 0xb4, 0x14, 0xd8, 0xb2, 0xd9, 0x8a, 0x5a, 0x02, 0xac, 0xdb,
		0x7c, 0x2b, 0xe7, 0x72, 0xa7, 0xd7, 0x8d, 0xad, 0xe4, 0x87, 0xb0, 0xbe, 0x3b, 0xb1, 0xb0, 0xee,
		0x4f, 0x6e, 0x2e, 0xac, 0xa9, 0x9e, 0x58, 0x2f, 0x32, 0xf9, 0x31, 0xfe, 0x47, 0x76, 0x56, 0xf2,
		0x4e, 0x44, 0xcf, 0xd2, 0x15, 0x96, 0x0c, 0xfa, 0x61, 0xf4, 0xe4, 0x6c, 0x98, 0xc5, 0xb4, 0xa5,
		0x36, 0x54, 0xcb, 0x36, 0x2f, 0x75, 0x6c, 0xd6, 0xec, 0xcd, 0x5e, 0xe6, 0x58, 0x6a, 0xb5, 0x2d,
		0xbf, 0xad, 0xce, 0x71, 0x7f, 0xf1, 0xa2, 0x19, 0xda, 0x6e, 0x5d, 0x9d, 0xac, 0x2a, 0xaa, 0xe8,
		0xdb, 0x5b, 0x9e, 0xbb, 0xb6, 0x4d, 0x58, 0x72, 0x33, 0x56, 0xf6, 0xf1, 0xab, 0xf8, 0xf6, 0xa4,
		0xb3, 0xdd, 0x55, 0x3d, 0x7a, 0x65, 0x4f, 0x5e, 0xd9, 0x83, 0xa7, 0x9e, 0xad, 0xfe, 0xc5, 0xeb,
		0x98, 0x94, 0xb1, 0xe1, 0xcd, 0xc2, 0xe9, 0xcc, 0x17, 0x31, 0x19, 0x4a, 0x4b, 0xb8, 0xa4, 0x26,
		0xc3, 0xe8, 0xf6, 0x84, 0x03, 0x33, 0x84, 0xe6, 0x9c, 0xd5, 0xd2, 0xf0, 0x59, 0xc1, 0xcd, 0xad,
		0x6f, 0xc3, 0x99, 0x07, 0x9b, 0x55, 0x62, 0xa4, 0x16, 0x42, 0x66, 0xf9, 0x0c, 0x59, 0xe7, 0xe0,
		0xf2, 0xc6, 0x49, 0x7e, 0x9c, 0x86, 0x4f, 0xc3, 0xd1, 0x24, 0xae, 0x34, 0x19, 0x35, 0xc7, 0xf1,
		0xec, 0x78, 0x21, 0x66, 0xf7, 0xda, 0x52, 0xf4, 0xcc, 0x3d, 0x46, 0x5d, 0x28, 0xba, 0x7a, 0xe1,
		0xea, 0x68, 0xba, 0x56, 0x02, 0x3f, 0xaa, 0x2a, 0xef, 0x4b, 0xf3, 0xc0, 0xb5, 0xc2, 0xbe, 0x6d,
		0x33, 0xc8, 0x96, 0xdf, 0xd7, 0xb5, 0x81, 0xed, 0xd2, 0x27, 0x0f, 0xab, 0x9c, 0xc0, 0x66, 0x32,
		0xad, 0x04, 0x89, 0x56, 0xb0, 0xc6, 0x5b, 0xb9, 0xb2, 0xe5, 0x55, 0x99, 0xdf, 0xe1, 0xe4, 0xff,
		0xa6, 0xba, 0xbd, 0xee, 0xde, 0xf6, 0x65, 0xfc, 0xc5, 0xf9, 0x29, 0x6e, 0xc3, 0x30, 0xff, 0xb2,
		0x56, 0xef, 0x77, 0x7f, 0xf1, 0x57, 0x4b, 0x37, 0x75, 0x26, 0xc6, 0xaa, 0x34, 0xb9, 0x91, 0x5f,
		0x7b, 0xbf, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x03, 0xcd,
		0x8d, 0x55, 0x4d, 0x7a, 0x10, 0x00,
	}
)


// ΛEnumTypes is a map, keyed by a YANG schema path, of the enumerated types that
// correspond with the leaf. The type is represented as a reflect.Type. The naming
// of the map ensures that there are no clashes with valid YANG identifiers.
var ΛEnumTypes = map[string][]reflect.Type{
	"/context/connectivity-context/connection/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ForwardingDirection)(0)),
	},
	"/context/connectivity-context/connection/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connection/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connection/route/resilience-route/route-state": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_RouteState)(0)),
	},
	"/context/connectivity-context/connection/switch-control/fault-condition-determination": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_FaultConditionDetermination)(0)),
	},
	"/context/connectivity-context/connection/switch-control/preferred-restoration-layer": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/switch-control/restoration-coordinate-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_CoordinateType)(0)),
	},
	"/context/connectivity-context/connection/switch-control/reversion-mode": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ReversionMode)(0)),
	},
	"/context/connectivity-context/connection/switch-control/selection-control": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionControl)(0)),
	},
	"/context/connectivity-context/connection/switch-control/switch/selection-reason": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionReason)(0)),
	},
	"/context/connectivity-context/connection/switch-control/switch/switch-direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/connectivity-context/connectivity-service/connectivity-constraint/service-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ServiceType)(0)),
	},
	"/context/connectivity-context/connectivity-service/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ForwardingDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolQualifier)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/protection-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ProtectionRole)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortRole)(0)),
	},
	"/context/connectivity-context/connectivity-service/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connectivity-service/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/fault-condition-determination": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_FaultConditionDetermination)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/preferred-restoration-layer": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/restoration-coordinate-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_CoordinateType)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/reversion-mode": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ReversionMode)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/selection-control": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionControl)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connectivity-service/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_ForwardingDirection)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_PortDirection)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolQualifier)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/role": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_PortRole)(0)),
	},
	"/context/path-computation-context/path-comp-service/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/bandwidth-optimization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/concurrent-paths": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/cost-optimization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/link-utilization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/resource-sharing": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/optimization-constraint/traffic-interruption": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/path-computation-context/path-comp-service/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_ForwardingDirection)(0)),
	},
	"/context/path-computation-context/path/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/service-interface-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/service-interface-point/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/service-interface-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_PortDirection)(0)),
	},
	"/context/service-interface-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LayerProtocolName)(0)),
	},
	"/context/service-interface-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/service-interface-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/service-interface-point/supported-layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LayerProtocolQualifier)(0)),
	},
	"/context/service-interface-point/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/link/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/link/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/link/direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingDirection)(0)),
	},
	"/context/topology-context/topology/link/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/link/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/link/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/link/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/topology-context/topology/link/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/topology-context/topology/link/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/node/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-port-role/port-role-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRoleRuleOption)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/forwarding-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/rule-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RuleType)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/signal-property/signal-property-value-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_SignalPropertyValueRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/cep-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/cep-port-role/port-role-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRoleRuleOption)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/forwarding-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/rule-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RuleType)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/signal-property/signal-property-value-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_SignalPropertyValueRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/available-cep-layer-protocol/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/connection-port-direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/connection-port-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/protection-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ProtectionRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/termination-direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/termination-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/link-port-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/link-port-role": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/termination-direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/termination-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
}