//go:build codecgen || generated
// +build codecgen generated

// Code generated by codecgen - DO NOT EDIT.

package codec

import (
	"errors"
	"runtime"
	"strconv"
	"time"
)

const (
	// ----- content types ----
	codecSelferCcUTF819780 = 1
	codecSelferCcRAW19780  = 255
	// ----- value types used ----
	codecSelferValueTypeArray19780  = 10
	codecSelferValueTypeMap19780    = 9
	codecSelferValueTypeString19780 = 6
	codecSelferValueTypeInt19780    = 2
	codecSelferValueTypeUint19780   = 3
	codecSelferValueTypeFloat19780  = 4
	codecSelferBitsize19780         = uint8(32 << (^uint(0) >> 63))
)

var (
	errCodecSelferOnlyMapOrArrayEncodeToStruct19780 = errors.New(`only encoded map or array can be decoded into a struct`)
)

type codecSelfer19780 struct{}

func init() {
	if GenVersion != 10 {
		_, file, _, _ := runtime.Caller(0)
		panic("codecgen version mismatch: current: 10, need " + strconv.FormatInt(int64(GenVersion), 10) + ". Re-generate file: " + file)
	}
	if false {
		var _ byte = 0 // reference the types, but skip this branch at build/run time
		var v0 time.Time
		_ = v0
	}
}

func (x wrapSliceUint64) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encwrapSliceUint64((wrapSliceUint64)(x), e)
		}
	}
}

func (x *wrapSliceUint64) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decwrapSliceUint64((*wrapSliceUint64)(x), d)
	}
}

func (x wrapSliceString) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encwrapSliceString((wrapSliceString)(x), e)
		}
	}
}

func (x *wrapSliceString) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decwrapSliceString((*wrapSliceString)(x), d)
	}
}

func (x wrapUint64) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		r.EncodeUint(uint64(x))
	}
}

func (x *wrapUint64) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (wrapUint64)(r.DecodeUint64())
	}
}

func (x wrapString) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		if z.EncBasicHandle().StringToRaw {
			r.EncodeStringBytesRaw(z.BytesView(string(x)))
		} else {
			r.EncodeStringEnc(codecSelferCcUTF819780, string(x))
		}
	}
}

func (x *wrapString) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (wrapString)(r.DecodeString())
	}
}

func (x wrapUint64Slice) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encwrapUint64Slice((wrapUint64Slice)(x), e)
		}
	}
}

func (x *wrapUint64Slice) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decwrapUint64Slice((*wrapUint64Slice)(x), d)
	}
}

func (x wrapStringSlice) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encwrapStringSlice((wrapStringSlice)(x), e)
		}
	}
}

func (x *wrapStringSlice) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decwrapStringSlice((*wrapStringSlice)(x), d)
	}
}

func (x *stringUint64T) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(2)
			} else {
				r.WriteMapStart(2)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.U))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"U\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `U`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.U))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *stringUint64T) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *stringUint64T) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "U":
			if r.TryDecodeAsNil() {
				x.U = 0
			} else {
				x.U = (uint64)(r.DecodeUint64())
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *stringUint64T) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.U = 0
	} else {
		x.U = (uint64)(r.DecodeUint64())
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	r.ReadArrayEnd()
}

func (x *AnonInTestStruc) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(15)
			} else {
				r.WriteMapStart(15)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AS\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AS`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"ASslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `ASslice`)
				}
				r.WriteMapElemValue()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64slice`)
				}
				r.WriteMapElemValue()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64slice`)
				}
				r.WriteMapElemValue()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF64slice`)
				}
				r.WriteMapElemValue()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF32slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF32slice`)
				}
				r.WriteMapElemValue()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16`)
				}
				r.WriteMapElemValue()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy34 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy34), e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64arr0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64arr0`)
				}
				r.WriteMapElemValue()
				yy36 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy36), e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A164slice0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A164slice0`)
				}
				r.WriteMapElemValue()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64sliceN\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64sliceN`)
				}
				r.WriteMapElemValue()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16N\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16N`)
				}
				r.WriteMapElemValue()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16E\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16E`)
				}
				r.WriteMapElemValue()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *AnonInTestStruc) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *AnonInTestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "AS":
			if r.TryDecodeAsNil() {
				x.AS = ""
			} else {
				x.AS = (string)(r.DecodeString())
			}
		case "AI64":
			if r.TryDecodeAsNil() {
				x.AI64 = 0
			} else {
				x.AI64 = (int64)(r.DecodeInt64())
			}
		case "AI16":
			if r.TryDecodeAsNil() {
				x.AI16 = 0
			} else {
				x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "AUi64":
			if r.TryDecodeAsNil() {
				x.AUi64 = 0
			} else {
				x.AUi64 = (uint64)(r.DecodeUint64())
			}
		case "ASslice":
			if r.TryDecodeAsNil() {
				x.ASslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.ASslice), d)
				}
			}
		case "AI64slice":
			if r.TryDecodeAsNil() {
				x.AI64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.AI64slice), d)
				}
			}
		case "AUi64slice":
			if r.TryDecodeAsNil() {
				x.AUi64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
				}
			}
		case "AF64slice":
			if r.TryDecodeAsNil() {
				x.AF64slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
				}
			}
		case "AF32slice":
			if r.TryDecodeAsNil() {
				x.AF32slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
				}
			}
		case "AMSU16":
			if r.TryDecodeAsNil() {
				x.AMSU16 = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
				}
			}
		case "AI64arr0":
			if r.TryDecodeAsNil() {
				x.AI64arr0 = [0]int64{}
			} else {
				if false {
				} else {
					h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
				}
			}
		case "A164slice0":
			if r.TryDecodeAsNil() {
				x.A164slice0 = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.A164slice0), d)
				}
			}
		case "AUi64sliceN":
			if r.TryDecodeAsNil() {
				x.AUi64sliceN = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
				}
			}
		case "AMSU16N":
			if r.TryDecodeAsNil() {
				x.AMSU16N = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
				}
			}
		case "AMSU16E":
			if r.TryDecodeAsNil() {
				x.AMSU16E = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *AnonInTestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj30 int
	var yyb30 bool
	var yyhl30 bool = l >= 0
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AS = ""
	} else {
		x.AS = (string)(r.DecodeString())
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AI64 = 0
	} else {
		x.AI64 = (int64)(r.DecodeInt64())
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AI16 = 0
	} else {
		x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AUi64 = 0
	} else {
		x.AUi64 = (uint64)(r.DecodeUint64())
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.ASslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.ASslice), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AI64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.AI64slice), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AUi64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AF64slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AF32slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AMSU16 = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AI64arr0 = [0]int64{}
	} else {
		if false {
		} else {
			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.A164slice0 = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.A164slice0), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AUi64sliceN = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AMSU16N = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
		}
	}
	yyj30++
	if yyhl30 {
		yyb30 = yyj30 > l
	} else {
		yyb30 = r.CheckBreak()
	}
	if yyb30 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AMSU16E = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
		}
	}
	for {
		yyj30++
		if yyhl30 {
			yyb30 = yyj30 > l
		} else {
			yyb30 = r.CheckBreak()
		}
		if yyb30 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj30-1, "")
	}
	r.ReadArrayEnd()
}

func (x *testSimpleFields) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(17)
			} else {
				r.WriteMapStart(17)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Sslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Sslice`)
				}
				r.WriteMapElemValue()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16slice`)
				}
				r.WriteMapElemValue()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64slice`)
				}
				r.WriteMapElemValue()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8slice`)
				}
				r.WriteMapElemValue()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Bslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Bslice`)
				}
				r.WriteMapElemValue()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Iptrslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Iptrslice`)
				}
				r.WriteMapElemValue()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceInt64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceInt64`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceString\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceString`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Msi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Msi64`)
				}
				r.WriteMapElemValue()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *testSimpleFields) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *testSimpleFields) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "I64":
			if r.TryDecodeAsNil() {
				x.I64 = 0
			} else {
				x.I64 = (int64)(r.DecodeInt64())
			}
		case "I8":
			if r.TryDecodeAsNil() {
				x.I8 = 0
			} else {
				x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "Ui64":
			if r.TryDecodeAsNil() {
				x.Ui64 = 0
			} else {
				x.Ui64 = (uint64)(r.DecodeUint64())
			}
		case "Ui8":
			if r.TryDecodeAsNil() {
				x.Ui8 = 0
			} else {
				x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "F64":
			if r.TryDecodeAsNil() {
				x.F64 = 0
			} else {
				x.F64 = (float64)(r.DecodeFloat64())
			}
		case "F32":
			if r.TryDecodeAsNil() {
				x.F32 = 0
			} else {
				x.F32 = (float32)(r.DecodeFloat32As64())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "Sslice":
			if r.TryDecodeAsNil() {
				x.Sslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.Sslice), d)
				}
			}
		case "I16slice":
			if r.TryDecodeAsNil() {
				x.I16slice = nil
			} else {
				if false {
				} else {
					h.decSliceint16((*[]int16)(&x.I16slice), d)
				}
			}
		case "Ui64slice":
			if r.TryDecodeAsNil() {
				x.Ui64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
				}
			}
		case "Ui8slice":
			if r.TryDecodeAsNil() {
				x.Ui8slice = nil
			} else {
				if false {
				} else {
					x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
				}
			}
		case "Bslice":
			if r.TryDecodeAsNil() {
				x.Bslice = nil
			} else {
				if false {
				} else {
					h.decSlicebool((*[]bool)(&x.Bslice), d)
				}
			}
		case "Iptrslice":
			if r.TryDecodeAsNil() {
				x.Iptrslice = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
				}
			}
		case "WrapSliceInt64":
			if r.TryDecodeAsNil() {
				x.WrapSliceInt64 = nil
			} else {
				x.WrapSliceInt64.CodecDecodeSelf(d)
			}
		case "WrapSliceString":
			if r.TryDecodeAsNil() {
				x.WrapSliceString = nil
			} else {
				x.WrapSliceString.CodecDecodeSelf(d)
			}
		case "Msi64":
			if r.TryDecodeAsNil() {
				x.Msi64 = nil
			} else {
				if false {
				} else {
					h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *testSimpleFields) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj28 int
	var yyb28 bool
	var yyhl28 bool = l >= 0
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I64 = 0
	} else {
		x.I64 = (int64)(r.DecodeInt64())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I8 = 0
	} else {
		x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64 = 0
	} else {
		x.Ui64 = (uint64)(r.DecodeUint64())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui8 = 0
	} else {
		x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.F64 = 0
	} else {
		x.F64 = (float64)(r.DecodeFloat64())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.F32 = 0
	} else {
		x.F32 = (float32)(r.DecodeFloat32As64())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Sslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.Sslice), d)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I16slice = nil
	} else {
		if false {
		} else {
			h.decSliceint16((*[]int16)(&x.I16slice), d)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui8slice = nil
	} else {
		if false {
		} else {
			x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Bslice = nil
	} else {
		if false {
		} else {
			h.decSlicebool((*[]bool)(&x.Bslice), d)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Iptrslice = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
		}
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.WrapSliceInt64 = nil
	} else {
		x.WrapSliceInt64.CodecDecodeSelf(d)
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.WrapSliceString = nil
	} else {
		x.WrapSliceString.CodecDecodeSelf(d)
	}
	yyj28++
	if yyhl28 {
		yyb28 = yyj28 > l
	} else {
		yyb28 = r.CheckBreak()
	}
	if yyb28 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Msi64 = nil
	} else {
		if false {
		} else {
			h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
		}
	}
	for {
		yyj28++
		if yyhl28 {
			yyb28 = yyj28 > l
		} else {
			yyb28 = r.CheckBreak()
		}
		if yyb28 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj28-1, "")
	}
	r.ReadArrayEnd()
}

func (x *TestStrucCommon) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(49)
			} else {
				r.WriteMapStart(49)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I64n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I64n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I32n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I32n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I32n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I32n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I16n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I16n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I8n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I8n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I8n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I8n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.By))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"By\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `By`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.By))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Sslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Sslice`)
				}
				r.WriteMapElemValue()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.I64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.I64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64slice`)
				}
				r.WriteMapElemValue()
				if x.I64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.I64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16slice`)
				}
				r.WriteMapElemValue()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64slice`)
				}
				r.WriteMapElemValue()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8slice`)
				}
				r.WriteMapElemValue()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Bslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Bslice`)
				}
				r.WriteMapElemValue()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Byslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Byslice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Byslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Byslice`)
				}
				r.WriteMapElemValue()
				if x.Byslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Byslice))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Iptrslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Iptrslice`)
				}
				r.WriteMapElemValue()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceInt64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceInt64`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceString\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceString`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Msi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Msi64`)
				}
				r.WriteMapElemValue()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy88 := &x.Simplef
				yy88.CodecEncodeSelf(e)
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Simplef\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Simplef`)
				}
				r.WriteMapElemValue()
				yy90 := &x.Simplef
				yy90.CodecEncodeSelf(e)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.SstrUi64T == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"SstrUi64T\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `SstrUi64T`)
				}
				r.WriteMapElemValue()
				if x.SstrUi64T == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AS\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AS`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"ASslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `ASslice`)
				}
				r.WriteMapElemValue()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64slice`)
				}
				r.WriteMapElemValue()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64slice`)
				}
				r.WriteMapElemValue()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF64slice`)
				}
				r.WriteMapElemValue()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF32slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF32slice`)
				}
				r.WriteMapElemValue()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16`)
				}
				r.WriteMapElemValue()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy126 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy126), e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64arr0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64arr0`)
				}
				r.WriteMapElemValue()
				yy128 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy128), e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A164slice0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A164slice0`)
				}
				r.WriteMapElemValue()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64sliceN\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64sliceN`)
				}
				r.WriteMapElemValue()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16N\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16N`)
				}
				r.WriteMapElemValue()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16E\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16E`)
				}
				r.WriteMapElemValue()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy143 := &x.NotAnon
				yy143.CodecEncodeSelf(e)
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"NotAnon\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `NotAnon`)
				}
				r.WriteMapElemValue()
				yy145 := &x.NotAnon
				yy145.CodecEncodeSelf(e)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Nmap == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringbool((map[string]bool)(x.Nmap), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nmap\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nmap`)
				}
				r.WriteMapElemValue()
				if x.Nmap == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringbool((map[string]bool)(x.Nmap), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Nslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Nslice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nslice`)
				}
				r.WriteMapElemValue()
				if x.Nslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Nslice))
					}
				}
			}
			var yyn153 bool
			if x.Nint64 == nil {
				yyn153 = true
				goto LABEL153
			}
		LABEL153:
			if yyr2 || yy2arr2 {
				if yyn153 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Nint64 == nil {
						r.EncodeNil()
					} else {
						yy154 := *x.Nint64
						if false {
						} else {
							r.EncodeInt(int64(yy154))
						}
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nint64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nint64`)
				}
				r.WriteMapElemValue()
				if yyn153 {
					r.EncodeNil()
				} else {
					if x.Nint64 == nil {
						r.EncodeNil()
					} else {
						yy156 := *x.Nint64
						if false {
						} else {
							r.EncodeInt(int64(yy156))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *TestStrucCommon) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *TestStrucCommon) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "I64":
			if r.TryDecodeAsNil() {
				x.I64 = 0
			} else {
				x.I64 = (int64)(r.DecodeInt64())
			}
		case "I32":
			if r.TryDecodeAsNil() {
				x.I32 = 0
			} else {
				x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16":
			if r.TryDecodeAsNil() {
				x.I16 = 0
			} else {
				x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8":
			if r.TryDecodeAsNil() {
				x.I8 = 0
			} else {
				x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "I64n":
			if r.TryDecodeAsNil() {
				x.I64n = 0
			} else {
				x.I64n = (int64)(r.DecodeInt64())
			}
		case "I32n":
			if r.TryDecodeAsNil() {
				x.I32n = 0
			} else {
				x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16n":
			if r.TryDecodeAsNil() {
				x.I16n = 0
			} else {
				x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8n":
			if r.TryDecodeAsNil() {
				x.I8n = 0
			} else {
				x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "Ui64":
			if r.TryDecodeAsNil() {
				x.Ui64 = 0
			} else {
				x.Ui64 = (uint64)(r.DecodeUint64())
			}
		case "Ui32":
			if r.TryDecodeAsNil() {
				x.Ui32 = 0
			} else {
				x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
			}
		case "Ui16":
			if r.TryDecodeAsNil() {
				x.Ui16 = 0
			} else {
				x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
			}
		case "Ui8":
			if r.TryDecodeAsNil() {
				x.Ui8 = 0
			} else {
				x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "F64":
			if r.TryDecodeAsNil() {
				x.F64 = 0
			} else {
				x.F64 = (float64)(r.DecodeFloat64())
			}
		case "F32":
			if r.TryDecodeAsNil() {
				x.F32 = 0
			} else {
				x.F32 = (float32)(r.DecodeFloat32As64())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "By":
			if r.TryDecodeAsNil() {
				x.By = 0
			} else {
				x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "Sslice":
			if r.TryDecodeAsNil() {
				x.Sslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.Sslice), d)
				}
			}
		case "I64slice":
			if r.TryDecodeAsNil() {
				x.I64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.I64slice), d)
				}
			}
		case "I16slice":
			if r.TryDecodeAsNil() {
				x.I16slice = nil
			} else {
				if false {
				} else {
					h.decSliceint16((*[]int16)(&x.I16slice), d)
				}
			}
		case "Ui64slice":
			if r.TryDecodeAsNil() {
				x.Ui64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
				}
			}
		case "Ui8slice":
			if r.TryDecodeAsNil() {
				x.Ui8slice = nil
			} else {
				if false {
				} else {
					x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
				}
			}
		case "Bslice":
			if r.TryDecodeAsNil() {
				x.Bslice = nil
			} else {
				if false {
				} else {
					h.decSlicebool((*[]bool)(&x.Bslice), d)
				}
			}
		case "Byslice":
			if r.TryDecodeAsNil() {
				x.Byslice = nil
			} else {
				if false {
				} else {
					x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
				}
			}
		case "Iptrslice":
			if r.TryDecodeAsNil() {
				x.Iptrslice = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
				}
			}
		case "WrapSliceInt64":
			if r.TryDecodeAsNil() {
				x.WrapSliceInt64 = nil
			} else {
				x.WrapSliceInt64.CodecDecodeSelf(d)
			}
		case "WrapSliceString":
			if r.TryDecodeAsNil() {
				x.WrapSliceString = nil
			} else {
				x.WrapSliceString.CodecDecodeSelf(d)
			}
		case "Msi64":
			if r.TryDecodeAsNil() {
				x.Msi64 = nil
			} else {
				if false {
				} else {
					h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
				}
			}
		case "Simplef":
			if r.TryDecodeAsNil() {
				x.Simplef = testSimpleFields{}
			} else {
				x.Simplef.CodecDecodeSelf(d)
			}
		case "SstrUi64T":
			if r.TryDecodeAsNil() {
				x.SstrUi64T = nil
			} else {
				if false {
				} else {
					h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
				}
			}
		case "AS":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AS = ""
			} else {
				x.AS = (string)(r.DecodeString())
			}
		case "AI64":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AI64 = 0
			} else {
				x.AI64 = (int64)(r.DecodeInt64())
			}
		case "AI16":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AI16 = 0
			} else {
				x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "AUi64":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AUi64 = 0
			} else {
				x.AUi64 = (uint64)(r.DecodeUint64())
			}
		case "ASslice":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.ASslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.ASslice), d)
				}
			}
		case "AI64slice":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AI64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.AI64slice), d)
				}
			}
		case "AUi64slice":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AUi64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
				}
			}
		case "AF64slice":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AF64slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
				}
			}
		case "AF32slice":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AF32slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
				}
			}
		case "AMSU16":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AMSU16 = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
				}
			}
		case "AI64arr0":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AI64arr0 = [0]int64{}
			} else {
				if false {
				} else {
					h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
				}
			}
		case "A164slice0":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.A164slice0 = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.A164slice0), d)
				}
			}
		case "AUi64sliceN":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AUi64sliceN = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
				}
			}
		case "AMSU16N":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AMSU16N = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
				}
			}
		case "AMSU16E":
			if r.TryDecodeAsNil() {
				x.AnonInTestStruc.AMSU16E = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
				}
			}
		case "NotAnon":
			if r.TryDecodeAsNil() {
				x.NotAnon = AnonInTestStruc{}
			} else {
				x.NotAnon.CodecDecodeSelf(d)
			}
		case "Nmap":
			if r.TryDecodeAsNil() {
				x.Nmap = nil
			} else {
				if false {
				} else {
					h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
				}
			}
		case "Nslice":
			if r.TryDecodeAsNil() {
				x.Nslice = nil
			} else {
				if false {
				} else {
					x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
				}
			}
		case "Nint64":
			if r.TryDecodeAsNil() {
				if true && x.Nint64 != nil {
					x.Nint64 = nil
				}
			} else {
				if x.Nint64 == nil {
					x.Nint64 = new(int64)
				}

				if false {
				} else {
					*x.Nint64 = (int64)(r.DecodeInt64())
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *TestStrucCommon) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj77 int
	var yyb77 bool
	var yyhl77 bool = l >= 0
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I64 = 0
	} else {
		x.I64 = (int64)(r.DecodeInt64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I32 = 0
	} else {
		x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I16 = 0
	} else {
		x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I8 = 0
	} else {
		x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I64n = 0
	} else {
		x.I64n = (int64)(r.DecodeInt64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I32n = 0
	} else {
		x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I16n = 0
	} else {
		x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I8n = 0
	} else {
		x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64 = 0
	} else {
		x.Ui64 = (uint64)(r.DecodeUint64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui32 = 0
	} else {
		x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui16 = 0
	} else {
		x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui8 = 0
	} else {
		x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.F64 = 0
	} else {
		x.F64 = (float64)(r.DecodeFloat64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.F32 = 0
	} else {
		x.F32 = (float32)(r.DecodeFloat32As64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.By = 0
	} else {
		x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Sslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.Sslice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.I64slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I16slice = nil
	} else {
		if false {
		} else {
			h.decSliceint16((*[]int16)(&x.I16slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui8slice = nil
	} else {
		if false {
		} else {
			x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Bslice = nil
	} else {
		if false {
		} else {
			h.decSlicebool((*[]bool)(&x.Bslice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Byslice = nil
	} else {
		if false {
		} else {
			x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Iptrslice = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.WrapSliceInt64 = nil
	} else {
		x.WrapSliceInt64.CodecDecodeSelf(d)
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.WrapSliceString = nil
	} else {
		x.WrapSliceString.CodecDecodeSelf(d)
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Msi64 = nil
	} else {
		if false {
		} else {
			h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Simplef = testSimpleFields{}
	} else {
		x.Simplef.CodecDecodeSelf(d)
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.SstrUi64T = nil
	} else {
		if false {
		} else {
			h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AS = ""
	} else {
		x.AS = (string)(r.DecodeString())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AI64 = 0
	} else {
		x.AI64 = (int64)(r.DecodeInt64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AI16 = 0
	} else {
		x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AUi64 = 0
	} else {
		x.AUi64 = (uint64)(r.DecodeUint64())
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.ASslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.ASslice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AI64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.AI64slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AUi64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AF64slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AF32slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AMSU16 = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AI64arr0 = [0]int64{}
	} else {
		if false {
		} else {
			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.A164slice0 = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.A164slice0), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AUi64sliceN = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AMSU16N = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.AnonInTestStruc.AMSU16E = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.NotAnon = AnonInTestStruc{}
	} else {
		x.NotAnon.CodecDecodeSelf(d)
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Nmap = nil
	} else {
		if false {
		} else {
			h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Nslice = nil
	} else {
		if false {
		} else {
			x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
		}
	}
	yyj77++
	if yyhl77 {
		yyb77 = yyj77 > l
	} else {
		yyb77 = r.CheckBreak()
	}
	if yyb77 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Nint64 != nil {
			x.Nint64 = nil
		}
	} else {
		if x.Nint64 == nil {
			x.Nint64 = new(int64)
		}

		if false {
		} else {
			*x.Nint64 = (int64)(r.DecodeInt64())
		}
	}
	for {
		yyj77++
		if yyhl77 {
			yyb77 = yyj77 > l
		} else {
			yyb77 = r.CheckBreak()
		}
		if yyb77 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj77-1, "")
	}
	r.ReadArrayEnd()
}

func (x *TestStruc) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(53)
			} else {
				r.WriteMapStart(53)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I64n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I64n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I32n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I32n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I32n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I32n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I16n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I16n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I8n))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I8n\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I8n`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I8n))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.Ui8))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F32\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F32`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat32(float32(x.F32))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.By))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"By\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `By`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.By))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Sslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Sslice`)
				}
				r.WriteMapElemValue()
				if x.Sslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.Sslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.I64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.I64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I64slice`)
				}
				r.WriteMapElemValue()
				if x.I64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.I64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I16slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I16slice`)
				}
				r.WriteMapElemValue()
				if x.I16slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint16(([]int16)(x.I16slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64slice`)
				}
				r.WriteMapElemValue()
				if x.Ui64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.Ui64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ui8slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8slice`)
				}
				r.WriteMapElemValue()
				if x.Ui8slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Ui8slice))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Bslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Bslice`)
				}
				r.WriteMapElemValue()
				if x.Bslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicebool(([]bool)(x.Bslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Byslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Byslice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Byslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Byslice`)
				}
				r.WriteMapElemValue()
				if x.Byslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Byslice))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Iptrslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Iptrslice`)
				}
				r.WriteMapElemValue()
				if x.Iptrslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceInt64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceInt64`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceInt64 == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceInt64.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"WrapSliceString\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceString`)
				}
				r.WriteMapElemValue()
				if x.WrapSliceString == nil {
					r.EncodeNil()
				} else {
					x.WrapSliceString.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Msi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Msi64`)
				}
				r.WriteMapElemValue()
				if x.Msi64 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringint64((map[string]int64)(x.Msi64), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy88 := &x.Simplef
				yy88.CodecEncodeSelf(e)
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Simplef\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Simplef`)
				}
				r.WriteMapElemValue()
				yy90 := &x.Simplef
				yy90.CodecEncodeSelf(e)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.SstrUi64T == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"SstrUi64T\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `SstrUi64T`)
				}
				r.WriteMapElemValue()
				if x.SstrUi64T == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AS\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AS`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI16`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.AI16))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeUint(uint64(x.AUi64))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"ASslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `ASslice`)
				}
				r.WriteMapElemValue()
				if x.ASslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicestring(([]string)(x.ASslice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64slice`)
				}
				r.WriteMapElemValue()
				if x.AI64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.AI64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64slice`)
				}
				r.WriteMapElemValue()
				if x.AUi64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF64slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF64slice`)
				}
				r.WriteMapElemValue()
				if x.AF64slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat64(([]float64)(x.AF64slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AF32slice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AF32slice`)
				}
				r.WriteMapElemValue()
				if x.AF32slice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicefloat32(([]float32)(x.AF32slice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16`)
				}
				r.WriteMapElemValue()
				if x.AMSU16 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy126 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy126), e)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AI64arr0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AI64arr0`)
				}
				r.WriteMapElemValue()
				yy128 := &x.AI64arr0
				if false {
				} else {
					h.encArray0int64((*[0]int64)(yy128), e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A164slice0\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A164slice0`)
				}
				r.WriteMapElemValue()
				if x.A164slice0 == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceint64(([]int64)(x.A164slice0), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AUi64sliceN\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64sliceN`)
				}
				r.WriteMapElemValue()
				if x.AUi64sliceN == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16N\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16N`)
				}
				r.WriteMapElemValue()
				if x.AMSU16N == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"AMSU16E\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16E`)
				}
				r.WriteMapElemValue()
				if x.AMSU16E == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				yy143 := &x.NotAnon
				yy143.CodecEncodeSelf(e)
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"NotAnon\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `NotAnon`)
				}
				r.WriteMapElemValue()
				yy145 := &x.NotAnon
				yy145.CodecEncodeSelf(e)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Nmap == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringbool((map[string]bool)(x.Nmap), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nmap\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nmap`)
				}
				r.WriteMapElemValue()
				if x.Nmap == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringbool((map[string]bool)(x.Nmap), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Nslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Nslice))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nslice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nslice`)
				}
				r.WriteMapElemValue()
				if x.Nslice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						r.EncodeStringBytesRaw([]byte(x.Nslice))
					}
				}
			}
			var yyn153 bool
			if x.TestStrucCommon.Nint64 == nil {
				yyn153 = true
				goto LABEL153
			}
		LABEL153:
			if yyr2 || yy2arr2 {
				if yyn153 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Nint64 == nil {
						r.EncodeNil()
					} else {
						yy154 := *x.Nint64
						if false {
						} else {
							r.EncodeInt(int64(yy154))
						}
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nint64\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nint64`)
				}
				r.WriteMapElemValue()
				if yyn153 {
					r.EncodeNil()
				} else {
					if x.Nint64 == nil {
						r.EncodeNil()
					} else {
						yy156 := *x.Nint64
						if false {
						} else {
							r.EncodeInt(int64(yy156))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Mtsptr == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Mtsptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Mtsptr`)
				}
				r.WriteMapElemValue()
				if x.Mtsptr == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Mts == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Mts\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Mts`)
				}
				r.WriteMapElemValue()
				if x.Mts == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Its == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Its\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Its`)
				}
				r.WriteMapElemValue()
				if x.Its == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
					}
				}
			}
			var yyn167 bool
			if x.Nteststruc == nil {
				yyn167 = true
				goto LABEL167
			}
		LABEL167:
			if yyr2 || yy2arr2 {
				if yyn167 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Nteststruc == nil {
						r.EncodeNil()
					} else {
						x.Nteststruc.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nteststruc\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nteststruc`)
				}
				r.WriteMapElemValue()
				if yyn167 {
					r.EncodeNil()
				} else {
					if x.Nteststruc == nil {
						r.EncodeNil()
					} else {
						x.Nteststruc.CodecEncodeSelf(e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *TestStruc) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *TestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "I64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64 = 0
			} else {
				x.I64 = (int64)(r.DecodeInt64())
			}
		case "I32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I32 = 0
			} else {
				x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16 = 0
			} else {
				x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I8 = 0
			} else {
				x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "I64n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64n = 0
			} else {
				x.I64n = (int64)(r.DecodeInt64())
			}
		case "I32n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I32n = 0
			} else {
				x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16n = 0
			} else {
				x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I8n = 0
			} else {
				x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "Ui64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui64 = 0
			} else {
				x.Ui64 = (uint64)(r.DecodeUint64())
			}
		case "Ui32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui32 = 0
			} else {
				x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
			}
		case "Ui16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui16 = 0
			} else {
				x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
			}
		case "Ui8":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui8 = 0
			} else {
				x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "F64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.F64 = 0
			} else {
				x.F64 = (float64)(r.DecodeFloat64())
			}
		case "F32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.F32 = 0
			} else {
				x.F32 = (float32)(r.DecodeFloat32As64())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "By":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.By = 0
			} else {
				x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "Sslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Sslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.Sslice), d)
				}
			}
		case "I64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.I64slice), d)
				}
			}
		case "I16slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16slice = nil
			} else {
				if false {
				} else {
					h.decSliceint16((*[]int16)(&x.I16slice), d)
				}
			}
		case "Ui64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
				}
			}
		case "Ui8slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui8slice = nil
			} else {
				if false {
				} else {
					x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
				}
			}
		case "Bslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Bslice = nil
			} else {
				if false {
				} else {
					h.decSlicebool((*[]bool)(&x.Bslice), d)
				}
			}
		case "Byslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Byslice = nil
			} else {
				if false {
				} else {
					x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
				}
			}
		case "Iptrslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Iptrslice = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
				}
			}
		case "WrapSliceInt64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.WrapSliceInt64 = nil
			} else {
				x.WrapSliceInt64.CodecDecodeSelf(d)
			}
		case "WrapSliceString":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.WrapSliceString = nil
			} else {
				x.WrapSliceString.CodecDecodeSelf(d)
			}
		case "Msi64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Msi64 = nil
			} else {
				if false {
				} else {
					h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
				}
			}
		case "Simplef":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Simplef = testSimpleFields{}
			} else {
				x.Simplef.CodecDecodeSelf(d)
			}
		case "SstrUi64T":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.SstrUi64T = nil
			} else {
				if false {
				} else {
					h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
				}
			}
		case "AS":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AS = ""
			} else {
				x.AS = (string)(r.DecodeString())
			}
		case "AI64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64 = 0
			} else {
				x.AI64 = (int64)(r.DecodeInt64())
			}
		case "AI16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI16 = 0
			} else {
				x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "AUi64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64 = 0
			} else {
				x.AUi64 = (uint64)(r.DecodeUint64())
			}
		case "ASslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.ASslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.ASslice), d)
				}
			}
		case "AI64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.AI64slice), d)
				}
			}
		case "AUi64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
				}
			}
		case "AF64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AF64slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
				}
			}
		case "AF32slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AF32slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
				}
			}
		case "AMSU16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16 = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
				}
			}
		case "AI64arr0":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64arr0 = [0]int64{}
			} else {
				if false {
				} else {
					h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
				}
			}
		case "A164slice0":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.A164slice0 = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.A164slice0), d)
				}
			}
		case "AUi64sliceN":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64sliceN = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
				}
			}
		case "AMSU16N":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16N = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
				}
			}
		case "AMSU16E":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16E = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
				}
			}
		case "NotAnon":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.NotAnon = AnonInTestStruc{}
			} else {
				x.NotAnon.CodecDecodeSelf(d)
			}
		case "Nmap":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Nmap = nil
			} else {
				if false {
				} else {
					h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
				}
			}
		case "Nslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Nslice = nil
			} else {
				if false {
				} else {
					x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
				}
			}
		case "Nint64":
			if r.TryDecodeAsNil() {
				if true && x.TestStrucCommon.Nint64 != nil {
					x.TestStrucCommon.Nint64 = nil
				}
			} else {
				if x.TestStrucCommon.Nint64 == nil {
					x.TestStrucCommon.Nint64 = new(int64)
				}

				if false {
				} else {
					*x.Nint64 = (int64)(r.DecodeInt64())
				}
			}
		case "Mtsptr":
			if r.TryDecodeAsNil() {
				x.Mtsptr = nil
			} else {
				if false {
				} else {
					h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
				}
			}
		case "Mts":
			if r.TryDecodeAsNil() {
				x.Mts = nil
			} else {
				if false {
				} else {
					h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
				}
			}
		case "Its":
			if r.TryDecodeAsNil() {
				x.Its = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
				}
			}
		case "Nteststruc":
			if r.TryDecodeAsNil() {
				if true && x.Nteststruc != nil {
					x.Nteststruc = nil
				}
			} else {
				if x.Nteststruc == nil {
					x.Nteststruc = new(TestStruc)
				}

				x.Nteststruc.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *TestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj84 int
	var yyb84 bool
	var yyhl84 bool = l >= 0
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64 = 0
	} else {
		x.I64 = (int64)(r.DecodeInt64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I32 = 0
	} else {
		x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16 = 0
	} else {
		x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I8 = 0
	} else {
		x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64n = 0
	} else {
		x.I64n = (int64)(r.DecodeInt64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I32n = 0
	} else {
		x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16n = 0
	} else {
		x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I8n = 0
	} else {
		x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui64 = 0
	} else {
		x.Ui64 = (uint64)(r.DecodeUint64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui32 = 0
	} else {
		x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui16 = 0
	} else {
		x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui8 = 0
	} else {
		x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.F64 = 0
	} else {
		x.F64 = (float64)(r.DecodeFloat64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.F32 = 0
	} else {
		x.F32 = (float32)(r.DecodeFloat32As64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.By = 0
	} else {
		x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Sslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.Sslice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.I64slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16slice = nil
	} else {
		if false {
		} else {
			h.decSliceint16((*[]int16)(&x.I16slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui8slice = nil
	} else {
		if false {
		} else {
			x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Bslice = nil
	} else {
		if false {
		} else {
			h.decSlicebool((*[]bool)(&x.Bslice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Byslice = nil
	} else {
		if false {
		} else {
			x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Iptrslice = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.WrapSliceInt64 = nil
	} else {
		x.WrapSliceInt64.CodecDecodeSelf(d)
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.WrapSliceString = nil
	} else {
		x.WrapSliceString.CodecDecodeSelf(d)
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Msi64 = nil
	} else {
		if false {
		} else {
			h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Simplef = testSimpleFields{}
	} else {
		x.Simplef.CodecDecodeSelf(d)
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.SstrUi64T = nil
	} else {
		if false {
		} else {
			h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AS = ""
	} else {
		x.AS = (string)(r.DecodeString())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64 = 0
	} else {
		x.AI64 = (int64)(r.DecodeInt64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI16 = 0
	} else {
		x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64 = 0
	} else {
		x.AUi64 = (uint64)(r.DecodeUint64())
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.ASslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.ASslice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.AI64slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AF64slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AF32slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16 = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64arr0 = [0]int64{}
	} else {
		if false {
		} else {
			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.A164slice0 = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.A164slice0), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64sliceN = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16N = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16E = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.NotAnon = AnonInTestStruc{}
	} else {
		x.NotAnon.CodecDecodeSelf(d)
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Nmap = nil
	} else {
		if false {
		} else {
			h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Nslice = nil
	} else {
		if false {
		} else {
			x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.TestStrucCommon.Nint64 != nil {
			x.TestStrucCommon.Nint64 = nil
		}
	} else {
		if x.TestStrucCommon.Nint64 == nil {
			x.TestStrucCommon.Nint64 = new(int64)
		}

		if false {
		} else {
			*x.Nint64 = (int64)(r.DecodeInt64())
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mtsptr = nil
	} else {
		if false {
		} else {
			h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mts = nil
	} else {
		if false {
		} else {
			h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Its = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
		}
	}
	yyj84++
	if yyhl84 {
		yyb84 = yyj84 > l
	} else {
		yyb84 = r.CheckBreak()
	}
	if yyb84 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Nteststruc != nil {
			x.Nteststruc = nil
		}
	} else {
		if x.Nteststruc == nil {
			x.Nteststruc = new(TestStruc)
		}

		x.Nteststruc.CodecDecodeSelf(d)
	}
	for {
		yyj84++
		if yyhl84 {
			yyb84 = yyj84 > l
		} else {
			yyb84 = r.CheckBreak()
		}
		if yyb84 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj84-1, "")
	}
	r.ReadArrayEnd()
}

func (x Bbool) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		r.EncodeBool(bool(x))
	}
}

func (x *Bbool) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (Bbool)(r.DecodeBool())
	}
}

func (x *Aarray) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encAarray((*Aarray)(x), e)
		}
	}
}

func (x *Aarray) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decAarray((*Aarray)(x), d)
	}
}

func (x Sstring) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		if z.EncBasicHandle().StringToRaw {
			r.EncodeStringBytesRaw(z.BytesView(string(x)))
		} else {
			r.EncodeStringEnc(codecSelferCcUTF819780, string(x))
		}
	}
}

func (x *Sstring) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (Sstring)(r.DecodeString())
	}
}

func (x *Sstructsmall) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(1)
			} else {
				r.WriteMapStart(1)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *Sstructsmall) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *Sstructsmall) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "A":
			if r.TryDecodeAsNil() {
				x.A = 0
			} else {
				x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *Sstructsmall) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj5 int
	var yyb5 bool
	var yyhl5 bool = l >= 0
	yyj5++
	if yyhl5 {
		yyb5 = yyj5 > l
	} else {
		yyb5 = r.CheckBreak()
	}
	if yyb5 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.A = 0
	} else {
		x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
	}
	for {
		yyj5++
		if yyhl5 {
			yyb5 = yyj5 > l
		} else {
			yyb5 = r.CheckBreak()
		}
		if yyb5 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj5-1, "")
	}
	r.ReadArrayEnd()
}

func (x *Sstructbig) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(5)
			} else {
				r.WriteMapStart(5)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			var yyn9 bool
			if x.Ssmallptr == nil {
				yyn9 = true
				goto LABEL9
			}
		LABEL9:
			if yyr2 || yy2arr2 {
				if yyn9 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Ssmallptr == nil {
						r.EncodeNil()
					} else {
						x.Ssmallptr.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ssmallptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ssmallptr`)
				}
				r.WriteMapElemValue()
				if yyn9 {
					r.EncodeNil()
				} else {
					if x.Ssmallptr == nil {
						r.EncodeNil()
					} else {
						x.Ssmallptr.CodecEncodeSelf(e)
					}
				}
			}
			var yyn12 bool
			if x.Ssmall == nil {
				yyn12 = true
				goto LABEL12
			}
		LABEL12:
			if yyr2 || yy2arr2 {
				if yyn12 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Ssmall == nil {
						r.EncodeNil()
					} else {
						x.Ssmall.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ssmall\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ssmall`)
				}
				r.WriteMapElemValue()
				if yyn12 {
					r.EncodeNil()
				} else {
					if x.Ssmall == nil {
						r.EncodeNil()
					} else {
						x.Ssmall.CodecEncodeSelf(e)
					}
				}
			}
			var yyn15 bool
			if x.Sptr == nil {
				yyn15 = true
				goto LABEL15
			}
		LABEL15:
			if yyr2 || yy2arr2 {
				if yyn15 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Sptr == nil {
						r.EncodeNil()
					} else {
						x.Sptr.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Sptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Sptr`)
				}
				r.WriteMapElemValue()
				if yyn15 {
					r.EncodeNil()
				} else {
					if x.Sptr == nil {
						r.EncodeNil()
					} else {
						x.Sptr.CodecEncodeSelf(e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *Sstructbig) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *Sstructbig) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "A":
			if r.TryDecodeAsNil() {
				x.A = 0
			} else {
				x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "Ssmallptr":
			if r.TryDecodeAsNil() {
				if true && x.Ssmallptr != nil {
					x.Ssmallptr = nil
				}
			} else {
				if x.Ssmallptr == nil {
					x.Ssmallptr = new(Sstructsmall)
				}

				x.Ssmallptr.CodecDecodeSelf(d)
			}
		case "Ssmall":
			if r.TryDecodeAsNil() {
				if true && x.Ssmall != nil {
					x.Ssmall = nil
				}
			} else {
				if x.Ssmall == nil {
					x.Ssmall = new(Sstructsmall)
				}

				x.Ssmall.CodecDecodeSelf(d)
			}
		case "Sptr":
			if r.TryDecodeAsNil() {
				if true && x.Sptr != nil {
					x.Sptr = nil
				}
			} else {
				if x.Sptr == nil {
					x.Sptr = new(Sstructbig)
				}

				x.Sptr.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *Sstructbig) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj9 int
	var yyb9 bool
	var yyhl9 bool = l >= 0
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.A = 0
	} else {
		x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Ssmallptr != nil {
			x.Ssmallptr = nil
		}
	} else {
		if x.Ssmallptr == nil {
			x.Ssmallptr = new(Sstructsmall)
		}

		x.Ssmallptr.CodecDecodeSelf(d)
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Ssmall != nil {
			x.Ssmall = nil
		}
	} else {
		if x.Ssmall == nil {
			x.Ssmall = new(Sstructsmall)
		}

		x.Ssmall.CodecDecodeSelf(d)
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Sptr != nil {
			x.Sptr = nil
		}
	} else {
		if x.Sptr == nil {
			x.Sptr = new(Sstructbig)
		}

		x.Sptr.CodecDecodeSelf(d)
	}
	for {
		yyj9++
		if yyhl9 {
			yyb9 = yyj9 > l
		} else {
			yyb9 = r.CheckBreak()
		}
		if yyb9 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj9-1, "")
	}
	r.ReadArrayEnd()
}

func (x *SstructbigMapBySlice) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = true // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(5)
			} else {
				r.WriteMapStart(5)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"A\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `A`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.A))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			var yyn9 bool
			if x.Ssmallptr == nil {
				yyn9 = true
				goto LABEL9
			}
		LABEL9:
			if yyr2 || yy2arr2 {
				if yyn9 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Ssmallptr == nil {
						r.EncodeNil()
					} else {
						x.Ssmallptr.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ssmallptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ssmallptr`)
				}
				r.WriteMapElemValue()
				if yyn9 {
					r.EncodeNil()
				} else {
					if x.Ssmallptr == nil {
						r.EncodeNil()
					} else {
						x.Ssmallptr.CodecEncodeSelf(e)
					}
				}
			}
			var yyn12 bool
			if x.Ssmall == nil {
				yyn12 = true
				goto LABEL12
			}
		LABEL12:
			if yyr2 || yy2arr2 {
				if yyn12 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Ssmall == nil {
						r.EncodeNil()
					} else {
						x.Ssmall.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ssmall\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ssmall`)
				}
				r.WriteMapElemValue()
				if yyn12 {
					r.EncodeNil()
				} else {
					if x.Ssmall == nil {
						r.EncodeNil()
					} else {
						x.Ssmall.CodecEncodeSelf(e)
					}
				}
			}
			var yyn15 bool
			if x.Sptr == nil {
				yyn15 = true
				goto LABEL15
			}
		LABEL15:
			if yyr2 || yy2arr2 {
				if yyn15 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Sptr == nil {
						r.EncodeNil()
					} else {
						x.Sptr.CodecEncodeSelf(e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Sptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Sptr`)
				}
				r.WriteMapElemValue()
				if yyn15 {
					r.EncodeNil()
				} else {
					if x.Sptr == nil {
						r.EncodeNil()
					} else {
						x.Sptr.CodecEncodeSelf(e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *SstructbigMapBySlice) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *SstructbigMapBySlice) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "A":
			if r.TryDecodeAsNil() {
				x.A = 0
			} else {
				x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "Ssmallptr":
			if r.TryDecodeAsNil() {
				if true && x.Ssmallptr != nil {
					x.Ssmallptr = nil
				}
			} else {
				if x.Ssmallptr == nil {
					x.Ssmallptr = new(Sstructsmall)
				}

				x.Ssmallptr.CodecDecodeSelf(d)
			}
		case "Ssmall":
			if r.TryDecodeAsNil() {
				if true && x.Ssmall != nil {
					x.Ssmall = nil
				}
			} else {
				if x.Ssmall == nil {
					x.Ssmall = new(Sstructsmall)
				}

				x.Ssmall.CodecDecodeSelf(d)
			}
		case "Sptr":
			if r.TryDecodeAsNil() {
				if true && x.Sptr != nil {
					x.Sptr = nil
				}
			} else {
				if x.Sptr == nil {
					x.Sptr = new(Sstructbig)
				}

				x.Sptr.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *SstructbigMapBySlice) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj9 int
	var yyb9 bool
	var yyhl9 bool = l >= 0
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.A = 0
	} else {
		x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Ssmallptr != nil {
			x.Ssmallptr = nil
		}
	} else {
		if x.Ssmallptr == nil {
			x.Ssmallptr = new(Sstructsmall)
		}

		x.Ssmallptr.CodecDecodeSelf(d)
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Ssmall != nil {
			x.Ssmall = nil
		}
	} else {
		if x.Ssmall == nil {
			x.Ssmall = new(Sstructsmall)
		}

		x.Ssmall.CodecDecodeSelf(d)
	}
	yyj9++
	if yyhl9 {
		yyb9 = yyj9 > l
	} else {
		yyb9 = r.CheckBreak()
	}
	if yyb9 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Sptr != nil {
			x.Sptr = nil
		}
	} else {
		if x.Sptr == nil {
			x.Sptr = new(Sstructbig)
		}

		x.Sptr.CodecDecodeSelf(d)
	}
	for {
		yyj9++
		if yyhl9 {
			yyb9 = yyj9 > l
		} else {
			yyb9 = r.CheckBreak()
		}
		if yyb9 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj9-1, "")
	}
	r.ReadArrayEnd()
}

func (x *tLowerFirstLetter) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(2)
			} else {
				r.WriteMapStart(2)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *tLowerFirstLetter) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *tLowerFirstLetter) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "I":
			if r.TryDecodeAsNil() {
				x.I = 0
			} else {
				x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *tLowerFirstLetter) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I = 0
	} else {
		x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
	}
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	r.ReadArrayEnd()
}

func (x wrapInt64) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		r.EncodeInt(int64(x))
	}
}

func (x *wrapInt64) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (wrapInt64)(r.DecodeInt64())
	}
}

func (x wrapUint8) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.EncExtension(x, yyxt1)
	} else {
		r.EncodeUint(uint64(x))
	}
}

func (x *wrapUint8) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		*x = (wrapUint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
}

func (x wrapBytes) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			h.encwrapBytes((wrapBytes)(x), e)
		}
	}
}

func (x *wrapBytes) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		h.decwrapBytes((*wrapBytes)(x), d)
	}
}

func (x *AnonInTestStrucIntf) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(5)
			} else {
				r.WriteMapStart(5)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Islice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceInterface(([]interface{})(x.Islice), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Islice\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Islice`)
				}
				r.WriteMapElemValue()
				if x.Islice == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encSliceInterface(([]interface{})(x.Islice), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Ms == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringInterface((map[string]interface{})(x.Ms), e)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Ms\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Ms`)
				}
				r.WriteMapElemValue()
				if x.Ms == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						h.encMapstringInterface((map[string]interface{})(x.Ms), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if x.Nintf == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						z.EncFallback(x.Nintf)
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Nintf\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Nintf`)
				}
				r.WriteMapElemValue()
				if x.Nintf == nil {
					r.EncodeNil()
				} else {
					if false {
					} else {
						z.EncFallback(x.Nintf)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else if !z.EncBasicHandle().TimeNotBuiltin {
					r.EncodeTime(x.T)
				} else if yyxt13 := z.Extension(z.I2Rtid(x.T)); yyxt13 != nil {
					z.EncExtension(x.T, yyxt13)
				} else if z.EncBinary() {
					z.EncBinaryMarshal(x.T)
				} else if !z.EncBinary() && z.IsJSONHandle() {
					z.EncJSONMarshal(x.T)
				} else {
					z.EncFallback(x.T)
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"T\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `T`)
				}
				r.WriteMapElemValue()
				if false {
				} else if !z.EncBasicHandle().TimeNotBuiltin {
					r.EncodeTime(x.T)
				} else if yyxt14 := z.Extension(z.I2Rtid(x.T)); yyxt14 != nil {
					z.EncExtension(x.T, yyxt14)
				} else if z.EncBinary() {
					z.EncBinaryMarshal(x.T)
				} else if !z.EncBinary() && z.IsJSONHandle() {
					z.EncJSONMarshal(x.T)
				} else {
					z.EncFallback(x.T)
				}
			}
			var yyn15 bool
			if x.Tptr == nil {
				yyn15 = true
				goto LABEL15
			}
		LABEL15:
			if yyr2 || yy2arr2 {
				if yyn15 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if x.Tptr == nil {
						r.EncodeNil()
					} else {
						yy16 := *x.Tptr
						if false {
						} else if !z.EncBasicHandle().TimeNotBuiltin {
							r.EncodeTime(yy16)
						} else if yyxt17 := z.Extension(z.I2Rtid(yy16)); yyxt17 != nil {
							z.EncExtension(yy16, yyxt17)
						} else if z.EncBinary() {
							z.EncBinaryMarshal(yy16)
						} else if !z.EncBinary() && z.IsJSONHandle() {
							z.EncJSONMarshal(yy16)
						} else {
							z.EncFallback(yy16)
						}
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"Tptr\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `Tptr`)
				}
				r.WriteMapElemValue()
				if yyn15 {
					r.EncodeNil()
				} else {
					if x.Tptr == nil {
						r.EncodeNil()
					} else {
						yy18 := *x.Tptr
						if false {
						} else if !z.EncBasicHandle().TimeNotBuiltin {
							r.EncodeTime(yy18)
						} else if yyxt19 := z.Extension(z.I2Rtid(yy18)); yyxt19 != nil {
							z.EncExtension(yy18, yyxt19)
						} else if z.EncBinary() {
							z.EncBinaryMarshal(yy18)
						} else if !z.EncBinary() && z.IsJSONHandle() {
							z.EncJSONMarshal(yy18)
						} else {
							z.EncFallback(yy18)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *AnonInTestStrucIntf) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *AnonInTestStrucIntf) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "Islice":
			if r.TryDecodeAsNil() {
				x.Islice = nil
			} else {
				if false {
				} else {
					h.decSliceInterface((*[]interface{})(&x.Islice), d)
				}
			}
		case "Ms":
			if r.TryDecodeAsNil() {
				x.Ms = nil
			} else {
				if false {
				} else {
					h.decMapstringInterface((*map[string]interface{})(&x.Ms), d)
				}
			}
		case "Nintf":
			if r.TryDecodeAsNil() {
				x.Nintf = nil
			} else {
				if false {
				} else {
					z.DecFallback(&x.Nintf, true)
				}
			}
		case "T":
			if r.TryDecodeAsNil() {
				x.T = time.Time{}
			} else {
				if false {
				} else if !z.DecBasicHandle().TimeNotBuiltin {
					x.T = r.DecodeTime()
				} else if yyxt11 := z.Extension(z.I2Rtid(x.T)); yyxt11 != nil {
					z.DecExtension(x.T, yyxt11)
				} else if z.DecBinary() {
					z.DecBinaryUnmarshal(&x.T)
				} else if !z.DecBinary() && z.IsJSONHandle() {
					z.DecJSONUnmarshal(&x.T)
				} else {
					z.DecFallback(&x.T, false)
				}
			}
		case "Tptr":
			if r.TryDecodeAsNil() {
				if true && x.Tptr != nil {
					x.Tptr = nil
				}
			} else {
				if x.Tptr == nil {
					x.Tptr = new(time.Time)
				}

				if false {
				} else if !z.DecBasicHandle().TimeNotBuiltin {
					*x.Tptr = r.DecodeTime()
				} else if yyxt13 := z.Extension(z.I2Rtid(x.Tptr)); yyxt13 != nil {
					z.DecExtension(x.Tptr, yyxt13)
				} else if z.DecBinary() {
					z.DecBinaryUnmarshal(x.Tptr)
				} else if !z.DecBinary() && z.IsJSONHandle() {
					z.DecJSONUnmarshal(x.Tptr)
				} else {
					z.DecFallback(x.Tptr, false)
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *AnonInTestStrucIntf) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj14 int
	var yyb14 bool
	var yyhl14 bool = l >= 0
	yyj14++
	if yyhl14 {
		yyb14 = yyj14 > l
	} else {
		yyb14 = r.CheckBreak()
	}
	if yyb14 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Islice = nil
	} else {
		if false {
		} else {
			h.decSliceInterface((*[]interface{})(&x.Islice), d)
		}
	}
	yyj14++
	if yyhl14 {
		yyb14 = yyj14 > l
	} else {
		yyb14 = r.CheckBreak()
	}
	if yyb14 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ms = nil
	} else {
		if false {
		} else {
			h.decMapstringInterface((*map[string]interface{})(&x.Ms), d)
		}
	}
	yyj14++
	if yyhl14 {
		yyb14 = yyj14 > l
	} else {
		yyb14 = r.CheckBreak()
	}
	if yyb14 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Nintf = nil
	} else {
		if false {
		} else {
			z.DecFallback(&x.Nintf, true)
		}
	}
	yyj14++
	if yyhl14 {
		yyb14 = yyj14 > l
	} else {
		yyb14 = r.CheckBreak()
	}
	if yyb14 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.T = time.Time{}
	} else {
		if false {
		} else if !z.DecBasicHandle().TimeNotBuiltin {
			x.T = r.DecodeTime()
		} else if yyxt22 := z.Extension(z.I2Rtid(x.T)); yyxt22 != nil {
			z.DecExtension(x.T, yyxt22)
		} else if z.DecBinary() {
			z.DecBinaryUnmarshal(&x.T)
		} else if !z.DecBinary() && z.IsJSONHandle() {
			z.DecJSONUnmarshal(&x.T)
		} else {
			z.DecFallback(&x.T, false)
		}
	}
	yyj14++
	if yyhl14 {
		yyb14 = yyj14 > l
	} else {
		yyb14 = r.CheckBreak()
	}
	if yyb14 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Tptr != nil {
			x.Tptr = nil
		}
	} else {
		if x.Tptr == nil {
			x.Tptr = new(time.Time)
		}

		if false {
		} else if !z.DecBasicHandle().TimeNotBuiltin {
			*x.Tptr = r.DecodeTime()
		} else if yyxt24 := z.Extension(z.I2Rtid(x.Tptr)); yyxt24 != nil {
			z.DecExtension(x.Tptr, yyxt24)
		} else if z.DecBinary() {
			z.DecBinaryUnmarshal(x.Tptr)
		} else if !z.DecBinary() && z.IsJSONHandle() {
			z.DecJSONUnmarshal(x.Tptr)
		} else {
			z.DecFallback(x.Tptr, false)
		}
	}
	for {
		yyj14++
		if yyhl14 {
			yyb14 = yyj14 > l
		} else {
			yyb14 = r.CheckBreak()
		}
		if yyb14 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj14-1, "")
	}
	r.ReadArrayEnd()
}

func (x *missingFielderT1) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(2)
			} else {
				r.WriteMapStart(2)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *missingFielderT1) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *missingFielderT1) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *missingFielderT1) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	r.ReadArrayEnd()
}

func (x *missingFielderT2) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(4)
			} else {
				r.WriteMapStart(4)
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"S\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"B\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeBool(bool(x.B))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"F\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `F`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeFloat64(float64(x.F))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if false {
				} else {
					r.EncodeInt(int64(x.I))
				}
			} else {
				r.WriteMapElemKey()
				if z.IsJSONHandle() {
					z.WriteStr("\"I\"")
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, `I`)
				}
				r.WriteMapElemValue()
				if false {
				} else {
					r.EncodeInt(int64(x.I))
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *missingFielderT2) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *missingFielderT2) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "F":
			if r.TryDecodeAsNil() {
				x.F = 0
			} else {
				x.F = (float64)(r.DecodeFloat64())
			}
		case "I":
			if r.TryDecodeAsNil() {
				x.I = 0
			} else {
				x.I = (int64)(r.DecodeInt64())
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *missingFielderT2) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj8 int
	var yyb8 bool
	var yyhl8 bool = l >= 0
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.F = 0
	} else {
		x.F = (float64)(r.DecodeFloat64())
	}
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.I = 0
	} else {
		x.I = (int64)(r.DecodeInt64())
	}
	for {
		yyj8++
		if yyhl8 {
			yyb8 = yyj8 > l
		} else {
			yyb8 = r.CheckBreak()
		}
		if yyb8 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj8-1, "")
	}
	r.ReadArrayEnd()
}

func (x *TestStrucFlex) CodecEncodeSelf(e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		if false {
		} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
			z.EncExtension(x, yyxt1)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			_, _ = yysep2, yy2arr2
			const yyr2 bool = false // struct tag has 'toArray'
			var yyq2 = [73]bool{    // should field at this index be written?
				x.S != "",                   // S
				x.I64 != 0,                  // I64
				x.I32 != 0,                  // I32
				x.I16 != 0,                  // I16
				x.I8 != 0,                   // I8
				x.I64n != 0,                 // I64n
				x.I32n != 0,                 // I32n
				x.I16n != 0,                 // I16n
				x.I8n != 0,                  // I8n
				x.Ui64 != 0,                 // Ui64
				x.Ui32 != 0,                 // Ui32
				x.Ui16 != 0,                 // Ui16
				x.Ui8 != 0,                  // Ui8
				x.F64 != 0,                  // F64
				x.F32 != 0,                  // F32
				x.B,                         // B
				x.By != 0,                   // By
				len(x.Sslice) != 0,          // Sslice
				len(x.I64slice) != 0,        // I64slice
				len(x.I16slice) != 0,        // I16slice
				len(x.Ui64slice) != 0,       // Ui64slice
				len(x.Ui8slice) != 0,        // Ui8slice
				len(x.Bslice) != 0,          // Bslice
				len(x.Byslice) != 0,         // Byslice
				len(x.Iptrslice) != 0,       // Iptrslice
				len(x.WrapSliceInt64) != 0,  // WrapSliceInt64
				len(x.WrapSliceString) != 0, // WrapSliceString
				len(x.Msi64) != 0,           // Msi64
				false || x.Simplef.S != "" || x.Simplef.I64 != 0 || x.Simplef.I8 != 0 || x.Simplef.Ui64 != 0 || x.Simplef.Ui8 != 0 || x.Simplef.F64 != 0 || x.Simplef.F32 != 0 || x.Simplef.B || len(x.Simplef.Sslice) != 0 || len(x.Simplef.I16slice) != 0 || len(x.Simplef.Ui64slice) != 0 || len(x.Simplef.Ui8slice) != 0 || len(x.Simplef.Bslice) != 0 || len(x.Simplef.Iptrslice) != 0 || len(x.Simplef.WrapSliceInt64) != 0 || len(x.Simplef.WrapSliceString) != 0 || len(x.Simplef.Msi64) != 0, // Simplef
				len(x.SstrUi64T) != 0,   // SstrUi64T
				x.AS != "",              // AS
				x.AI64 != 0,             // AI64
				x.AI16 != 0,             // AI16
				x.AUi64 != 0,            // AUi64
				len(x.ASslice) != 0,     // ASslice
				len(x.AI64slice) != 0,   // AI64slice
				len(x.AUi64slice) != 0,  // AUi64slice
				len(x.AF64slice) != 0,   // AF64slice
				len(x.AF32slice) != 0,   // AF32slice
				len(x.AMSU16) != 0,      // AMSU16
				len(x.AI64arr0) != 0,    // AI64arr0
				len(x.A164slice0) != 0,  // A164slice0
				len(x.AUi64sliceN) != 0, // AUi64sliceN
				len(x.AMSU16N) != 0,     // AMSU16N
				len(x.AMSU16E) != 0,     // AMSU16E
				false || x.NotAnon.AS != "" || x.NotAnon.AI64 != 0 || x.NotAnon.AI16 != 0 || x.NotAnon.AUi64 != 0 || len(x.NotAnon.ASslice) != 0 || len(x.NotAnon.AI64slice) != 0 || len(x.NotAnon.AUi64slice) != 0 || len(x.NotAnon.AF64slice) != 0 || len(x.NotAnon.AF32slice) != 0 || len(x.NotAnon.AMSU16) != 0 || len(x.NotAnon.AI64arr0) != 0 || len(x.NotAnon.A164slice0) != 0 || len(x.NotAnon.AUi64sliceN) != 0 || len(x.NotAnon.AMSU16N) != 0 || len(x.NotAnon.AMSU16E) != 0, // NotAnon
				len(x.Nmap) != 0,           // Nmap
				len(x.Nslice) != 0,         // Nslice
				x.Nint64 != nil,            // Nint64
				len(x.Chstr) != 0,          // Chstr
				len(x.Mis) != 0,            // Mis
				len(x.Mbu64) != 0,          // Mbu64
				len(x.Miwu64s) != 0,        // Miwu64s
				len(x.Mfwss) != 0,          // Mfwss
				len(x.Mf32wss) != 0,        // Mf32wss
				len(x.Mui2wss) != 0,        // Mui2wss
				len(x.Msu2wss) != 0,        // Msu2wss
				x.Ci64 != 0,                // Ci64
				len(x.Swrapbytes) != 0,     // Swrapbytes
				len(x.Swrapuint8) != 0,     // Swrapuint8
				len(x.ArrStrUi64T) != 0,    // ArrStrUi64T
				len(x.Ui64array) != 0,      // Ui64array
				len(x.Ui64slicearray) != 0, // Ui64slicearray
				len(x.SintfAarray) != 0,    // SintfAarray
				x.AnonInTestStrucIntf != nil && len(x.Islice) != 0, // Islice
				x.AnonInTestStrucIntf != nil && len(x.Ms) != 0,     // Ms
				x.AnonInTestStrucIntf != nil && x.Nintf != nil,     // Nintf
				x.AnonInTestStrucIntf != nil && !(x.T.IsZero()),    // T
				x.AnonInTestStrucIntf != nil && x.Tptr != nil,      // Tptr
				len(x.Mtsptr) != 0,  // Mtsptr
				len(x.Mts) != 0,     // Mts
				len(x.Its) != 0,     // Its
				x.Nteststruc != nil, // Nteststruc
			}
			_ = yyq2
			if yyr2 || yy2arr2 {
				r.WriteArrayStart(73)
			} else {
				var yynn2 int
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.WriteMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[0] {
					if false {
					} else {
						if z.EncBasicHandle().StringToRaw {
							r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
						} else {
							r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
						}
					}
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw([]byte{})
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, "")
					}
				}
			} else {
				if yyq2[0] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"S\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `S`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						if z.EncBasicHandle().StringToRaw {
							r.EncodeStringBytesRaw(z.BytesView(string(x.S)))
						} else {
							r.EncodeStringEnc(codecSelferCcUTF819780, string(x.S))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[1] {
					if false {
					} else {
						r.EncodeInt(int64(x.I64))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[1] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I64`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I64))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[2] {
					if false {
					} else {
						r.EncodeInt(int64(x.I32))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[2] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I32\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I32`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I32))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[3] {
					if false {
					} else {
						r.EncodeInt(int64(x.I16))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[3] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I16\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I16`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I16))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[4] {
					if false {
					} else {
						r.EncodeInt(int64(x.I8))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[4] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I8\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I8`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I8))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[5] {
					if false {
					} else {
						r.EncodeInt(int64(x.I64n))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[5] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I64n\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I64n`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I64n))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[6] {
					if false {
					} else {
						r.EncodeInt(int64(x.I32n))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[6] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I32n\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I32n`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I32n))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[7] {
					if false {
					} else {
						r.EncodeInt(int64(x.I16n))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[7] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I16n\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I16n`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I16n))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[8] {
					if false {
					} else {
						r.EncodeInt(int64(x.I8n))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[8] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I8n\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I8n`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.I8n))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[9] {
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui64))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[9] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui64))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[10] {
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui32))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[10] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui32\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui32`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui32))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[11] {
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui16))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[11] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui16\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui16`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui16))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[12] {
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui8))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[12] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui8\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.Ui8))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[13] {
					if false {
					} else {
						r.EncodeFloat64(float64(x.F64))
					}
				} else {
					r.EncodeFloat64(0)
				}
			} else {
				if yyq2[13] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"F64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `F64`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeFloat64(float64(x.F64))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[14] {
					if false {
					} else {
						r.EncodeFloat32(float32(x.F32))
					}
				} else {
					r.EncodeFloat32(0)
				}
			} else {
				if yyq2[14] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"F32\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `F32`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeFloat32(float32(x.F32))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[15] {
					if false {
					} else {
						r.EncodeBool(bool(x.B))
					}
				} else {
					r.EncodeBool(false)
				}
			} else {
				if yyq2[15] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"B\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `B`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeBool(bool(x.B))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[16] {
					if false {
					} else {
						r.EncodeUint(uint64(x.By))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[16] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"By\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `By`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.By))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[17] {
					if x.Sslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestring(([]string)(x.Sslice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[17] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Sslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Sslice`)
					}
					r.WriteMapElemValue()
					if x.Sslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestring(([]string)(x.Sslice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[18] {
					if x.I64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.I64slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[18] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I64slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I64slice`)
					}
					r.WriteMapElemValue()
					if x.I64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.I64slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[19] {
					if x.I16slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint16(([]int16)(x.I16slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[19] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"I16slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `I16slice`)
					}
					r.WriteMapElemValue()
					if x.I16slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint16(([]int16)(x.I16slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[20] {
					if x.Ui64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.Ui64slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[20] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui64slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64slice`)
					}
					r.WriteMapElemValue()
					if x.Ui64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.Ui64slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[21] {
					if x.Ui8slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Ui8slice))
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[21] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui8slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui8slice`)
					}
					r.WriteMapElemValue()
					if x.Ui8slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Ui8slice))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[22] {
					if x.Bslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicebool(([]bool)(x.Bslice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[22] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Bslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Bslice`)
					}
					r.WriteMapElemValue()
					if x.Bslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicebool(([]bool)(x.Bslice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[23] {
					if x.Byslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Byslice))
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[23] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Byslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Byslice`)
					}
					r.WriteMapElemValue()
					if x.Byslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Byslice))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[24] {
					if x.Iptrslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[24] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Iptrslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Iptrslice`)
					}
					r.WriteMapElemValue()
					if x.Iptrslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[25] {
					if x.WrapSliceInt64 == nil {
						r.EncodeNil()
					} else {
						x.WrapSliceInt64.CodecEncodeSelf(e)
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[25] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"WrapSliceInt64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceInt64`)
					}
					r.WriteMapElemValue()
					if x.WrapSliceInt64 == nil {
						r.EncodeNil()
					} else {
						x.WrapSliceInt64.CodecEncodeSelf(e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[26] {
					if x.WrapSliceString == nil {
						r.EncodeNil()
					} else {
						x.WrapSliceString.CodecEncodeSelf(e)
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[26] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"WrapSliceString\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `WrapSliceString`)
					}
					r.WriteMapElemValue()
					if x.WrapSliceString == nil {
						r.EncodeNil()
					} else {
						x.WrapSliceString.CodecEncodeSelf(e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[27] {
					if x.Msi64 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringint64((map[string]int64)(x.Msi64), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[27] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Msi64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Msi64`)
					}
					r.WriteMapElemValue()
					if x.Msi64 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringint64((map[string]int64)(x.Msi64), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[28] {
					yy88 := &x.Simplef
					yy88.CodecEncodeSelf(e)
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[28] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Simplef\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Simplef`)
					}
					r.WriteMapElemValue()
					yy90 := &x.Simplef
					yy90.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[29] {
					if x.SstrUi64T == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[29] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"SstrUi64T\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `SstrUi64T`)
					}
					r.WriteMapElemValue()
					if x.SstrUi64T == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[30] {
					if false {
					} else {
						if z.EncBasicHandle().StringToRaw {
							r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
						} else {
							r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
						}
					}
				} else {
					if z.EncBasicHandle().StringToRaw {
						r.EncodeStringBytesRaw([]byte{})
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, "")
					}
				}
			} else {
				if yyq2[30] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AS\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AS`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						if z.EncBasicHandle().StringToRaw {
							r.EncodeStringBytesRaw(z.BytesView(string(x.AS)))
						} else {
							r.EncodeStringEnc(codecSelferCcUTF819780, string(x.AS))
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[31] {
					if false {
					} else {
						r.EncodeInt(int64(x.AI64))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[31] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AI64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AI64`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.AI64))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[32] {
					if false {
					} else {
						r.EncodeInt(int64(x.AI16))
					}
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[32] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AI16\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AI16`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeInt(int64(x.AI16))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[33] {
					if false {
					} else {
						r.EncodeUint(uint64(x.AUi64))
					}
				} else {
					r.EncodeUint(0)
				}
			} else {
				if yyq2[33] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AUi64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64`)
					}
					r.WriteMapElemValue()
					if false {
					} else {
						r.EncodeUint(uint64(x.AUi64))
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[34] {
					if x.ASslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestring(([]string)(x.ASslice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[34] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"ASslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `ASslice`)
					}
					r.WriteMapElemValue()
					if x.ASslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicestring(([]string)(x.ASslice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[35] {
					if x.AI64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.AI64slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[35] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AI64slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AI64slice`)
					}
					r.WriteMapElemValue()
					if x.AI64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.AI64slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[36] {
					if x.AUi64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.AUi64slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[36] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AUi64slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64slice`)
					}
					r.WriteMapElemValue()
					if x.AUi64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.AUi64slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[37] {
					if x.AF64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicefloat64(([]float64)(x.AF64slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[37] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AF64slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AF64slice`)
					}
					r.WriteMapElemValue()
					if x.AF64slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicefloat64(([]float64)(x.AF64slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[38] {
					if x.AF32slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicefloat32(([]float32)(x.AF32slice), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[38] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AF32slice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AF32slice`)
					}
					r.WriteMapElemValue()
					if x.AF32slice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicefloat32(([]float32)(x.AF32slice), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[39] {
					if x.AMSU16 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[39] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AMSU16\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16`)
					}
					r.WriteMapElemValue()
					if x.AMSU16 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[40] {
					yy126 := &x.AI64arr0
					if false {
					} else {
						h.encArray0int64((*[0]int64)(yy126), e)
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[40] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AI64arr0\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AI64arr0`)
					}
					r.WriteMapElemValue()
					yy128 := &x.AI64arr0
					if false {
					} else {
						h.encArray0int64((*[0]int64)(yy128), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[41] {
					if x.A164slice0 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.A164slice0), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[41] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"A164slice0\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `A164slice0`)
					}
					r.WriteMapElemValue()
					if x.A164slice0 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceint64(([]int64)(x.A164slice0), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[42] {
					if x.AUi64sliceN == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[42] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AUi64sliceN\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AUi64sliceN`)
					}
					r.WriteMapElemValue()
					if x.AUi64sliceN == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceuint64(([]uint64)(x.AUi64sliceN), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[43] {
					if x.AMSU16N == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[43] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AMSU16N\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16N`)
					}
					r.WriteMapElemValue()
					if x.AMSU16N == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16N), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[44] {
					if x.AMSU16E == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[44] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"AMSU16E\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `AMSU16E`)
					}
					r.WriteMapElemValue()
					if x.AMSU16E == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringuint16((map[string]uint16)(x.AMSU16E), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[45] {
					yy143 := &x.NotAnon
					yy143.CodecEncodeSelf(e)
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[45] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"NotAnon\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `NotAnon`)
					}
					r.WriteMapElemValue()
					yy145 := &x.NotAnon
					yy145.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[46] {
					if x.Nmap == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringbool((map[string]bool)(x.Nmap), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[46] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Nmap\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Nmap`)
					}
					r.WriteMapElemValue()
					if x.Nmap == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringbool((map[string]bool)(x.Nmap), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[47] {
					if x.Nslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Nslice))
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[47] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Nslice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Nslice`)
					}
					r.WriteMapElemValue()
					if x.Nslice == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							r.EncodeStringBytesRaw([]byte(x.Nslice))
						}
					}
				}
			}
			var yyn153 bool
			if x.TestStrucCommon.Nint64 == nil {
				yyn153 = true
				goto LABEL153
			}
		LABEL153:
			if yyr2 || yy2arr2 {
				if yyn153 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[48] {
						if x.Nint64 == nil {
							r.EncodeNil()
						} else {
							yy154 := *x.Nint64
							if false {
							} else {
								r.EncodeInt(int64(yy154))
							}
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[48] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Nint64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Nint64`)
					}
					r.WriteMapElemValue()
					if yyn153 {
						r.EncodeNil()
					} else {
						if x.Nint64 == nil {
							r.EncodeNil()
						} else {
							yy156 := *x.Nint64
							if false {
							} else {
								r.EncodeInt(int64(yy156))
							}
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[49] {
					if x.Chstr == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encChanstring((chan string)(x.Chstr), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[49] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Chstr\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Chstr`)
					}
					r.WriteMapElemValue()
					if x.Chstr == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encChanstring((chan string)(x.Chstr), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[50] {
					if x.Mis == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapintstring((map[int]string)(x.Mis), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[50] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mis\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mis`)
					}
					r.WriteMapElemValue()
					if x.Mis == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapintstring((map[int]string)(x.Mis), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[51] {
					if x.Mbu64 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapboolc3RydWN0IHt9((map[bool]struct{})(x.Mbu64), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[51] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mbu64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mbu64`)
					}
					r.WriteMapElemValue()
					if x.Mbu64 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapboolc3RydWN0IHt9((map[bool]struct{})(x.Mbu64), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[52] {
					if x.Miwu64s == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[52] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Miwu64s\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Miwu64s`)
					}
					r.WriteMapElemValue()
					if x.Miwu64s == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[53] {
					if x.Mfwss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[53] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mfwss\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mfwss`)
					}
					r.WriteMapElemValue()
					if x.Mfwss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[54] {
					if x.Mf32wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[54] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mf32wss\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mf32wss`)
					}
					r.WriteMapElemValue()
					if x.Mf32wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[55] {
					if x.Mui2wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[55] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mui2wss\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mui2wss`)
					}
					r.WriteMapElemValue()
					if x.Mui2wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[56] {
					if x.Msu2wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[56] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Msu2wss\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Msu2wss`)
					}
					r.WriteMapElemValue()
					if x.Msu2wss == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[57] {
					x.Ci64.CodecEncodeSelf(e)
				} else {
					r.EncodeInt(0)
				}
			} else {
				if yyq2[57] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ci64\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ci64`)
					}
					r.WriteMapElemValue()
					x.Ci64.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[58] {
					if x.Swrapbytes == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[58] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Swrapbytes\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Swrapbytes`)
					}
					r.WriteMapElemValue()
					if x.Swrapbytes == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[59] {
					if x.Swrapuint8 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[59] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Swrapuint8\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Swrapuint8`)
					}
					r.WriteMapElemValue()
					if x.Swrapuint8 == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[60] {
					yy192 := &x.ArrStrUi64T
					if false {
					} else {
						h.encArray4stringUint64T((*[4]stringUint64T)(yy192), e)
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[60] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"ArrStrUi64T\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `ArrStrUi64T`)
					}
					r.WriteMapElemValue()
					yy194 := &x.ArrStrUi64T
					if false {
					} else {
						h.encArray4stringUint64T((*[4]stringUint64T)(yy194), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[61] {
					yy197 := &x.Ui64array
					if false {
					} else {
						h.encArray4uint64((*[4]uint64)(yy197), e)
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[61] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui64array\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64array`)
					}
					r.WriteMapElemValue()
					yy199 := &x.Ui64array
					if false {
					} else {
						h.encArray4uint64((*[4]uint64)(yy199), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[62] {
					if x.Ui64slicearray == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[62] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ui64slicearray\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ui64slicearray`)
					}
					r.WriteMapElemValue()
					if x.Ui64slicearray == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[63] {
					if x.SintfAarray == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceInterface(([]interface{})(x.SintfAarray), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[63] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"SintfAarray\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `SintfAarray`)
					}
					r.WriteMapElemValue()
					if x.SintfAarray == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSliceInterface(([]interface{})(x.SintfAarray), e)
						}
					}
				}
			}
			var yyn207 bool
			if x.AnonInTestStrucIntf == nil {
				yyn207 = true
				goto LABEL207
			}
		LABEL207:
			if yyr2 || yy2arr2 {
				if yyn207 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[64] {
						if x.Islice == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								h.encSliceInterface(([]interface{})(x.Islice), e)
							}
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[64] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Islice\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Islice`)
					}
					r.WriteMapElemValue()
					if yyn207 {
						r.EncodeNil()
					} else {
						if x.Islice == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								h.encSliceInterface(([]interface{})(x.Islice), e)
							}
						}
					}
				}
			}
			var yyn210 bool
			if x.AnonInTestStrucIntf == nil {
				yyn210 = true
				goto LABEL210
			}
		LABEL210:
			if yyr2 || yy2arr2 {
				if yyn210 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[65] {
						if x.Ms == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								h.encMapstringInterface((map[string]interface{})(x.Ms), e)
							}
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[65] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Ms\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Ms`)
					}
					r.WriteMapElemValue()
					if yyn210 {
						r.EncodeNil()
					} else {
						if x.Ms == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								h.encMapstringInterface((map[string]interface{})(x.Ms), e)
							}
						}
					}
				}
			}
			var yyn213 bool
			if x.AnonInTestStrucIntf == nil {
				yyn213 = true
				goto LABEL213
			}
		LABEL213:
			if yyr2 || yy2arr2 {
				if yyn213 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[66] {
						if x.Nintf == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								z.EncFallback(x.Nintf)
							}
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[66] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Nintf\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Nintf`)
					}
					r.WriteMapElemValue()
					if yyn213 {
						r.EncodeNil()
					} else {
						if x.Nintf == nil {
							r.EncodeNil()
						} else {
							if false {
							} else {
								z.EncFallback(x.Nintf)
							}
						}
					}
				}
			}
			var yyn216 bool
			if x.AnonInTestStrucIntf == nil {
				yyn216 = true
				goto LABEL216
			}
		LABEL216:
			if yyr2 || yy2arr2 {
				if yyn216 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[67] {
						if false {
						} else if !z.EncBasicHandle().TimeNotBuiltin {
							r.EncodeTime(x.T)
						} else if yyxt217 := z.Extension(z.I2Rtid(x.T)); yyxt217 != nil {
							z.EncExtension(x.T, yyxt217)
						} else if z.EncBinary() {
							z.EncBinaryMarshal(x.T)
						} else if !z.EncBinary() && z.IsJSONHandle() {
							z.EncJSONMarshal(x.T)
						} else {
							z.EncFallback(x.T)
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[67] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"T\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `T`)
					}
					r.WriteMapElemValue()
					if yyn216 {
						r.EncodeNil()
					} else {
						if false {
						} else if !z.EncBasicHandle().TimeNotBuiltin {
							r.EncodeTime(x.T)
						} else if yyxt218 := z.Extension(z.I2Rtid(x.T)); yyxt218 != nil {
							z.EncExtension(x.T, yyxt218)
						} else if z.EncBinary() {
							z.EncBinaryMarshal(x.T)
						} else if !z.EncBinary() && z.IsJSONHandle() {
							z.EncJSONMarshal(x.T)
						} else {
							z.EncFallback(x.T)
						}
					}
				}
			}
			var yyn219 bool
			if x.AnonInTestStrucIntf == nil {
				yyn219 = true
				goto LABEL219
			}
			if x.AnonInTestStrucIntf.Tptr == nil {
				yyn219 = true
				goto LABEL219
			}
		LABEL219:
			if yyr2 || yy2arr2 {
				if yyn219 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[68] {
						if x.Tptr == nil {
							r.EncodeNil()
						} else {
							yy220 := *x.Tptr
							if false {
							} else if !z.EncBasicHandle().TimeNotBuiltin {
								r.EncodeTime(yy220)
							} else if yyxt221 := z.Extension(z.I2Rtid(yy220)); yyxt221 != nil {
								z.EncExtension(yy220, yyxt221)
							} else if z.EncBinary() {
								z.EncBinaryMarshal(yy220)
							} else if !z.EncBinary() && z.IsJSONHandle() {
								z.EncJSONMarshal(yy220)
							} else {
								z.EncFallback(yy220)
							}
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[68] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Tptr\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Tptr`)
					}
					r.WriteMapElemValue()
					if yyn219 {
						r.EncodeNil()
					} else {
						if x.Tptr == nil {
							r.EncodeNil()
						} else {
							yy222 := *x.Tptr
							if false {
							} else if !z.EncBasicHandle().TimeNotBuiltin {
								r.EncodeTime(yy222)
							} else if yyxt223 := z.Extension(z.I2Rtid(yy222)); yyxt223 != nil {
								z.EncExtension(yy222, yyxt223)
							} else if z.EncBinary() {
								z.EncBinaryMarshal(yy222)
							} else if !z.EncBinary() && z.IsJSONHandle() {
								z.EncJSONMarshal(yy222)
							} else {
								z.EncFallback(yy222)
							}
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[69] {
					if x.Mtsptr == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[69] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mtsptr\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mtsptr`)
					}
					r.WriteMapElemValue()
					if x.Mtsptr == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[70] {
					if x.Mts == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[70] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Mts\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Mts`)
					}
					r.WriteMapElemValue()
					if x.Mts == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayElem()
				if yyq2[71] {
					if x.Its == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
						}
					}
				} else {
					r.EncodeNil()
				}
			} else {
				if yyq2[71] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Its\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Its`)
					}
					r.WriteMapElemValue()
					if x.Its == nil {
						r.EncodeNil()
					} else {
						if false {
						} else {
							h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
						}
					}
				}
			}
			var yyn233 bool
			if x.Nteststruc == nil {
				yyn233 = true
				goto LABEL233
			}
		LABEL233:
			if yyr2 || yy2arr2 {
				if yyn233 {
					r.WriteArrayElem()
					r.EncodeNil()
				} else {
					r.WriteArrayElem()
					if yyq2[72] {
						if x.Nteststruc == nil {
							r.EncodeNil()
						} else {
							x.Nteststruc.CodecEncodeSelf(e)
						}
					} else {
						r.EncodeNil()
					}
				}
			} else {
				if yyq2[72] {
					r.WriteMapElemKey()
					if z.IsJSONHandle() {
						z.WriteStr("\"Nteststruc\"")
					} else {
						r.EncodeStringEnc(codecSelferCcUTF819780, `Nteststruc`)
					}
					r.WriteMapElemValue()
					if yyn233 {
						r.EncodeNil()
					} else {
						if x.Nteststruc == nil {
							r.EncodeNil()
						} else {
							x.Nteststruc.CodecEncodeSelf(e)
						}
					}
				}
			}
			if yyr2 || yy2arr2 {
				r.WriteArrayEnd()
			} else {
				r.WriteMapEnd()
			}
		}
	}
}

func (x *TestStrucFlex) CodecDecodeSelf(d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	if false {
	} else if yyxt1 := z.Extension(z.I2Rtid(x)); yyxt1 != nil {
		z.DecExtension(x, yyxt1)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap19780 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				r.ReadMapEnd()
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray19780 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				r.ReadArrayEnd()
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
		}
	}
}

func (x *TestStrucFlex) codecDecodeSelfFromMap(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		r.ReadMapElemKey()
		yys3 := z.StringView(r.DecodeStringAsBytes())
		r.ReadMapElemValue()
		switch yys3 {
		case "S":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.S = ""
			} else {
				x.S = (string)(r.DecodeString())
			}
		case "I64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64 = 0
			} else {
				x.I64 = (int64)(r.DecodeInt64())
			}
		case "I32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I32 = 0
			} else {
				x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16 = 0
			} else {
				x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I8 = 0
			} else {
				x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "I64n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64n = 0
			} else {
				x.I64n = (int64)(r.DecodeInt64())
			}
		case "I32n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I32n = 0
			} else {
				x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
			}
		case "I16n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16n = 0
			} else {
				x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "I8n":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I8n = 0
			} else {
				x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
			}
		case "Ui64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui64 = 0
			} else {
				x.Ui64 = (uint64)(r.DecodeUint64())
			}
		case "Ui32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui32 = 0
			} else {
				x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
			}
		case "Ui16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui16 = 0
			} else {
				x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
			}
		case "Ui8":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui8 = 0
			} else {
				x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "F64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.F64 = 0
			} else {
				x.F64 = (float64)(r.DecodeFloat64())
			}
		case "F32":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.F32 = 0
			} else {
				x.F32 = (float32)(r.DecodeFloat32As64())
			}
		case "B":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.B = false
			} else {
				x.B = (bool)(r.DecodeBool())
			}
		case "By":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.By = 0
			} else {
				x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
			}
		case "Sslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Sslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.Sslice), d)
				}
			}
		case "I64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.I64slice), d)
				}
			}
		case "I16slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.I16slice = nil
			} else {
				if false {
				} else {
					h.decSliceint16((*[]int16)(&x.I16slice), d)
				}
			}
		case "Ui64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
				}
			}
		case "Ui8slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Ui8slice = nil
			} else {
				if false {
				} else {
					x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
				}
			}
		case "Bslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Bslice = nil
			} else {
				if false {
				} else {
					h.decSlicebool((*[]bool)(&x.Bslice), d)
				}
			}
		case "Byslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Byslice = nil
			} else {
				if false {
				} else {
					x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
				}
			}
		case "Iptrslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Iptrslice = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
				}
			}
		case "WrapSliceInt64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.WrapSliceInt64 = nil
			} else {
				x.WrapSliceInt64.CodecDecodeSelf(d)
			}
		case "WrapSliceString":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.WrapSliceString = nil
			} else {
				x.WrapSliceString.CodecDecodeSelf(d)
			}
		case "Msi64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Msi64 = nil
			} else {
				if false {
				} else {
					h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
				}
			}
		case "Simplef":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Simplef = testSimpleFields{}
			} else {
				x.Simplef.CodecDecodeSelf(d)
			}
		case "SstrUi64T":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.SstrUi64T = nil
			} else {
				if false {
				} else {
					h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
				}
			}
		case "AS":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AS = ""
			} else {
				x.AS = (string)(r.DecodeString())
			}
		case "AI64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64 = 0
			} else {
				x.AI64 = (int64)(r.DecodeInt64())
			}
		case "AI16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI16 = 0
			} else {
				x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
			}
		case "AUi64":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64 = 0
			} else {
				x.AUi64 = (uint64)(r.DecodeUint64())
			}
		case "ASslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.ASslice = nil
			} else {
				if false {
				} else {
					h.decSlicestring((*[]string)(&x.ASslice), d)
				}
			}
		case "AI64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64slice = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.AI64slice), d)
				}
			}
		case "AUi64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64slice = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
				}
			}
		case "AF64slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AF64slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
				}
			}
		case "AF32slice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AF32slice = nil
			} else {
				if false {
				} else {
					h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
				}
			}
		case "AMSU16":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16 = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
				}
			}
		case "AI64arr0":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AI64arr0 = [0]int64{}
			} else {
				if false {
				} else {
					h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
				}
			}
		case "A164slice0":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.A164slice0 = nil
			} else {
				if false {
				} else {
					h.decSliceint64((*[]int64)(&x.A164slice0), d)
				}
			}
		case "AUi64sliceN":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AUi64sliceN = nil
			} else {
				if false {
				} else {
					h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
				}
			}
		case "AMSU16N":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16N = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
				}
			}
		case "AMSU16E":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.AnonInTestStruc.AMSU16E = nil
			} else {
				if false {
				} else {
					h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
				}
			}
		case "NotAnon":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.NotAnon = AnonInTestStruc{}
			} else {
				x.NotAnon.CodecDecodeSelf(d)
			}
		case "Nmap":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Nmap = nil
			} else {
				if false {
				} else {
					h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
				}
			}
		case "Nslice":
			if r.TryDecodeAsNil() {
				x.TestStrucCommon.Nslice = nil
			} else {
				if false {
				} else {
					x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
				}
			}
		case "Nint64":
			if r.TryDecodeAsNil() {
				if true && x.TestStrucCommon.Nint64 != nil {
					x.TestStrucCommon.Nint64 = nil
				}
			} else {
				if x.TestStrucCommon.Nint64 == nil {
					x.TestStrucCommon.Nint64 = new(int64)
				}

				if false {
				} else {
					*x.Nint64 = (int64)(r.DecodeInt64())
				}
			}
		case "Chstr":
			if r.TryDecodeAsNil() {
				x.Chstr = nil
			} else {
				if false {
				} else {
					h.decChanstring((*chan string)(&x.Chstr), d)
				}
			}
		case "Mis":
			if r.TryDecodeAsNil() {
				x.Mis = nil
			} else {
				if false {
				} else {
					h.decMapintstring((*map[int]string)(&x.Mis), d)
				}
			}
		case "Mbu64":
			if r.TryDecodeAsNil() {
				x.Mbu64 = nil
			} else {
				if false {
				} else {
					h.decMapboolc3RydWN0IHt9((*map[bool]struct{})(&x.Mbu64), d)
				}
			}
		case "Miwu64s":
			if r.TryDecodeAsNil() {
				x.Miwu64s = nil
			} else {
				if false {
				} else {
					h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
				}
			}
		case "Mfwss":
			if r.TryDecodeAsNil() {
				x.Mfwss = nil
			} else {
				if false {
				} else {
					h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
				}
			}
		case "Mf32wss":
			if r.TryDecodeAsNil() {
				x.Mf32wss = nil
			} else {
				if false {
				} else {
					h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
				}
			}
		case "Mui2wss":
			if r.TryDecodeAsNil() {
				x.Mui2wss = nil
			} else {
				if false {
				} else {
					h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
				}
			}
		case "Msu2wss":
			if r.TryDecodeAsNil() {
				x.Msu2wss = nil
			} else {
				if false {
				} else {
					h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
				}
			}
		case "Ci64":
			if r.TryDecodeAsNil() {
				x.Ci64 = 0
			} else {
				x.Ci64.CodecDecodeSelf(d)
			}
		case "Swrapbytes":
			if r.TryDecodeAsNil() {
				x.Swrapbytes = nil
			} else {
				if false {
				} else {
					h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
				}
			}
		case "Swrapuint8":
			if r.TryDecodeAsNil() {
				x.Swrapuint8 = nil
			} else {
				if false {
				} else {
					h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
				}
			}
		case "ArrStrUi64T":
			if r.TryDecodeAsNil() {
				x.ArrStrUi64T = [4]stringUint64T{}
			} else {
				if false {
				} else {
					h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
				}
			}
		case "Ui64array":
			if r.TryDecodeAsNil() {
				x.Ui64array = [4]uint64{}
			} else {
				if false {
				} else {
					h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
				}
			}
		case "Ui64slicearray":
			if r.TryDecodeAsNil() {
				x.Ui64slicearray = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
				}
			}
		case "SintfAarray":
			if r.TryDecodeAsNil() {
				x.SintfAarray = nil
			} else {
				if false {
				} else {
					h.decSliceInterface((*[]interface{})(&x.SintfAarray), d)
				}
			}
		case "Islice":
			if r.TryDecodeAsNil() {
				if true && x.AnonInTestStrucIntf != nil {
					x.AnonInTestStrucIntf.Islice = nil
				}
			} else {
				if x.AnonInTestStrucIntf == nil {
					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
				}

				if false {
				} else {
					h.decSliceInterface((*[]interface{})(&x.Islice), d)
				}
			}
		case "Ms":
			if r.TryDecodeAsNil() {
				if true && x.AnonInTestStrucIntf != nil {
					x.AnonInTestStrucIntf.Ms = nil
				}
			} else {
				if x.AnonInTestStrucIntf == nil {
					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
				}

				if false {
				} else {
					h.decMapstringInterface((*map[string]interface{})(&x.Ms), d)
				}
			}
		case "Nintf":
			if r.TryDecodeAsNil() {
				if true && x.AnonInTestStrucIntf != nil {
					x.AnonInTestStrucIntf.Nintf = nil
				}
			} else {
				if x.AnonInTestStrucIntf == nil {
					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
				}

				if false {
				} else {
					z.DecFallback(&x.Nintf, true)
				}
			}
		case "T":
			if r.TryDecodeAsNil() {
				if true && x.AnonInTestStrucIntf != nil {
					x.AnonInTestStrucIntf.T = time.Time{}
				}
			} else {
				if x.AnonInTestStrucIntf == nil {
					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
				}

				if false {
				} else if !z.DecBasicHandle().TimeNotBuiltin {
					x.T = r.DecodeTime()
				} else if yyxt113 := z.Extension(z.I2Rtid(x.T)); yyxt113 != nil {
					z.DecExtension(x.T, yyxt113)
				} else if z.DecBinary() {
					z.DecBinaryUnmarshal(&x.T)
				} else if !z.DecBinary() && z.IsJSONHandle() {
					z.DecJSONUnmarshal(&x.T)
				} else {
					z.DecFallback(&x.T, false)
				}
			}
		case "Tptr":
			if r.TryDecodeAsNil() {
				if true && x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil {
					x.AnonInTestStrucIntf.Tptr = nil
				}
			} else {
				if x.AnonInTestStrucIntf == nil {
					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
				}
				if x.AnonInTestStrucIntf.Tptr == nil {
					x.AnonInTestStrucIntf.Tptr = new(time.Time)
				}

				if false {
				} else if !z.DecBasicHandle().TimeNotBuiltin {
					*x.Tptr = r.DecodeTime()
				} else if yyxt115 := z.Extension(z.I2Rtid(x.Tptr)); yyxt115 != nil {
					z.DecExtension(x.Tptr, yyxt115)
				} else if z.DecBinary() {
					z.DecBinaryUnmarshal(x.Tptr)
				} else if !z.DecBinary() && z.IsJSONHandle() {
					z.DecJSONUnmarshal(x.Tptr)
				} else {
					z.DecFallback(x.Tptr, false)
				}
			}
		case "Mtsptr":
			if r.TryDecodeAsNil() {
				x.Mtsptr = nil
			} else {
				if false {
				} else {
					h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
				}
			}
		case "Mts":
			if r.TryDecodeAsNil() {
				x.Mts = nil
			} else {
				if false {
				} else {
					h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
				}
			}
		case "Its":
			if r.TryDecodeAsNil() {
				x.Its = nil
			} else {
				if false {
				} else {
					h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
				}
			}
		case "Nteststruc":
			if r.TryDecodeAsNil() {
				if true && x.Nteststruc != nil {
					x.Nteststruc = nil
				}
			} else {
				if x.Nteststruc == nil {
					x.Nteststruc = new(TestStrucFlex)
				}

				x.Nteststruc.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	r.ReadMapEnd()
}

func (x *TestStrucFlex) codecDecodeSelfFromArray(l int, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj123 int
	var yyb123 bool
	var yyhl123 bool = l >= 0
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.S = ""
	} else {
		x.S = (string)(r.DecodeString())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64 = 0
	} else {
		x.I64 = (int64)(r.DecodeInt64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I32 = 0
	} else {
		x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16 = 0
	} else {
		x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I8 = 0
	} else {
		x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64n = 0
	} else {
		x.I64n = (int64)(r.DecodeInt64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I32n = 0
	} else {
		x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16n = 0
	} else {
		x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I8n = 0
	} else {
		x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui64 = 0
	} else {
		x.Ui64 = (uint64)(r.DecodeUint64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui32 = 0
	} else {
		x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui16 = 0
	} else {
		x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui8 = 0
	} else {
		x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.F64 = 0
	} else {
		x.F64 = (float64)(r.DecodeFloat64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.F32 = 0
	} else {
		x.F32 = (float32)(r.DecodeFloat32As64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.B = false
	} else {
		x.B = (bool)(r.DecodeBool())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.By = 0
	} else {
		x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Sslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.Sslice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.I64slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.I16slice = nil
	} else {
		if false {
		} else {
			h.decSliceint16((*[]int16)(&x.I16slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.Ui64slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Ui8slice = nil
	} else {
		if false {
		} else {
			x.Ui8slice = r.DecodeBytes(([]byte)(x.Ui8slice), false)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Bslice = nil
	} else {
		if false {
		} else {
			h.decSlicebool((*[]bool)(&x.Bslice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Byslice = nil
	} else {
		if false {
		} else {
			x.Byslice = r.DecodeBytes(([]byte)(x.Byslice), false)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Iptrslice = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.WrapSliceInt64 = nil
	} else {
		x.WrapSliceInt64.CodecDecodeSelf(d)
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.WrapSliceString = nil
	} else {
		x.WrapSliceString.CodecDecodeSelf(d)
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Msi64 = nil
	} else {
		if false {
		} else {
			h.decMapstringint64((*map[string]int64)(&x.Msi64), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Simplef = testSimpleFields{}
	} else {
		x.Simplef.CodecDecodeSelf(d)
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.SstrUi64T = nil
	} else {
		if false {
		} else {
			h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AS = ""
	} else {
		x.AS = (string)(r.DecodeString())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64 = 0
	} else {
		x.AI64 = (int64)(r.DecodeInt64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI16 = 0
	} else {
		x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64 = 0
	} else {
		x.AUi64 = (uint64)(r.DecodeUint64())
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.ASslice = nil
	} else {
		if false {
		} else {
			h.decSlicestring((*[]string)(&x.ASslice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64slice = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.AI64slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64slice = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AF64slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat64((*[]float64)(&x.AF64slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AF32slice = nil
	} else {
		if false {
		} else {
			h.decSlicefloat32((*[]float32)(&x.AF32slice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16 = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AI64arr0 = [0]int64{}
	} else {
		if false {
		} else {
			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.A164slice0 = nil
	} else {
		if false {
		} else {
			h.decSliceint64((*[]int64)(&x.A164slice0), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AUi64sliceN = nil
	} else {
		if false {
		} else {
			h.decSliceuint64((*[]uint64)(&x.AUi64sliceN), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16N = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16N), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.AnonInTestStruc.AMSU16E = nil
	} else {
		if false {
		} else {
			h.decMapstringuint16((*map[string]uint16)(&x.AMSU16E), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.NotAnon = AnonInTestStruc{}
	} else {
		x.NotAnon.CodecDecodeSelf(d)
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Nmap = nil
	} else {
		if false {
		} else {
			h.decMapstringbool((*map[string]bool)(&x.Nmap), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.TestStrucCommon.Nslice = nil
	} else {
		if false {
		} else {
			x.Nslice = r.DecodeBytes(([]byte)(x.Nslice), false)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.TestStrucCommon.Nint64 != nil {
			x.TestStrucCommon.Nint64 = nil
		}
	} else {
		if x.TestStrucCommon.Nint64 == nil {
			x.TestStrucCommon.Nint64 = new(int64)
		}

		if false {
		} else {
			*x.Nint64 = (int64)(r.DecodeInt64())
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Chstr = nil
	} else {
		if false {
		} else {
			h.decChanstring((*chan string)(&x.Chstr), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mis = nil
	} else {
		if false {
		} else {
			h.decMapintstring((*map[int]string)(&x.Mis), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mbu64 = nil
	} else {
		if false {
		} else {
			h.decMapboolc3RydWN0IHt9((*map[bool]struct{})(&x.Mbu64), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Miwu64s = nil
	} else {
		if false {
		} else {
			h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mfwss = nil
	} else {
		if false {
		} else {
			h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mf32wss = nil
	} else {
		if false {
		} else {
			h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mui2wss = nil
	} else {
		if false {
		} else {
			h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Msu2wss = nil
	} else {
		if false {
		} else {
			h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ci64 = 0
	} else {
		x.Ci64.CodecDecodeSelf(d)
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Swrapbytes = nil
	} else {
		if false {
		} else {
			h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Swrapuint8 = nil
	} else {
		if false {
		} else {
			h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.ArrStrUi64T = [4]stringUint64T{}
	} else {
		if false {
		} else {
			h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64array = [4]uint64{}
	} else {
		if false {
		} else {
			h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Ui64slicearray = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.SintfAarray = nil
	} else {
		if false {
		} else {
			h.decSliceInterface((*[]interface{})(&x.SintfAarray), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.AnonInTestStrucIntf != nil {
			x.AnonInTestStrucIntf.Islice = nil
		}
	} else {
		if x.AnonInTestStrucIntf == nil {
			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
		}

		if false {
		} else {
			h.decSliceInterface((*[]interface{})(&x.Islice), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.AnonInTestStrucIntf != nil {
			x.AnonInTestStrucIntf.Ms = nil
		}
	} else {
		if x.AnonInTestStrucIntf == nil {
			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
		}

		if false {
		} else {
			h.decMapstringInterface((*map[string]interface{})(&x.Ms), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.AnonInTestStrucIntf != nil {
			x.AnonInTestStrucIntf.Nintf = nil
		}
	} else {
		if x.AnonInTestStrucIntf == nil {
			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
		}

		if false {
		} else {
			z.DecFallback(&x.Nintf, true)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.AnonInTestStrucIntf != nil {
			x.AnonInTestStrucIntf.T = time.Time{}
		}
	} else {
		if x.AnonInTestStrucIntf == nil {
			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
		}

		if false {
		} else if !z.DecBasicHandle().TimeNotBuiltin {
			x.T = r.DecodeTime()
		} else if yyxt233 := z.Extension(z.I2Rtid(x.T)); yyxt233 != nil {
			z.DecExtension(x.T, yyxt233)
		} else if z.DecBinary() {
			z.DecBinaryUnmarshal(&x.T)
		} else if !z.DecBinary() && z.IsJSONHandle() {
			z.DecJSONUnmarshal(&x.T)
		} else {
			z.DecFallback(&x.T, false)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil {
			x.AnonInTestStrucIntf.Tptr = nil
		}
	} else {
		if x.AnonInTestStrucIntf == nil {
			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
		}
		if x.AnonInTestStrucIntf.Tptr == nil {
			x.AnonInTestStrucIntf.Tptr = new(time.Time)
		}

		if false {
		} else if !z.DecBasicHandle().TimeNotBuiltin {
			*x.Tptr = r.DecodeTime()
		} else if yyxt235 := z.Extension(z.I2Rtid(x.Tptr)); yyxt235 != nil {
			z.DecExtension(x.Tptr, yyxt235)
		} else if z.DecBinary() {
			z.DecBinaryUnmarshal(x.Tptr)
		} else if !z.DecBinary() && z.IsJSONHandle() {
			z.DecJSONUnmarshal(x.Tptr)
		} else {
			z.DecFallback(x.Tptr, false)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mtsptr = nil
	} else {
		if false {
		} else {
			h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Mts = nil
	} else {
		if false {
		} else {
			h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		x.Its = nil
	} else {
		if false {
		} else {
			h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
		}
	}
	yyj123++
	if yyhl123 {
		yyb123 = yyj123 > l
	} else {
		yyb123 = r.CheckBreak()
	}
	if yyb123 {
		r.ReadArrayEnd()
		return
	}
	r.ReadArrayElem()
	if r.TryDecodeAsNil() {
		if true && x.Nteststruc != nil {
			x.Nteststruc = nil
		}
	} else {
		if x.Nteststruc == nil {
			x.Nteststruc = new(TestStrucFlex)
		}

		x.Nteststruc.CodecDecodeSelf(d)
	}
	for {
		yyj123++
		if yyhl123 {
			yyb123 = yyj123 > l
		} else {
			yyb123 = r.CheckBreak()
		}
		if yyb123 {
			break
		}
		r.ReadArrayElem()
		z.DecStructFieldNotFound(yyj123-1, "")
	}
	r.ReadArrayEnd()
}

func (x codecSelfer19780) encwrapSliceUint64(v wrapSliceUint64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeUint(uint64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decwrapSliceUint64(v *wrapSliceUint64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []uint64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]uint64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]uint64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (uint64)(r.DecodeUint64())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]uint64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encwrapSliceString(v wrapSliceString, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyv1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyv1))
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decwrapSliceString(v *wrapSliceString, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []string{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]string, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]string, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, "")
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = ""
				} else {
					yyv1[yyj1] = (string)(r.DecodeString())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]string, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encwrapUint64Slice(v wrapUint64Slice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		yyv1.CodecEncodeSelf(e)
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decwrapUint64Slice(v *wrapUint64Slice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []wrapUint64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]wrapUint64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]wrapUint64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]wrapUint64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encwrapStringSlice(v wrapStringSlice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		yyv1.CodecEncodeSelf(e)
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decwrapStringSlice(v *wrapStringSlice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []wrapString{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]wrapString, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]wrapString, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, "")
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = ""
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]wrapString, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicestring(v []string, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyv1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyv1))
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicestring(v *[]string, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []string{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]string, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]string, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, "")
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = ""
				} else {
					yyv1[yyj1] = (string)(r.DecodeString())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]string, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSliceint64(v []int64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeInt(int64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSliceint64(v *[]int64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []int64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]int64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]int64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (int64)(r.DecodeInt64())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]int64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSliceuint64(v []uint64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeUint(uint64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSliceuint64(v *[]uint64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []uint64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]uint64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]uint64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (uint64)(r.DecodeUint64())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]uint64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicefloat64(v []float64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeFloat64(float64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicefloat64(v *[]float64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []float64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]float64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]float64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (float64)(r.DecodeFloat64())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]float64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicefloat32(v []float32, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeFloat32(float32(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicefloat32(v *[]float32, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []float32{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 4)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]float32, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 4)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]float32, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (float32)(r.DecodeFloat32As64())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]float32, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapstringuint16(v map[string]uint16, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if false {
		} else {
			r.EncodeUint(uint64(yyv1))
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringuint16(v *map[string]uint16, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 18)
		yyv1 = make(map[string]uint16, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 uint16
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = 0
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encArray0int64(v *[0]int64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeInt(int64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decArray0int64(v *[0]int64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := v
	yyh1, yyl1 := z.DecSliceHelperStart()
	if yyl1 == 0 {

	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1

		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination

			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				z.DecArrayCannotExpand(len(v), yyj1+1)
				yydb1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (int64)(r.DecodeInt64())
				}

			}

		}

	}
	yyh1.End()

}

func (x codecSelfer19780) encSliceint16(v []int16, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeInt(int64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSliceint16(v *[]int16, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []int16{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 2)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]int16, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 2)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]int16, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (int16)(z.C.IntV(r.DecodeInt64(), 16))
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]int16, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicebool(v []bool, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeBool(bool(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicebool(v *[]bool, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []bool{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]bool, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]bool, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, false)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = false
				} else {
					yyv1[yyj1] = (bool)(r.DecodeBool())
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]bool, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicePtrtoint64(v []*int64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yy2 := *yyv1
			if false {
			} else {
				r.EncodeInt(int64(yy2))
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicePtrtoint64(v *[]*int64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*int64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*int64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]*int64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(int64)
					}
					if false {
					} else {
						*yyv1[yyj1] = (int64)(r.DecodeInt64())
					}
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]*int64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapstringint64(v map[string]int64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if false {
		} else {
			r.EncodeInt(int64(yyv1))
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringint64(v *map[string]int64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 24)
		yyv1 = make(map[string]int64, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 int64
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1 = (int64)(r.DecodeInt64())
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = 0
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encSlicestringUint64T(v []stringUint64T, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		yy2 := &yyv1
		yy2.CodecEncodeSelf(e)
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicestringUint64T(v *[]stringUint64T, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []stringUint64T{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]stringUint64T, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]stringUint64T, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, stringUint64T{})
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = stringUint64T{}
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]stringUint64T, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapstringbool(v map[string]bool, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if false {
		} else {
			r.EncodeBool(bool(yyv1))
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringbool(v *map[string]bool, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 17)
		yyv1 = make(map[string]bool, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 bool
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1 = (bool)(r.DecodeBool())
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = false
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapstringPtrtoTestStruc(v map[string]*TestStruc, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringPtrtoTestStruc(v *map[string]*TestStruc, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 24)
		yyv1 = make(map[string]*TestStruc, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 *TestStruc
	var yymg1, yymdn1, yyms1, yymok1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			yyms1 = true
			if yymg1 {
				yymv1, yymok1 = yyv1[yymk1]
				if yymok1 {
					yyms1 = false
				}
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				if yymv1 == nil {
					yymv1 = new(TestStruc)
				}
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyms1 && yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapstringTestStruc(v map[string]TestStruc, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		yy3 := &yyv1
		yy3.CodecEncodeSelf(e)
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringTestStruc(v *map[string]TestStruc, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 1184)
		yyv1 = make(map[string]TestStruc, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 TestStruc
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = TestStruc{}
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = TestStruc{}
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encSlicePtrtoTestStruc(v []*TestStruc, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicePtrtoTestStruc(v *[]*TestStruc, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*TestStruc{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*TestStruc, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]*TestStruc, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(TestStruc)
					}
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]*TestStruc, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encAarray(v *Aarray, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyv1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyv1))
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decAarray(v *Aarray, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := v
	yyh1, yyl1 := z.DecSliceHelperStart()
	if yyl1 == 0 {

	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1

		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination

			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				z.DecArrayCannotExpand(len(v), yyj1+1)
				yydb1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = ""
				} else {
					yyv1[yyj1] = (string)(r.DecodeString())
				}

			}

		}

	}
	yyh1.End()

}

func (x codecSelfer19780) encwrapBytes(v wrapBytes, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.EncodeStringBytesRaw([]byte(v))
}

func (x codecSelfer19780) decwrapBytes(v *wrapBytes, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r
	*v = r.DecodeBytes(*((*[]byte)(v)), false)
}

func (x codecSelfer19780) encSliceInterface(v []interface{}, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			if false {
			} else {
				z.EncFallback(yyv1)
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSliceInterface(v *[]interface{}, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []interface{}{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]interface{}, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]interface{}, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					if false {
					} else {
						z.DecFallback(&yyv1[yyj1], true)
					}
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]interface{}, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapstringInterface(v map[string]interface{}, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			if false {
			} else {
				z.EncFallback(yyv1)
			}
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringInterface(v *map[string]interface{}, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 32)
		yyv1 = make(map[string]interface{}, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 interface{}
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		if !yybh1.InterfaceReset {
			yymg1 = true
		}
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				if false {
				} else {
					z.DecFallback(&yymv1, true)
				}
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encChanstring(v chan string, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	if v == nil {
		r.EncodeNil()
	} else {
		var sch1 []string

	Lsch1:
		switch timeout1 := z.EncBasicHandle().ChanRecvTimeout; {
		case timeout1 == 0: // only consume available
			for {
				select {
				case b1 := <-v:
					sch1 = append(sch1, b1)
				default:
					break Lsch1
				}
			}
		case timeout1 > 0: // consume until timeout
			tt1 := time.NewTimer(timeout1)
			for {
				select {
				case b1 := <-v:
					sch1 = append(sch1, b1)
				case <-tt1.C:
					// close(tt.C)
					break Lsch1
				}
			}
		default: // consume until close
			for b1 := range v {
				sch1 = append(sch1, b1)
			}
		}
		r.WriteArrayStart(len(sch1))
		for _, yyv1 := range sch1 {
			r.WriteArrayElem()
			if false {
			} else {
				if z.EncBasicHandle().StringToRaw {
					r.EncodeStringBytesRaw(z.BytesView(string(yyv1)))
				} else {
					r.EncodeStringEnc(codecSelferCcUTF819780, string(yyv1))
				}
			}
		}
		r.WriteArrayEnd()
	}
}

func (x codecSelfer19780) decChanstring(v *chan string, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = make(chan string, 0)
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1

		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
				} else {
					yyrl1 = 64
				}
				yyv1 = make(chan string, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yyvcx1 string
			if r.TryDecodeAsNil() {
				yyvcx1 = ""
			} else {
				yyvcx1 = (string)(r.DecodeString())
			}

			yyv1 <- yyvcx1
			// println(">>>> sending ", yyvcx1, " into ", yyv1) // TODO: remove this

		}

	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapintstring(v map[int]string, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeInt(int64(yyk1))
		}
		r.WriteMapElemValue()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyv1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyv1))
			}
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapintstring(v *map[int]string, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 24)
		yyv1 = make(map[int]string, yyrl1)
		*v = yyv1
	}
	var yymk1 int
	var yymv1 string
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = 0
			} else {
				yymk1 = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1 = (string)(r.DecodeString())
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = ""
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapboolc3RydWN0IHt9(v map[bool]struct{}, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeBool(bool(yyk1))
		}
		r.WriteMapElemValue()
		yy3 := &yyv1
		if false {
		} else {
			z.EncFallback(yy3)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapboolc3RydWN0IHt9(v *map[bool]struct{}, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 1)
		yyv1 = make(map[bool]struct{}, yyrl1)
		*v = yyv1
	}
	var yymk1 bool
	var yymv1 struct{}
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = false
			} else {
				yymk1 = (bool)(r.DecodeBool())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = struct{}{}
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				if false {
				} else {
					z.DecFallback(&yymv1, false)
				}
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = struct{}{}
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapintwrapUint64Slice(v map[int]wrapUint64Slice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeInt(int64(yyk1))
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapintwrapUint64Slice(v *map[int]wrapUint64Slice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 32)
		yyv1 = make(map[int]wrapUint64Slice, yyrl1)
		*v = yyv1
	}
	var yymk1 int
	var yymv1 wrapUint64Slice
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = 0
			} else {
				yymk1 = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapfloat64wrapStringSlice(v map[float64]wrapStringSlice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeFloat64(float64(yyk1))
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapfloat64wrapStringSlice(v *map[float64]wrapStringSlice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 32)
		yyv1 = make(map[float64]wrapStringSlice, yyrl1)
		*v = yyv1
	}
	var yymk1 float64
	var yymv1 wrapStringSlice
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = 0
			} else {
				yymk1 = (float64)(r.DecodeFloat64())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapfloat32wrapStringSlice(v map[float32]wrapStringSlice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeFloat32(float32(yyk1))
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapfloat32wrapStringSlice(v *map[float32]wrapStringSlice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 28)
		yyv1 = make(map[float32]wrapStringSlice, yyrl1)
		*v = yyv1
	}
	var yymk1 float32
	var yymv1 wrapStringSlice
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = 0
			} else {
				yymk1 = (float32)(r.DecodeFloat32As64())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapuint64wrapStringSlice(v map[uint64]wrapStringSlice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			r.EncodeUint(uint64(yyk1))
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapuint64wrapStringSlice(v *map[uint64]wrapStringSlice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 32)
		yyv1 = make(map[uint64]wrapStringSlice, yyrl1)
		*v = yyv1
	}
	var yymk1 uint64
	var yymv1 wrapStringSlice
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = 0
			} else {
				yymk1 = (uint64)(r.DecodeUint64())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapstringUint64TwrapStringSlice(v map[stringUint64T]wrapStringSlice, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		yy2 := &yyk1
		yy2.CodecEncodeSelf(e)
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringUint64TwrapStringSlice(v *map[stringUint64T]wrapStringSlice, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 48)
		yyv1 = make(map[stringUint64T]wrapStringSlice, yyrl1)
		*v = yyv1
	}
	var yymk1 stringUint64T
	var yymv1 wrapStringSlice
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = stringUint64T{}
			} else {
				yymk1.CodecDecodeSelf(d)
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encSlicewrapBytes(v []wrapBytes, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicewrapBytes(v *[]wrapBytes, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []wrapBytes{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]wrapBytes, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]wrapBytes, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]wrapBytes, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encSlicewrapUint8(v []wrapUint8, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		yyv1.CodecEncodeSelf(e)
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicewrapUint8(v *[]wrapUint8, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []wrapUint8{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]wrapUint8, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]wrapUint8, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, 0)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]wrapUint8, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encArray4stringUint64T(v *[4]stringUint64T, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		yy2 := &yyv1
		yy2.CodecEncodeSelf(e)
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decArray4stringUint64T(v *[4]stringUint64T, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := v
	yyh1, yyl1 := z.DecSliceHelperStart()
	if yyl1 == 0 {

	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1

		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination

			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				z.DecArrayCannotExpand(len(v), yyj1+1)
				yydb1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = stringUint64T{}
				} else {
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}

	}
	yyh1.End()

}

func (x codecSelfer19780) encArray4uint64(v *[4]uint64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if false {
		} else {
			r.EncodeUint(uint64(yyv1))
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decArray4uint64(v *[4]uint64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := v
	yyh1, yyl1 := z.DecSliceHelperStart()
	if yyl1 == 0 {

	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1

		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination

			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				z.DecArrayCannotExpand(len(v), yyj1+1)
				yydb1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = 0
				} else {
					yyv1[yyj1] = (uint64)(r.DecodeUint64())
				}

			}

		}

	}
	yyh1.End()

}

func (x codecSelfer19780) encSlicePtrtoArray4uint64(v []*[4]uint64, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			if false {
			} else {
				h.encArray4uint64((*[4]uint64)(yyv1), e)
			}
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicePtrtoArray4uint64(v *[]*[4]uint64, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*[4]uint64{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*[4]uint64, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]*[4]uint64, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new([4]uint64)
					}
					if false {
					} else {
						h.decArray4uint64((*[4]uint64)(yyv1[yyj1]), d)
					}
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]*[4]uint64, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer19780) encMapstringPtrtoTestStrucFlex(v map[string]*TestStrucFlex, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringPtrtoTestStrucFlex(v *map[string]*TestStrucFlex, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 24)
		yyv1 = make(map[string]*TestStrucFlex, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 *TestStrucFlex
	var yymg1, yymdn1, yyms1, yymok1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			yyms1 = true
			if yymg1 {
				yymv1, yymok1 = yyv1[yymk1]
				if yymok1 {
					yyms1 = false
				}
			} else {
				yymv1 = nil
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				if yymv1 == nil {
					yymv1 = new(TestStrucFlex)
				}
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = nil
				}
			} else if yyms1 && yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encMapstringTestStrucFlex(v map[string]TestStrucFlex, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteMapStart(len(v))
	for yyk1, yyv1 := range v {
		r.WriteMapElemKey()
		if false {
		} else {
			if z.EncBasicHandle().StringToRaw {
				r.EncodeStringBytesRaw(z.BytesView(string(yyk1)))
			} else {
				r.EncodeStringEnc(codecSelferCcUTF819780, string(yyk1))
			}
		}
		r.WriteMapElemValue()
		yy3 := &yyv1
		yy3.CodecEncodeSelf(e)
	}
	r.WriteMapEnd()
}

func (x codecSelfer19780) decMapstringTestStrucFlex(v *map[string]TestStrucFlex, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyl1 := r.ReadMapStart()
	yybh1 := z.DecBasicHandle()
	if yyv1 == nil {
		yyrl1 := z.DecInferLen(yyl1, yybh1.MaxInitLen, 1488)
		yyv1 = make(map[string]TestStrucFlex, yyrl1)
		*v = yyv1
	}
	var yymk1 string
	var yymv1 TestStrucFlex
	var yymg1, yymdn1 bool
	if yybh1.MapValueReset {
		yymg1 = true
	}
	if yyl1 != 0 {
		yyhl1 := yyl1 > 0
		for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ {
			r.ReadMapElemKey()
			if r.TryDecodeAsNil() {
				yymk1 = ""
			} else {
				yymk1 = (string)(r.DecodeString())
			}

			if yymg1 {
				yymv1 = yyv1[yymk1]
			} else {
				yymv1 = TestStrucFlex{}
			}
			r.ReadMapElemValue()
			yymdn1 = false
			if r.TryDecodeAsNil() {
				yymdn1 = true
			} else {
				yymv1.CodecDecodeSelf(d)
			}

			if yymdn1 {
				if yybh1.DeleteOnNilMapValue {
					delete(yyv1, yymk1)
				} else {
					yyv1[yymk1] = TestStrucFlex{}
				}
			} else if yyv1 != nil {
				yyv1[yymk1] = yymv1
			}
		}
	} // else len==0: TODO: Should we clear map entries?
	r.ReadMapEnd()
}

func (x codecSelfer19780) encSlicePtrtoTestStrucFlex(v []*TestStrucFlex, e *Encoder) {
	var h codecSelfer19780
	z, r := GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.WriteArrayStart(len(v))
	for _, yyv1 := range v {
		r.WriteArrayElem()
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	r.WriteArrayEnd()
}

func (x codecSelfer19780) decSlicePtrtoTestStrucFlex(v *[]*TestStrucFlex, d *Decoder) {
	var h codecSelfer19780
	z, r := GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*TestStrucFlex{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else {
		yyhl1 := yyl1 > 0
		var yyrl1 int
		_ = yyrl1
		if yyhl1 {
			if yyl1 > cap(yyv1) {
				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*TestStrucFlex, yyrl1)
				}
				yyc1 = true
			} else if yyl1 != len(yyv1) {
				yyv1 = yyv1[:yyl1]
				yyc1 = true
			}
		}
		var yyj1 int
		// var yydn1 bool
		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || r.CheckBreak()); yyj1++ { // bounds-check-elimination
			if yyj1 == 0 && yyv1 == nil {
				if yyhl1 {
					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
				} else {
					yyrl1 = 8
				}
				yyv1 = make([]*TestStrucFlex, yyrl1)
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)

			var yydb1 bool
			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil)
				yyc1 = true

			}
			if yydb1 {
				z.DecSwallow()
			} else {
				if r.TryDecodeAsNil() {
					yyv1[yyj1] = nil
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(TestStrucFlex)
					}
					yyv1[yyj1].CodecDecodeSelf(d)
				}

			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = make([]*TestStrucFlex, 0)
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}
