diff --git a/api/v1alpha1/generated.pb.go b/api/v1alpha1/generated.pb.go index 917102323..3e4a53111 100644 --- a/api/v1alpha1/generated.pb.go +++ b/api/v1alpha1/generated.pb.go @@ -1234,10 +1234,38 @@ func (m *PromotionStep) XXX_DiscardUnknown() { var xxx_messageInfo_PromotionStep proto.InternalMessageInfo +func (m *PromotionStepInput) Reset() { *m = PromotionStepInput{} } +func (*PromotionStepInput) ProtoMessage() {} +func (*PromotionStepInput) Descriptor() ([]byte, []int) { + return fileDescriptor_e26b7f7bbc391025, []int{43} +} +func (m *PromotionStepInput) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PromotionStepInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PromotionStepInput) XXX_Merge(src proto.Message) { + xxx_messageInfo_PromotionStepInput.Merge(m, src) +} +func (m *PromotionStepInput) XXX_Size() int { + return m.Size() +} +func (m *PromotionStepInput) XXX_DiscardUnknown() { + xxx_messageInfo_PromotionStepInput.DiscardUnknown(m) +} + +var xxx_messageInfo_PromotionStepInput proto.InternalMessageInfo + func (m *PromotionStepRetry) Reset() { *m = PromotionStepRetry{} } func (*PromotionStepRetry) ProtoMessage() {} func (*PromotionStepRetry) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{43} + return fileDescriptor_e26b7f7bbc391025, []int{44} } func (m *PromotionStepRetry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1265,7 +1293,7 @@ var xxx_messageInfo_PromotionStepRetry proto.InternalMessageInfo func (m *PromotionTask) Reset() { *m = PromotionTask{} } func (*PromotionTask) ProtoMessage() {} func (*PromotionTask) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{44} + return fileDescriptor_e26b7f7bbc391025, []int{45} } func (m *PromotionTask) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1293,7 +1321,7 @@ var xxx_messageInfo_PromotionTask proto.InternalMessageInfo func (m *PromotionTaskInput) Reset() { *m = PromotionTaskInput{} } func (*PromotionTaskInput) ProtoMessage() {} func (*PromotionTaskInput) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{45} + return fileDescriptor_e26b7f7bbc391025, []int{46} } func (m *PromotionTaskInput) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1321,7 +1349,7 @@ var xxx_messageInfo_PromotionTaskInput proto.InternalMessageInfo func (m *PromotionTaskList) Reset() { *m = PromotionTaskList{} } func (*PromotionTaskList) ProtoMessage() {} func (*PromotionTaskList) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{46} + return fileDescriptor_e26b7f7bbc391025, []int{47} } func (m *PromotionTaskList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1349,7 +1377,7 @@ var xxx_messageInfo_PromotionTaskList proto.InternalMessageInfo func (m *PromotionTaskReference) Reset() { *m = PromotionTaskReference{} } func (*PromotionTaskReference) ProtoMessage() {} func (*PromotionTaskReference) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{47} + return fileDescriptor_e26b7f7bbc391025, []int{48} } func (m *PromotionTaskReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1377,7 +1405,7 @@ var xxx_messageInfo_PromotionTaskReference proto.InternalMessageInfo func (m *PromotionTaskSpec) Reset() { *m = PromotionTaskSpec{} } func (*PromotionTaskSpec) ProtoMessage() {} func (*PromotionTaskSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{48} + return fileDescriptor_e26b7f7bbc391025, []int{49} } func (m *PromotionTaskSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1405,7 +1433,7 @@ var xxx_messageInfo_PromotionTaskSpec proto.InternalMessageInfo func (m *PromotionTemplate) Reset() { *m = PromotionTemplate{} } func (*PromotionTemplate) ProtoMessage() {} func (*PromotionTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{49} + return fileDescriptor_e26b7f7bbc391025, []int{50} } func (m *PromotionTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1433,7 +1461,7 @@ var xxx_messageInfo_PromotionTemplate proto.InternalMessageInfo func (m *PromotionTemplateSpec) Reset() { *m = PromotionTemplateSpec{} } func (*PromotionTemplateSpec) ProtoMessage() {} func (*PromotionTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{50} + return fileDescriptor_e26b7f7bbc391025, []int{51} } func (m *PromotionTemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1461,7 +1489,7 @@ var xxx_messageInfo_PromotionTemplateSpec proto.InternalMessageInfo func (m *PromotionVariable) Reset() { *m = PromotionVariable{} } func (*PromotionVariable) ProtoMessage() {} func (*PromotionVariable) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{51} + return fileDescriptor_e26b7f7bbc391025, []int{52} } func (m *PromotionVariable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1489,7 +1517,7 @@ var xxx_messageInfo_PromotionVariable proto.InternalMessageInfo func (m *RepoSubscription) Reset() { *m = RepoSubscription{} } func (*RepoSubscription) ProtoMessage() {} func (*RepoSubscription) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{52} + return fileDescriptor_e26b7f7bbc391025, []int{53} } func (m *RepoSubscription) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1517,7 +1545,7 @@ var xxx_messageInfo_RepoSubscription proto.InternalMessageInfo func (m *Stage) Reset() { *m = Stage{} } func (*Stage) ProtoMessage() {} func (*Stage) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{53} + return fileDescriptor_e26b7f7bbc391025, []int{54} } func (m *Stage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1545,7 +1573,7 @@ var xxx_messageInfo_Stage proto.InternalMessageInfo func (m *StageList) Reset() { *m = StageList{} } func (*StageList) ProtoMessage() {} func (*StageList) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{54} + return fileDescriptor_e26b7f7bbc391025, []int{55} } func (m *StageList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1573,7 +1601,7 @@ var xxx_messageInfo_StageList proto.InternalMessageInfo func (m *StageSpec) Reset() { *m = StageSpec{} } func (*StageSpec) ProtoMessage() {} func (*StageSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{55} + return fileDescriptor_e26b7f7bbc391025, []int{56} } func (m *StageSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1601,7 +1629,7 @@ var xxx_messageInfo_StageSpec proto.InternalMessageInfo func (m *StageStatus) Reset() { *m = StageStatus{} } func (*StageStatus) ProtoMessage() {} func (*StageStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{56} + return fileDescriptor_e26b7f7bbc391025, []int{57} } func (m *StageStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1629,7 +1657,7 @@ var xxx_messageInfo_StageStatus proto.InternalMessageInfo func (m *StepExecutionMetadata) Reset() { *m = StepExecutionMetadata{} } func (*StepExecutionMetadata) ProtoMessage() {} func (*StepExecutionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{57} + return fileDescriptor_e26b7f7bbc391025, []int{58} } func (m *StepExecutionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1657,7 +1685,7 @@ var xxx_messageInfo_StepExecutionMetadata proto.InternalMessageInfo func (m *Verification) Reset() { *m = Verification{} } func (*Verification) ProtoMessage() {} func (*Verification) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{58} + return fileDescriptor_e26b7f7bbc391025, []int{59} } func (m *Verification) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1685,7 +1713,7 @@ var xxx_messageInfo_Verification proto.InternalMessageInfo func (m *VerificationInfo) Reset() { *m = VerificationInfo{} } func (*VerificationInfo) ProtoMessage() {} func (*VerificationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{59} + return fileDescriptor_e26b7f7bbc391025, []int{60} } func (m *VerificationInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1713,7 +1741,7 @@ var xxx_messageInfo_VerificationInfo proto.InternalMessageInfo func (m *VerifiedStage) Reset() { *m = VerifiedStage{} } func (*VerifiedStage) ProtoMessage() {} func (*VerifiedStage) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{60} + return fileDescriptor_e26b7f7bbc391025, []int{61} } func (m *VerifiedStage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1741,7 +1769,7 @@ var xxx_messageInfo_VerifiedStage proto.InternalMessageInfo func (m *Warehouse) Reset() { *m = Warehouse{} } func (*Warehouse) ProtoMessage() {} func (*Warehouse) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{61} + return fileDescriptor_e26b7f7bbc391025, []int{62} } func (m *Warehouse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1769,7 +1797,7 @@ var xxx_messageInfo_Warehouse proto.InternalMessageInfo func (m *WarehouseList) Reset() { *m = WarehouseList{} } func (*WarehouseList) ProtoMessage() {} func (*WarehouseList) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{62} + return fileDescriptor_e26b7f7bbc391025, []int{63} } func (m *WarehouseList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1797,7 +1825,7 @@ var xxx_messageInfo_WarehouseList proto.InternalMessageInfo func (m *WarehouseSpec) Reset() { *m = WarehouseSpec{} } func (*WarehouseSpec) ProtoMessage() {} func (*WarehouseSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{63} + return fileDescriptor_e26b7f7bbc391025, []int{64} } func (m *WarehouseSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1825,7 +1853,7 @@ var xxx_messageInfo_WarehouseSpec proto.InternalMessageInfo func (m *WarehouseStatus) Reset() { *m = WarehouseStatus{} } func (*WarehouseStatus) ProtoMessage() {} func (*WarehouseStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e26b7f7bbc391025, []int{64} + return fileDescriptor_e26b7f7bbc391025, []int{65} } func (m *WarehouseStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1899,7 +1927,7 @@ func init() { proto.RegisterType((*PromotionSpec)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionSpec") proto.RegisterType((*PromotionStatus)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionStatus") proto.RegisterType((*PromotionStep)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionStep") - proto.RegisterMapType((map[string]string)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionStep.InputsEntry") + proto.RegisterType((*PromotionStepInput)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionStepInput") proto.RegisterType((*PromotionStepRetry)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionStepRetry") proto.RegisterType((*PromotionTask)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionTask") proto.RegisterType((*PromotionTaskInput)(nil), "github.com.akuity.kargo.api.v1alpha1.PromotionTaskInput") @@ -1929,258 +1957,257 @@ func init() { } var fileDescriptor_e26b7f7bbc391025 = []byte{ - // 4007 bytes of a gzipped FileDescriptorProto + // 3999 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5c, 0xcd, 0x6f, 0x1c, 0x47, 0x76, 0x57, 0xcf, 0x90, 0x43, 0xce, 0x1b, 0x52, 0x24, 0x4b, 0x94, 0xcd, 0xe5, 0xc6, 0xa4, 0xd2, - 0x36, 0x0c, 0x3b, 0xb6, 0x87, 0x11, 0x6d, 0xd9, 0x92, 0xbc, 0xd1, 0x82, 0x43, 0x4a, 0x32, 0x15, - 0xae, 0xc5, 0xd4, 0xd0, 0xf2, 0x5a, 0x2b, 0xc3, 0x5b, 0x9c, 0x29, 0xce, 0x74, 0x38, 0x33, 0x3d, - 0x5b, 0x55, 0xc3, 0x35, 0x93, 0x20, 0xd9, 0x7c, 0x01, 0x8b, 0x7c, 0x61, 0x0f, 0x06, 0xbc, 0x01, - 0x12, 0x20, 0x48, 0x8e, 0x8b, 0xe4, 0x1f, 0xc8, 0xc1, 0x87, 0x5c, 0x8c, 0xc0, 0x48, 0x8c, 0x24, - 0x07, 0x1f, 0x36, 0x44, 0xcc, 0x05, 0x72, 0xdc, 0x5b, 0x2e, 0x02, 0x02, 0x04, 0xf5, 0xd1, 0xdd, - 0xd5, 0x3d, 0x3d, 0xe2, 0xf4, 0x88, 0x14, 0x9c, 0xbd, 0x71, 0xea, 0xd5, 0xfb, 0xbd, 0xaa, 0x57, - 0x55, 0xaf, 0xde, 0x7b, 0xf5, 0x9a, 0xf0, 0x5a, 0xc3, 0x13, 0xcd, 0xde, 0x6e, 0xb9, 0xe6, 0xb7, - 0x57, 0xc8, 0x7e, 0xcf, 0x13, 0x87, 0x2b, 0xfb, 0x84, 0x35, 0xfc, 0x15, 0xd2, 0xf5, 0x56, 0x0e, - 0x2e, 0x93, 0x56, 0xb7, 0x49, 0x2e, 0xaf, 0x34, 0x68, 0x87, 0x32, 0x22, 0x68, 0xbd, 0xdc, 0x65, - 0xbe, 0xf0, 0xd1, 0x73, 0x11, 0x57, 0x59, 0x73, 0x95, 0x15, 0x57, 0x99, 0x74, 0xbd, 0x72, 0xc0, - 0xb5, 0xf8, 0x8a, 0x85, 0xdd, 0xf0, 0x1b, 0xfe, 0x8a, 0x62, 0xde, 0xed, 0xed, 0xa9, 0x5f, 0xea, - 0x87, 0xfa, 0x4b, 0x83, 0x2e, 0xbe, 0xb5, 0x7f, 0x95, 0x97, 0x3d, 0x25, 0x99, 0x7e, 0x28, 0x68, - 0x87, 0x7b, 0x7e, 0x87, 0xbf, 0x42, 0xba, 0x1e, 0xa7, 0xec, 0x80, 0xb2, 0x95, 0xee, 0x7e, 0x43, - 0xd2, 0x78, 0xbc, 0xc3, 0xca, 0x41, 0xdf, 0xf0, 0x16, 0x5f, 0x8b, 0x90, 0xda, 0xa4, 0xd6, 0xf4, - 0x3a, 0x94, 0x1d, 0x46, 0xec, 0x6d, 0x2a, 0x48, 0x1a, 0xd7, 0xca, 0x20, 0x2e, 0xd6, 0xeb, 0x08, - 0xaf, 0x4d, 0xfb, 0x18, 0x5e, 0x3f, 0x89, 0x81, 0xd7, 0x9a, 0xb4, 0x4d, 0x92, 0x7c, 0xee, 0x03, - 0xb8, 0xb0, 0xd6, 0x21, 0xad, 0x43, 0xee, 0x71, 0xdc, 0xeb, 0xac, 0xb1, 0x46, 0xaf, 0x4d, 0x3b, - 0x02, 0x5d, 0x82, 0xb1, 0x0e, 0x69, 0xd3, 0x05, 0xe7, 0x92, 0xf3, 0x42, 0xb1, 0x32, 0xf5, 0xe9, - 0xd1, 0xf2, 0xb9, 0xe3, 0xa3, 0xe5, 0xb1, 0xb7, 0x49, 0x9b, 0x62, 0x45, 0x41, 0xcf, 0xc2, 0xf8, - 0x01, 0x69, 0xf5, 0xe8, 0x42, 0x4e, 0x75, 0x99, 0x36, 0x5d, 0xc6, 0xef, 0xc9, 0x46, 0xac, 0x69, - 0xee, 0x1f, 0xe6, 0x63, 0xf0, 0xdf, 0xa2, 0x82, 0xd4, 0x89, 0x20, 0xa8, 0x0d, 0x85, 0x16, 0xd9, - 0xa5, 0x2d, 0xbe, 0xe0, 0x5c, 0xca, 0xbf, 0x50, 0x5a, 0xbd, 0x59, 0x1e, 0x66, 0x11, 0xcb, 0x29, - 0x50, 0xe5, 0x2d, 0x85, 0x73, 0xb3, 0x23, 0xd8, 0x61, 0xe5, 0xbc, 0x19, 0x44, 0x41, 0x37, 0x62, - 0x23, 0x04, 0xfd, 0xbe, 0x03, 0x25, 0xd2, 0xe9, 0xf8, 0x82, 0x08, 0xb9, 0x4c, 0x0b, 0x39, 0x25, - 0xf4, 0xce, 0xe8, 0x42, 0xd7, 0x22, 0x30, 0x2d, 0xf9, 0x82, 0x91, 0x5c, 0xb2, 0x28, 0xd8, 0x96, - 0xb9, 0x78, 0x0d, 0x4a, 0xd6, 0x50, 0xd1, 0x2c, 0xe4, 0xf7, 0xe9, 0xa1, 0xd6, 0x2f, 0x96, 0x7f, - 0xa2, 0xf9, 0x98, 0x42, 0x8d, 0x06, 0xaf, 0xe7, 0xae, 0x3a, 0x8b, 0x37, 0x60, 0x36, 0x29, 0x30, - 0x0b, 0xbf, 0xfb, 0x17, 0x0e, 0xcc, 0x5b, 0xb3, 0xc0, 0x74, 0x8f, 0x32, 0xda, 0xa9, 0x51, 0xb4, - 0x02, 0x45, 0xb9, 0x96, 0xbc, 0x4b, 0x6a, 0xc1, 0x52, 0xcf, 0x99, 0x89, 0x14, 0xdf, 0x0e, 0x08, - 0x38, 0xea, 0x13, 0x6e, 0x8b, 0xdc, 0xa3, 0xb6, 0x45, 0xb7, 0x49, 0x38, 0x5d, 0xc8, 0xc7, 0xb7, - 0xc5, 0xb6, 0x6c, 0xc4, 0x9a, 0xe6, 0xfe, 0x1a, 0x7c, 0x2d, 0x18, 0xcf, 0x0e, 0x6d, 0x77, 0x5b, - 0x44, 0xd0, 0x68, 0x50, 0x27, 0x6e, 0x3d, 0x77, 0x1f, 0xa6, 0xd7, 0xba, 0x5d, 0xe6, 0x1f, 0xd0, - 0x7a, 0x55, 0x90, 0x06, 0x45, 0xf7, 0x01, 0x88, 0x69, 0x58, 0x13, 0x8a, 0xb1, 0xb4, 0xfa, 0x2b, - 0x65, 0x7d, 0x22, 0xca, 0xf6, 0x89, 0x28, 0x77, 0xf7, 0x1b, 0xb2, 0x81, 0x97, 0xe5, 0xc1, 0x2b, - 0x1f, 0x5c, 0x2e, 0xef, 0x78, 0x6d, 0x5a, 0x39, 0x7f, 0x7c, 0xb4, 0x0c, 0x6b, 0x21, 0x02, 0xb6, - 0xd0, 0xdc, 0x3f, 0x70, 0xe0, 0xe2, 0x1a, 0x6b, 0xf8, 0xeb, 0x1b, 0x6b, 0xdd, 0xee, 0x5b, 0x94, - 0xb4, 0x44, 0xb3, 0x2a, 0x88, 0xe8, 0x71, 0x74, 0x03, 0x0a, 0x5c, 0xfd, 0x65, 0x86, 0xfa, 0x7c, - 0xb0, 0xfb, 0x34, 0xfd, 0xe1, 0xd1, 0xf2, 0x7c, 0x0a, 0x23, 0xc5, 0x86, 0x0b, 0xbd, 0x08, 0x13, - 0x6d, 0xca, 0x39, 0x69, 0x04, 0xfa, 0x9c, 0x31, 0x00, 0x13, 0xdf, 0xd2, 0xcd, 0x38, 0xa0, 0xbb, - 0xff, 0x9c, 0x83, 0x99, 0x10, 0xcb, 0x88, 0x3f, 0x83, 0xc5, 0xeb, 0xc1, 0x54, 0xd3, 0x9a, 0xa1, - 0x5a, 0xc3, 0xd2, 0xea, 0x9b, 0x43, 0x9e, 0x93, 0x34, 0x25, 0x55, 0xe6, 0x8d, 0x98, 0x29, 0xbb, - 0x15, 0xc7, 0xc4, 0xa0, 0x36, 0x00, 0x3f, 0xec, 0xd4, 0x8c, 0xd0, 0x31, 0x25, 0xf4, 0x5a, 0x46, - 0xa1, 0xd5, 0x10, 0xa0, 0x82, 0x8c, 0x48, 0x88, 0xda, 0xb0, 0x25, 0xc0, 0xfd, 0x07, 0x07, 0x2e, - 0xa4, 0xf0, 0xa1, 0x6f, 0x24, 0xd6, 0xf3, 0xb9, 0xbe, 0xf5, 0x44, 0x7d, 0x6c, 0xd1, 0x6a, 0xbe, - 0x0c, 0x93, 0x8c, 0x1e, 0x78, 0xf2, 0x1e, 0x30, 0x1a, 0x9e, 0x35, 0xfc, 0x93, 0xd8, 0xb4, 0xe3, - 0xb0, 0x07, 0x7a, 0x09, 0x8a, 0xc1, 0xdf, 0x52, 0xcd, 0x79, 0x79, 0x54, 0xe4, 0xc2, 0x05, 0x5d, - 0x39, 0x8e, 0xe8, 0xee, 0xef, 0xc1, 0xf8, 0x7a, 0x93, 0x30, 0x21, 0x77, 0x0c, 0xa3, 0x5d, 0xff, - 0x1d, 0xbc, 0x65, 0x86, 0x18, 0xee, 0x18, 0xac, 0x9b, 0x71, 0x40, 0x1f, 0x62, 0xb1, 0x5f, 0x84, - 0x89, 0x03, 0xca, 0xd4, 0x78, 0xf3, 0x71, 0xb0, 0x7b, 0xba, 0x19, 0x07, 0x74, 0xf7, 0xdf, 0x1d, - 0x98, 0x57, 0x23, 0xd8, 0xf0, 0x78, 0xcd, 0x3f, 0xa0, 0xec, 0x10, 0x53, 0xde, 0x6b, 0x9d, 0xf2, - 0x80, 0x36, 0x60, 0x96, 0xd3, 0xf6, 0x01, 0x65, 0xeb, 0x7e, 0x87, 0x0b, 0x46, 0xbc, 0x8e, 0x30, - 0x23, 0x5b, 0x30, 0xbd, 0x67, 0xab, 0x09, 0x3a, 0xee, 0xe3, 0x40, 0x2f, 0xc0, 0xa4, 0x19, 0xb6, - 0xdc, 0x4a, 0x52, 0xb1, 0x53, 0x72, 0x0d, 0xcc, 0x9c, 0x38, 0x0e, 0xa9, 0xee, 0x7f, 0x3b, 0x30, - 0xa7, 0x66, 0x55, 0xed, 0xed, 0xf2, 0x1a, 0xf3, 0xba, 0xd2, 0xbc, 0x7e, 0x15, 0xa7, 0x74, 0x03, - 0xce, 0xd7, 0x03, 0xc5, 0x6f, 0x79, 0x6d, 0x4f, 0xa8, 0x33, 0x32, 0x5e, 0x79, 0xca, 0x60, 0x9c, - 0xdf, 0x88, 0x51, 0x71, 0xa2, 0xb7, 0x5e, 0xbe, 0x56, 0x8f, 0x0b, 0xca, 0xb6, 0x99, 0xdf, 0xf6, - 0xe5, 0x3c, 0x77, 0x08, 0xdf, 0x47, 0xdf, 0x85, 0xc9, 0xb6, 0xb9, 0xd2, 0x8c, 0xd5, 0xfc, 0xd5, - 0xe1, 0xac, 0xe6, 0xdd, 0xdd, 0xdf, 0xa4, 0x35, 0x21, 0xaf, 0xc3, 0xe8, 0xb4, 0x45, 0x6d, 0x38, - 0x44, 0x45, 0xef, 0xc1, 0x18, 0xef, 0xd2, 0x9a, 0x52, 0x51, 0x69, 0xf5, 0x8d, 0xe1, 0x0e, 0x75, - 0x6c, 0x90, 0xd5, 0x2e, 0xad, 0x45, 0xba, 0x95, 0xbf, 0xb0, 0x82, 0x74, 0xff, 0xd3, 0x81, 0x85, - 0xb4, 0x59, 0x6d, 0x79, 0x5c, 0xa0, 0x07, 0x7d, 0x33, 0x2b, 0x0f, 0x37, 0x33, 0xc9, 0xad, 0xe6, - 0x15, 0x9e, 0xde, 0xa0, 0xc5, 0x9a, 0x55, 0x0d, 0xc6, 0x3d, 0x41, 0xdb, 0x81, 0x23, 0x71, 0x63, - 0xb8, 0x69, 0x0d, 0x1a, 0x6c, 0x74, 0x49, 0x6e, 0x4a, 0x50, 0xac, 0xb1, 0xdd, 0xbf, 0xca, 0xc3, - 0x85, 0x60, 0x61, 0x69, 0x7d, 0x8d, 0x09, 0x6f, 0x8f, 0xd4, 0x04, 0x47, 0x75, 0x98, 0xaa, 0x47, - 0xcd, 0xc2, 0xd8, 0xcb, 0x2c, 0xd7, 0x5d, 0x68, 0x93, 0x2d, 0x78, 0x81, 0x63, 0xa8, 0xe8, 0x5d, - 0xc8, 0x37, 0x3c, 0x61, 0xdc, 0xb3, 0xab, 0xc3, 0x4d, 0xf0, 0xb6, 0x97, 0x34, 0x10, 0x95, 0x92, - 0x11, 0x95, 0xbf, 0xed, 0x09, 0x2c, 0x11, 0xd1, 0x2e, 0x14, 0xbc, 0x36, 0x69, 0xd0, 0x40, 0x79, - 0xd7, 0x87, 0xc3, 0xde, 0x94, 0x3c, 0x49, 0xf4, 0xd0, 0xdf, 0x53, 0x54, 0x8e, 0x0d, 0xb2, 0x94, - 0x51, 0x93, 0x07, 0x5b, 0x9b, 0xd6, 0xa1, 0x65, 0xa4, 0x99, 0xb8, 0x48, 0x86, 0xa2, 0x72, 0x6c, - 0x90, 0xdd, 0x2f, 0x72, 0x30, 0x1b, 0xe9, 0x6f, 0xdd, 0x6f, 0xb7, 0x3d, 0x81, 0x16, 0x21, 0xe7, - 0xd5, 0x8d, 0xdd, 0x00, 0xc3, 0x98, 0xdb, 0xdc, 0xc0, 0x39, 0xaf, 0x8e, 0x9e, 0x87, 0xc2, 0x2e, - 0x23, 0x9d, 0x5a, 0xd3, 0xd8, 0x8b, 0x10, 0xb8, 0xa2, 0x5a, 0xb1, 0xa1, 0xa2, 0x67, 0x20, 0x2f, - 0x48, 0xc3, 0x98, 0x89, 0x50, 0x7f, 0x3b, 0xa4, 0x81, 0x65, 0xbb, 0xb4, 0x4f, 0xbc, 0xa7, 0x8e, - 0x9a, 0x5a, 0x79, 0xcb, 0x3e, 0x55, 0x75, 0x33, 0x0e, 0xe8, 0x52, 0x22, 0xe9, 0x89, 0xa6, 0xcf, - 0x16, 0xc6, 0xe3, 0x12, 0xd7, 0x54, 0x2b, 0x36, 0x54, 0xe9, 0x49, 0xd4, 0xd4, 0xf8, 0x05, 0x65, - 0x0b, 0x85, 0xb8, 0x27, 0xb1, 0x1e, 0x10, 0x70, 0xd4, 0x07, 0xbd, 0x0f, 0xa5, 0x1a, 0xa3, 0x44, - 0xf8, 0x6c, 0x83, 0x08, 0xba, 0x30, 0x91, 0x79, 0x07, 0xce, 0x48, 0x57, 0x79, 0x3d, 0x82, 0xc0, - 0x36, 0x9e, 0xfb, 0x73, 0x07, 0x16, 0x22, 0xd5, 0xaa, 0xb5, 0x8d, 0xdc, 0x43, 0xa3, 0x1e, 0x67, - 0x80, 0x7a, 0x9e, 0x87, 0x42, 0xdd, 0x6b, 0x50, 0x2e, 0x92, 0x5a, 0xde, 0x50, 0xad, 0xd8, 0x50, - 0xd1, 0x2a, 0x40, 0xc3, 0x13, 0xc6, 0xa4, 0x1b, 0x65, 0x87, 0xa6, 0xec, 0x76, 0x48, 0xc1, 0x56, - 0x2f, 0xf4, 0x2e, 0x14, 0xd5, 0x30, 0x47, 0x3c, 0x76, 0xea, 0x82, 0x5f, 0x0f, 0x00, 0x70, 0x84, - 0xe5, 0x7e, 0x3e, 0x06, 0x13, 0xb7, 0x18, 0xf5, 0x1a, 0x4d, 0xf1, 0x04, 0x6c, 0xf2, 0xb3, 0x30, - 0x4e, 0x5a, 0x1e, 0xe1, 0x6a, 0xdd, 0x2c, 0x17, 0x7d, 0x4d, 0x36, 0x62, 0x4d, 0x43, 0xdf, 0x81, - 0x82, 0xcf, 0xbc, 0x86, 0xd7, 0x59, 0x28, 0xaa, 0x41, 0xbc, 0x3a, 0xdc, 0x11, 0x32, 0xb3, 0xb8, - 0xab, 0x58, 0x23, 0xe5, 0xeb, 0xdf, 0xd8, 0x40, 0xa2, 0xfb, 0x30, 0xa1, 0x37, 0x53, 0x70, 0x40, - 0x57, 0x86, 0x36, 0x30, 0x7a, 0x3f, 0x46, 0x9b, 0x5e, 0xff, 0xe6, 0x38, 0x00, 0x44, 0xd5, 0xd0, - 0xbe, 0x8c, 0x29, 0xe8, 0x97, 0x32, 0xd8, 0x97, 0x81, 0x06, 0xa5, 0x1a, 0x1a, 0x94, 0xf1, 0x2c, - 0xa0, 0xca, 0x64, 0x0c, 0xb2, 0x20, 0x52, 0xc5, 0xc6, 0xdf, 0x2c, 0x8c, 0xa0, 0x62, 0xe3, 0xec, - 0x9e, 0x8f, 0x3b, 0xa9, 0x81, 0x3b, 0xea, 0x7e, 0x94, 0x87, 0x39, 0xd3, 0x73, 0xdd, 0x6f, 0xb5, - 0x68, 0x4d, 0x39, 0x37, 0xda, 0x3e, 0xe5, 0x53, 0xed, 0x93, 0x17, 0x5c, 0x6a, 0xda, 0xe6, 0x57, - 0x32, 0x8d, 0x26, 0x92, 0x51, 0x56, 0x97, 0x98, 0x8e, 0x8a, 0xc3, 0x55, 0x32, 0xbd, 0xcc, 0xd5, - 0x86, 0xfe, 0xd8, 0x81, 0x0b, 0x07, 0x94, 0x79, 0x7b, 0x5e, 0x4d, 0xc5, 0xb4, 0x6f, 0x79, 0x5c, - 0xf8, 0xec, 0xd0, 0xdc, 0x08, 0xaf, 0x0f, 0x27, 0xf9, 0x9e, 0x05, 0xb0, 0xd9, 0xd9, 0xf3, 0x2b, - 0x5f, 0x37, 0xd2, 0x2e, 0xdc, 0xeb, 0x87, 0xc6, 0x69, 0xf2, 0x16, 0xbb, 0x00, 0xd1, 0x68, 0x53, - 0x42, 0xea, 0x2d, 0x3b, 0xa4, 0x1e, 0x7a, 0x60, 0xc1, 0x64, 0x03, 0x93, 0x65, 0x87, 0xe2, 0x9f, - 0x38, 0x50, 0x32, 0xf4, 0x27, 0xe0, 0xa7, 0xe0, 0xb8, 0x9f, 0xf2, 0x4a, 0xa6, 0xf1, 0x0f, 0x70, - 0x4b, 0x18, 0x4c, 0xc7, 0x0e, 0x39, 0xba, 0x02, 0x63, 0xfb, 0x5e, 0x27, 0xb8, 0xf5, 0x7e, 0x39, - 0xf0, 0xd4, 0x7e, 0xdd, 0xeb, 0xd4, 0x1f, 0x1e, 0x2d, 0xcf, 0xc5, 0x3a, 0xcb, 0x46, 0xac, 0xba, - 0x9f, 0xec, 0x3c, 0x5f, 0x9f, 0xfc, 0xf1, 0xdf, 0x2c, 0x9f, 0xfb, 0xc1, 0x4f, 0x2f, 0x9d, 0x73, - 0x3f, 0xce, 0xc3, 0x6c, 0x52, 0xab, 0x43, 0xa4, 0xa8, 0x22, 0x1b, 0x36, 0x79, 0xa6, 0x36, 0x2c, - 0x77, 0x76, 0x36, 0x2c, 0x7f, 0x16, 0x36, 0x6c, 0xec, 0xd4, 0x6c, 0x98, 0xfb, 0x2f, 0x0e, 0x9c, - 0x0f, 0x57, 0xe6, 0x7b, 0x3d, 0x79, 0xb3, 0x46, 0x5a, 0x77, 0x4e, 0x5f, 0xeb, 0x1f, 0xc0, 0x04, - 0xf7, 0x7b, 0xac, 0xa6, 0xdc, 0x47, 0x89, 0xfe, 0x5a, 0x36, 0xa3, 0xa9, 0x79, 0x2d, 0x9f, 0x49, - 0x37, 0xe0, 0x00, 0xd5, 0x7d, 0x10, 0xce, 0xc7, 0x90, 0xb4, 0x47, 0xc1, 0xa4, 0xbf, 0x25, 0xe7, - 0x33, 0x69, 0x7b, 0x14, 0xb2, 0x15, 0x1b, 0x2a, 0x72, 0x95, 0x39, 0x0f, 0x1c, 0xdb, 0x62, 0x05, - 0x8c, 0x55, 0x56, 0x6b, 0xa0, 0x29, 0xee, 0xcf, 0xf3, 0xe1, 0xe9, 0x31, 0x49, 0x87, 0xef, 0x03, - 0x68, 0xcb, 0x44, 0xeb, 0x9b, 0x1d, 0x63, 0x7a, 0xd7, 0x47, 0xb8, 0x08, 0x8c, 0x39, 0x94, 0x28, - 0xda, 0xf6, 0x86, 0x3e, 0x40, 0x44, 0xc0, 0x96, 0x28, 0xf4, 0xdb, 0x50, 0x0a, 0xb2, 0x5c, 0xb7, - 0x7c, 0x66, 0xf6, 0xf0, 0xc6, 0x28, 0x92, 0xd7, 0x22, 0x98, 0x64, 0x32, 0x34, 0xa2, 0x60, 0x5b, - 0xda, 0x22, 0x83, 0x99, 0xc4, 0x78, 0x53, 0xac, 0xef, 0x66, 0xdc, 0xfa, 0xbe, 0x9a, 0xe5, 0x5a, - 0x30, 0x99, 0x41, 0x3b, 0x8b, 0xca, 0x61, 0x36, 0x39, 0xd2, 0x53, 0x13, 0x1a, 0x4b, 0x47, 0xda, - 0xf6, 0xfe, 0xaf, 0x73, 0x50, 0x0c, 0x4f, 0x7c, 0x96, 0xdc, 0x82, 0xbe, 0xa9, 0x73, 0x27, 0x44, - 0x12, 0xf9, 0x61, 0x22, 0x89, 0xb1, 0xc1, 0x91, 0x44, 0x90, 0x7f, 0x2c, 0x3c, 0x3a, 0xff, 0x68, - 0x45, 0x12, 0x13, 0xc3, 0x47, 0x12, 0x93, 0x27, 0x47, 0x12, 0xee, 0xdf, 0x3a, 0x80, 0xfa, 0xc3, - 0xc6, 0x2c, 0x8a, 0x22, 0x49, 0x3b, 0x3c, 0xe4, 0x2d, 0x9d, 0x8c, 0xdd, 0x06, 0x9b, 0x63, 0xf7, - 0x93, 0x71, 0x98, 0xb9, 0xed, 0x8d, 0x9c, 0x26, 0x12, 0xf0, 0xb4, 0x46, 0xaa, 0x52, 0xe3, 0x23, - 0x55, 0x05, 0x23, 0x82, 0x36, 0x0e, 0xcd, 0xfa, 0x5e, 0x37, 0xac, 0x4f, 0xaf, 0xa7, 0x77, 0x7b, - 0x38, 0x98, 0x84, 0x07, 0x41, 0x0f, 0xbd, 0x49, 0xde, 0x84, 0x69, 0x2e, 0x98, 0x57, 0x13, 0x3a, - 0x11, 0xc5, 0x17, 0x4a, 0xca, 0xca, 0x5d, 0x34, 0xdd, 0xa7, 0xab, 0x36, 0x11, 0xc7, 0xfb, 0xa6, - 0xe6, 0xb7, 0xc6, 0x32, 0xe7, 0xb7, 0x56, 0xa0, 0x48, 0x5a, 0x2d, 0xff, 0xfb, 0x3b, 0xa4, 0xc1, - 0x4d, 0xa8, 0x1a, 0xee, 0x9a, 0xb5, 0x80, 0x80, 0xa3, 0x3e, 0xa8, 0x0c, 0xe0, 0x35, 0x3a, 0x3e, - 0xa3, 0x8a, 0xa3, 0xa0, 0xcc, 0xad, 0xca, 0xe1, 0x6f, 0x86, 0xad, 0xd8, 0xea, 0x81, 0xaa, 0x70, - 0xd1, 0xeb, 0x70, 0x5a, 0xeb, 0x31, 0x5a, 0xdd, 0xf7, 0xba, 0x3b, 0x5b, 0x55, 0x65, 0x25, 0x0e, - 0xd5, 0x6e, 0x9e, 0xac, 0x3c, 0x63, 0x84, 0x5d, 0xdc, 0x4c, 0xeb, 0x84, 0xd3, 0x79, 0xd1, 0x6b, - 0x30, 0xe5, 0x75, 0x6a, 0xad, 0x5e, 0x9d, 0x6e, 0x13, 0xd1, 0xe4, 0x0b, 0x93, 0x6a, 0x18, 0xb3, - 0xc7, 0x47, 0xcb, 0x53, 0x9b, 0x56, 0x3b, 0x8e, 0xf5, 0x92, 0x5c, 0xf4, 0x43, 0x8b, 0xab, 0x18, - 0x71, 0xdd, 0xfc, 0xd0, 0xe6, 0xb2, 0x7b, 0xa5, 0x64, 0x00, 0x21, 0x53, 0x06, 0xf0, 0x27, 0x39, - 0x28, 0xe8, 0x04, 0x3c, 0xba, 0x92, 0xc8, 0x72, 0x3f, 0xd3, 0x97, 0xe5, 0x2e, 0xa5, 0x3d, 0x56, - 0xb8, 0x50, 0xf0, 0x38, 0xef, 0xc5, 0x6f, 0xb7, 0x4d, 0xd5, 0x82, 0x0d, 0x45, 0xa5, 0x5d, 0xfc, - 0xce, 0x9e, 0xd7, 0x30, 0xc1, 0xf1, 0x0d, 0xcb, 0x95, 0x8d, 0x1e, 0x49, 0x3f, 0x08, 0x5f, 0x51, - 0x23, 0xaf, 0x36, 0xd6, 0x41, 0xba, 0xb7, 0x77, 0xaa, 0x77, 0xdf, 0xd6, 0x32, 0xd6, 0x15, 0x22, - 0x36, 0xc8, 0x52, 0x86, 0xdf, 0x13, 0xdd, 0x9e, 0x50, 0x1b, 0xe5, 0x94, 0x64, 0xdc, 0x55, 0x88, - 0xd8, 0x20, 0xbb, 0x1f, 0x3b, 0x30, 0xa3, 0x75, 0xb0, 0xde, 0xa4, 0xb5, 0xfd, 0xaa, 0xa0, 0x5d, - 0xe9, 0x6d, 0xf6, 0x38, 0xe5, 0x49, 0x6f, 0xf3, 0x1d, 0x4e, 0x39, 0x56, 0x14, 0x6b, 0xf6, 0xb9, - 0xb3, 0x9a, 0xbd, 0xfb, 0xf7, 0x0e, 0x8c, 0x2b, 0xb7, 0x2e, 0x8b, 0xfd, 0x89, 0xa7, 0x3a, 0x72, - 0x43, 0xa5, 0x3a, 0x4e, 0x48, 0x42, 0x45, 0x59, 0x96, 0xb1, 0x47, 0x65, 0x59, 0xdc, 0x9f, 0x39, - 0x30, 0x9f, 0x96, 0xb9, 0xcb, 0x32, 0xfc, 0x97, 0x61, 0xb2, 0xdb, 0x22, 0x62, 0xcf, 0x67, 0xed, - 0xe4, 0xc3, 0xca, 0xb6, 0x69, 0xc7, 0x61, 0x0f, 0xc4, 0x00, 0x58, 0x10, 0x22, 0x04, 0xee, 0xf3, - 0x8d, 0xac, 0x37, 0x42, 0x3c, 0xe5, 0x14, 0x29, 0x2b, 0x6c, 0xe2, 0xd8, 0x92, 0xe2, 0xfe, 0xe9, - 0x38, 0xcc, 0x29, 0x96, 0x51, 0x6f, 0x88, 0x51, 0x56, 0xa8, 0x0b, 0x4f, 0x29, 0xc7, 0xbe, 0xff, - 0x52, 0xd1, 0x8b, 0x76, 0xd5, 0xf0, 0x3f, 0xb5, 0x99, 0xda, 0xeb, 0xe1, 0x40, 0x0a, 0x1e, 0x80, - 0xdb, 0x7f, 0x53, 0xc0, 0x2f, 0xde, 0x4d, 0x61, 0x6f, 0xb6, 0x89, 0x13, 0x37, 0xdb, 0xc0, 0x7b, - 0x65, 0xf2, 0x31, 0xee, 0x95, 0x7e, 0x5b, 0x5f, 0xcc, 0x64, 0xeb, 0xff, 0x32, 0x07, 0x13, 0xdb, - 0xcc, 0x57, 0x19, 0xe0, 0xb3, 0x4f, 0x26, 0xde, 0x8d, 0x3d, 0xf0, 0x5c, 0x1e, 0xfa, 0x81, 0x47, - 0x42, 0xa9, 0xa7, 0x9d, 0xc9, 0xf8, 0xb3, 0x8e, 0x95, 0x15, 0xcb, 0x67, 0xf1, 0xc0, 0x03, 0xc8, - 0x47, 0x67, 0xc5, 0x3e, 0x71, 0xa0, 0x64, 0x7a, 0x7e, 0x65, 0xd3, 0x2f, 0x66, 0x7c, 0x03, 0xd2, - 0x2f, 0x7f, 0x1e, 0xcd, 0x40, 0x2a, 0x0d, 0xfd, 0x2e, 0xcc, 0x75, 0x83, 0x07, 0xa5, 0x6d, 0xbf, - 0xe5, 0xd5, 0x3c, 0x1a, 0x64, 0xf0, 0xae, 0x64, 0x7c, 0x6d, 0x53, 0xec, 0x87, 0x95, 0xaf, 0x19, - 0xb9, 0x73, 0xdb, 0x49, 0x5c, 0xdc, 0x2f, 0xca, 0xfd, 0x0f, 0x07, 0xa6, 0x63, 0xba, 0x47, 0x35, - 0x80, 0x9a, 0xdf, 0xa9, 0x7b, 0x22, 0x7c, 0xdb, 0x2e, 0xad, 0xae, 0x0c, 0xa7, 0xd5, 0xf5, 0x80, - 0x2f, 0xda, 0x74, 0x61, 0x13, 0xc7, 0x16, 0x2c, 0x7a, 0x35, 0x28, 0x33, 0x89, 0x3b, 0x31, 0xba, - 0xcc, 0xe4, 0xe1, 0xd1, 0xf2, 0x94, 0x19, 0x93, 0x5d, 0x76, 0x92, 0xa5, 0xe0, 0xe2, 0xef, 0x72, - 0x50, 0x0c, 0xe7, 0xff, 0x04, 0x8e, 0xd1, 0x3b, 0xb1, 0x63, 0xf4, 0x6a, 0xc6, 0x95, 0x1b, 0xf4, - 0x46, 0x8a, 0xde, 0x4f, 0x1c, 0xa6, 0xac, 0x5b, 0xe2, 0x84, 0xe3, 0xf4, 0x4f, 0x7a, 0xf1, 0x75, - 0xdf, 0x27, 0x70, 0xa0, 0x76, 0xe2, 0x07, 0x6a, 0x25, 0xe3, 0x6c, 0x06, 0x1c, 0xa9, 0x1f, 0x3a, - 0x30, 0x93, 0x38, 0x04, 0xe8, 0x59, 0x18, 0x57, 0x29, 0x1b, 0xb3, 0xbf, 0x42, 0x46, 0x13, 0xe0, - 0x2b, 0x1a, 0xda, 0x86, 0x79, 0xd2, 0x13, 0x7e, 0xc8, 0x7b, 0xb3, 0x43, 0x76, 0x5b, 0x54, 0x47, - 0xed, 0x93, 0x95, 0x5f, 0x32, 0x3c, 0xf3, 0x6b, 0x29, 0x7d, 0x70, 0x2a, 0xa7, 0xfb, 0x59, 0x0e, - 0x50, 0xd8, 0x98, 0x25, 0xd5, 0xf9, 0x3e, 0x4c, 0xec, 0xe9, 0xa4, 0xcc, 0xe3, 0xe5, 0xaa, 0x2b, - 0x25, 0x3b, 0x5d, 0x1f, 0x60, 0xa2, 0xf7, 0x4e, 0x67, 0x1f, 0x41, 0xff, 0x1e, 0x42, 0xf7, 0x01, - 0xf6, 0xbc, 0x8e, 0xc7, 0x9b, 0x23, 0xbe, 0xaa, 0xa9, 0xdb, 0xfc, 0x56, 0x88, 0x80, 0x2d, 0x34, - 0xf7, 0xa3, 0x9c, 0xb5, 0x3f, 0x95, 0xb9, 0x1c, 0x6a, 0x5d, 0x5f, 0x8c, 0x2b, 0xb3, 0xd8, 0xff, - 0x8e, 0x61, 0x29, 0x66, 0xec, 0x80, 0xb0, 0x20, 0xa5, 0x9a, 0xb5, 0xbe, 0xe1, 0x1e, 0x61, 0x9e, - 0x5c, 0xf8, 0x68, 0x49, 0xef, 0x11, 0xc6, 0xb1, 0x82, 0x44, 0xdf, 0x96, 0x43, 0xa5, 0xdd, 0xc0, - 0x84, 0x66, 0xb6, 0x09, 0x82, 0x76, 0xed, 0xf9, 0xd1, 0x2e, 0xc7, 0x1a, 0xd0, 0xfd, 0x68, 0xc2, - 0xda, 0xf0, 0xc6, 0x6a, 0xdf, 0x01, 0xd4, 0x22, 0x5c, 0xbc, 0x45, 0x3a, 0x75, 0xb9, 0x3d, 0xe9, - 0x1e, 0xa3, 0xbc, 0x69, 0x3c, 0xb4, 0x45, 0x83, 0x82, 0xb6, 0xfa, 0x7a, 0xe0, 0x14, 0x2e, 0x74, - 0x25, 0x6e, 0x9c, 0x97, 0x93, 0xc6, 0xf9, 0x7c, 0x74, 0xda, 0x46, 0x33, 0xcf, 0xf6, 0x76, 0x1f, - 0x3f, 0x83, 0xed, 0xfe, 0x3b, 0x30, 0xb7, 0x97, 0x7c, 0xd7, 0x32, 0xaf, 0xdc, 0x6f, 0x8c, 0xf8, - 0x2c, 0x56, 0xb9, 0x78, 0x1c, 0x3d, 0x86, 0x44, 0xcd, 0xb8, 0x5f, 0x10, 0xf2, 0x83, 0x2a, 0x3c, - 0x15, 0x7d, 0xea, 0xc4, 0xc2, 0xd0, 0x47, 0x2e, 0x11, 0xb7, 0x26, 0xeb, 0xef, 0x34, 0x24, 0x8e, - 0x09, 0x48, 0x1c, 0xc1, 0xc2, 0x69, 0x1e, 0x41, 0x74, 0x05, 0x4a, 0xb5, 0x1e, 0x63, 0xb4, 0x23, - 0xe4, 0x70, 0x94, 0x2b, 0x9b, 0x8f, 0x12, 0xc4, 0xeb, 0x11, 0x09, 0xdb, 0xfd, 0xd0, 0x8f, 0x1c, - 0xb8, 0x28, 0x37, 0xeb, 0xcd, 0x0f, 0x69, 0xad, 0x27, 0xb5, 0x12, 0x94, 0xde, 0x2e, 0x94, 0x94, - 0x36, 0x86, 0xac, 0x49, 0xac, 0xa6, 0x41, 0x44, 0x7e, 0x79, 0x2a, 0x19, 0xa7, 0x0b, 0x46, 0x1f, - 0x28, 0xd3, 0x21, 0xa8, 0x0a, 0x7b, 0x1e, 0x3f, 0xbc, 0x2f, 0x1a, 0xb3, 0x23, 0xb4, 0xd9, 0x11, - 0xd4, 0xfd, 0xb3, 0x31, 0xdb, 0x5a, 0x0d, 0x97, 0x74, 0xb8, 0x0f, 0x63, 0x82, 0xf0, 0x7d, 0x73, - 0x0a, 0xbe, 0x31, 0x42, 0x7d, 0x55, 0x74, 0x16, 0x94, 0x27, 0xae, 0x9a, 0x14, 0x26, 0x5a, 0x84, - 0x1c, 0xe1, 0xc9, 0x14, 0xf4, 0x1a, 0xc7, 0x39, 0xc2, 0xd1, 0x7b, 0x30, 0xce, 0xa8, 0x60, 0x87, - 0xc6, 0x60, 0x5f, 0x1d, 0xc1, 0x38, 0x61, 0xc9, 0xaf, 0xd5, 0xa0, 0xfe, 0xc4, 0x1a, 0x11, 0x35, - 0xa0, 0xe0, 0x75, 0xba, 0x3d, 0xa1, 0xc3, 0xb5, 0xd2, 0xea, 0x37, 0x47, 0xc0, 0x2e, 0x6f, 0x2a, - 0x84, 0x44, 0x55, 0xb8, 0x6e, 0xc4, 0x06, 0xde, 0x4a, 0xd8, 0xe4, 0xcf, 0x2a, 0x61, 0xb3, 0x78, - 0x0d, 0x4a, 0xd6, 0x50, 0x32, 0x55, 0x6d, 0xff, 0xc4, 0xb1, 0x7c, 0x81, 0x50, 0x61, 0xe8, 0x1d, - 0x98, 0x10, 0x5e, 0x9b, 0xfa, 0x3d, 0x91, 0xcd, 0xc1, 0xda, 0xe8, 0x31, 0xf5, 0xf6, 0xad, 0x4d, - 0xde, 0x8e, 0x86, 0xc0, 0x01, 0x96, 0x8c, 0x3a, 0x29, 0x63, 0x3e, 0xdb, 0x69, 0x4a, 0x13, 0xee, - 0xb7, 0xb4, 0x17, 0x33, 0x1d, 0x45, 0x9d, 0x37, 0x63, 0x54, 0x9c, 0xe8, 0xed, 0x7e, 0x66, 0xbb, - 0x82, 0xff, 0xff, 0x8b, 0x0b, 0x89, 0xa5, 0x7b, 0xd9, 0x51, 0x2d, 0xe2, 0x10, 0x7e, 0xd8, 0x8b, - 0x30, 0x51, 0xa7, 0x7b, 0xa4, 0xd7, 0xea, 0x73, 0x1d, 0x36, 0x74, 0x33, 0x0e, 0xe8, 0xee, 0xbf, - 0x3a, 0x30, 0xf7, 0xa4, 0x0b, 0x17, 0x1f, 0xc4, 0x1d, 0xe8, 0x51, 0x54, 0xf6, 0x88, 0x8a, 0xc5, - 0x07, 0xf0, 0x54, 0xba, 0x69, 0x19, 0x42, 0x71, 0x97, 0x4c, 0x15, 0x41, 0xa2, 0x1c, 0x20, 0x2a, - 0x18, 0xe8, 0xd7, 0x97, 0x72, 0xe8, 0xbe, 0x1b, 0x5a, 0x8b, 0x4c, 0xa5, 0x8a, 0xfd, 0x8b, 0x3b, - 0xd0, 0x4c, 0x84, 0x7e, 0x58, 0xee, 0xb4, 0xfd, 0x30, 0x66, 0x4f, 0xc8, 0x7c, 0x07, 0x81, 0xde, - 0x37, 0x9b, 0xda, 0xc9, 0x52, 0x7b, 0xdf, 0x07, 0x33, 0x70, 0x63, 0x7f, 0xe6, 0xc0, 0xc5, 0xd4, - 0xde, 0xa1, 0x2b, 0x9b, 0x3b, 0x43, 0x57, 0xd6, 0x39, 0x6d, 0x15, 0xde, 0xb7, 0x54, 0x18, 0x0c, - 0xe1, 0xb4, 0x3e, 0x5e, 0xfa, 0x71, 0x0e, 0x66, 0x31, 0xed, 0xfa, 0xb1, 0xac, 0xee, 0x76, 0x50, - 0x17, 0x9b, 0x21, 0x0c, 0x4a, 0xbc, 0x1d, 0x56, 0x26, 0x62, 0x05, 0xb1, 0xdf, 0x86, 0x71, 0x95, - 0x70, 0xcd, 0x66, 0xc6, 0xfa, 0xf2, 0xcd, 0xfa, 0x26, 0xd5, 0x99, 0x6b, 0x0d, 0x28, 0x91, 0x55, - 0x99, 0x86, 0xb9, 0xdf, 0xde, 0xc8, 0x50, 0xf0, 0xd1, 0x8f, 0xac, 0x9a, 0xb1, 0x06, 0x74, 0x3f, - 0xce, 0x81, 0x0e, 0x99, 0x9e, 0x80, 0x95, 0xff, 0x8d, 0x98, 0x95, 0x5f, 0x19, 0xd6, 0xf1, 0x93, - 0xea, 0x19, 0x94, 0x16, 0x49, 0x86, 0xb3, 0x97, 0xb3, 0x80, 0x3e, 0x3a, 0x25, 0xf2, 0x8f, 0x0e, - 0x14, 0x55, 0xbf, 0x27, 0x60, 0xcd, 0xb7, 0xe3, 0xd6, 0xfc, 0xa5, 0x0c, 0xb3, 0x18, 0x60, 0xc1, - 0x3f, 0xca, 0x9b, 0xd1, 0x87, 0xc1, 0x72, 0x93, 0xb0, 0xba, 0x09, 0x03, 0xa3, 0x13, 0x28, 0x1b, - 0xb1, 0xa6, 0xa1, 0xdf, 0x82, 0x59, 0xa6, 0x2b, 0x7f, 0x68, 0xfd, 0x56, 0x18, 0x93, 0xe5, 0x33, - 0x97, 0xe6, 0x98, 0xf2, 0xa1, 0xe8, 0x39, 0x00, 0x27, 0x50, 0x71, 0x9f, 0x1c, 0x19, 0xa7, 0x75, - 0x93, 0xb6, 0xcc, 0xc4, 0x2f, 0x6f, 0x8c, 0x68, 0x38, 0x75, 0x9c, 0xd6, 0xd7, 0x8c, 0xfb, 0x05, - 0xa1, 0x26, 0x4c, 0xd9, 0x45, 0x85, 0x66, 0x2f, 0xad, 0x66, 0xaf, 0x5e, 0xd4, 0xcf, 0xbf, 0x76, - 0x0b, 0x8e, 0x21, 0xbb, 0x47, 0x05, 0x28, 0x59, 0x9b, 0x2f, 0x91, 0x62, 0x9d, 0x3e, 0x9b, 0x14, - 0x6b, 0x7a, 0x46, 0xa0, 0x34, 0x52, 0x46, 0xe0, 0x72, 0x3c, 0x23, 0xf0, 0xf5, 0x64, 0x46, 0x00, - 0xd4, 0xec, 0x62, 0xd9, 0x00, 0x0e, 0xe7, 0x4d, 0x68, 0x1c, 0x54, 0x87, 0x66, 0xca, 0xb1, 0xf4, - 0x07, 0xe0, 0x48, 0x7a, 0xb1, 0xb7, 0x62, 0x90, 0x38, 0x21, 0x42, 0x7a, 0xc1, 0xa6, 0xa5, 0xda, - 0x6b, 0xb7, 0x09, 0x3b, 0x5c, 0x98, 0x52, 0x03, 0x0e, 0xbd, 0xe0, 0x5b, 0x31, 0x2a, 0x4e, 0xf4, - 0x46, 0xdb, 0x50, 0xd0, 0x91, 0xb5, 0xa9, 0x38, 0x7c, 0x39, 0x4b, 0xd0, 0xae, 0x03, 0x08, 0xfd, - 0x37, 0x36, 0x38, 0x76, 0x52, 0xa4, 0x78, 0x42, 0x52, 0xe4, 0x0e, 0x20, 0x7f, 0x57, 0x85, 0x2a, - 0xf5, 0xdb, 0xfa, 0x2b, 0x5f, 0xb9, 0x2b, 0x0b, 0x2a, 0xe2, 0x0e, 0x17, 0xec, 0x6e, 0x5f, 0x0f, - 0x9c, 0xc2, 0x25, 0x4f, 0xb5, 0x09, 0xc7, 0xc3, 0xa3, 0x60, 0x12, 0x20, 0x59, 0x1d, 0xac, 0x28, - 0xbe, 0x9c, 0x97, 0xa7, 0x7a, 0x3d, 0x81, 0x8a, 0xfb, 0xe4, 0xa0, 0xef, 0xc1, 0xb4, 0xdc, 0x42, - 0x91, 0x60, 0x78, 0x4c, 0xc1, 0x73, 0xc7, 0x47, 0xcb, 0xd3, 0x5b, 0x36, 0x24, 0x8e, 0x4b, 0x70, - 0xff, 0x24, 0x0f, 0xe9, 0xc9, 0x80, 0xa8, 0x58, 0xde, 0x79, 0x44, 0xb1, 0xfc, 0xbb, 0x50, 0xe4, - 0x82, 0x30, 0xfd, 0x61, 0x40, 0x6e, 0xb4, 0x0f, 0x03, 0xaa, 0x01, 0x00, 0x8e, 0xb0, 0x12, 0x99, - 0x99, 0xfc, 0xa9, 0x66, 0x66, 0x56, 0x01, 0x54, 0x0c, 0xb7, 0xee, 0xf7, 0xcc, 0x5b, 0xec, 0x74, - 0x64, 0x13, 0x6e, 0x86, 0x14, 0x6c, 0xf5, 0x42, 0x57, 0xc3, 0x8b, 0x53, 0x3f, 0xbe, 0x5e, 0xea, - 0x2b, 0x1e, 0x49, 0xe6, 0xf6, 0x52, 0x3e, 0x76, 0x3d, 0xa1, 0xd8, 0xcc, 0xfd, 0xdf, 0x1c, 0xc4, - 0x8c, 0x21, 0xfa, 0xa1, 0x03, 0x73, 0x24, 0xf1, 0xbd, 0x70, 0xe0, 0x4b, 0x7e, 0x33, 0xdb, 0x47, - 0xdc, 0x7d, 0x9f, 0x1b, 0x47, 0xcf, 0x5d, 0xc9, 0x2e, 0x1c, 0xf7, 0x0b, 0x45, 0x7f, 0xe4, 0xc0, - 0x05, 0xd2, 0xff, 0x41, 0xb8, 0x59, 0xf4, 0x6b, 0x23, 0x7f, 0x51, 0x5e, 0x79, 0xfa, 0xf8, 0x68, - 0x39, 0xed, 0x53, 0x79, 0x9c, 0x26, 0x0e, 0x7d, 0x07, 0xc6, 0x08, 0x6b, 0x04, 0xa9, 0xe1, 0xec, - 0x62, 0x83, 0xef, 0xfc, 0x23, 0xef, 0x68, 0x8d, 0x35, 0x38, 0x56, 0xa0, 0xee, 0x4f, 0xf3, 0x30, - 0x9b, 0x2c, 0xae, 0x37, 0xf5, 0x88, 0x63, 0xa9, 0xf5, 0x88, 0xf2, 0x8c, 0xd4, 0x44, 0x58, 0x1c, - 0x18, 0x9d, 0x11, 0xd9, 0x88, 0x35, 0x2d, 0x3c, 0x23, 0x72, 0x5f, 0x9a, 0x74, 0xd5, 0x68, 0x67, - 0x44, 0xfe, 0xc4, 0x11, 0x16, 0xba, 0x1a, 0xbf, 0x5b, 0xdc, 0xe4, 0xdd, 0x32, 0x67, 0xcf, 0x65, - 0xd4, 0x84, 0x73, 0x1b, 0x4a, 0xd6, 0x3a, 0x98, 0x93, 0x78, 0x3d, 0xb3, 0xde, 0xa3, 0x6d, 0x37, - 0xa3, 0xff, 0x59, 0x40, 0x44, 0xb1, 0xf1, 0xa3, 0x73, 0xaf, 0xb4, 0xf5, 0x58, 0x19, 0x59, 0xa5, - 0x2e, 0x0b, 0xcd, 0xdd, 0x87, 0xe9, 0x58, 0x8d, 0xac, 0x14, 0x16, 0xd4, 0x05, 0x8f, 0xfe, 0xf5, - 0xfc, 0xbd, 0x10, 0x01, 0x5b, 0x68, 0xea, 0x1d, 0xf5, 0x5d, 0xc2, 0x68, 0xd3, 0xef, 0x71, 0xfa, - 0x55, 0x7d, 0x47, 0x0d, 0x07, 0x78, 0xda, 0xef, 0xa8, 0x11, 0xf0, 0xc9, 0xef, 0xa8, 0x61, 0xdf, - 0xaf, 0xec, 0x3b, 0x6a, 0x38, 0xc2, 0x01, 0xc1, 0xc3, 0xff, 0xe4, 0xac, 0x59, 0xc4, 0x03, 0x88, - 0xdc, 0x23, 0x02, 0x88, 0x07, 0x30, 0xe9, 0x75, 0x04, 0x65, 0x07, 0xa4, 0x65, 0xb2, 0xc9, 0x59, - 0x33, 0x9a, 0xe1, 0x54, 0x37, 0x0d, 0x0e, 0x0e, 0x11, 0x51, 0x0b, 0x2e, 0x06, 0x2f, 0x2c, 0x8c, - 0x92, 0xe8, 0x85, 0xd7, 0x54, 0x49, 0xbd, 0x1e, 0x3c, 0x05, 0xdc, 0x4a, 0xeb, 0xf4, 0x70, 0x10, - 0x01, 0xa7, 0x83, 0x22, 0x0e, 0xd3, 0xdc, 0x8a, 0x9c, 0x83, 0x4b, 0x6a, 0xc8, 0xd7, 0xa9, 0x64, - 0xb2, 0xc1, 0x2a, 0xad, 0xb2, 0x41, 0x71, 0x5c, 0x86, 0xfb, 0x6f, 0x79, 0x98, 0x49, 0xec, 0xb4, - 0x44, 0x84, 0x50, 0x7c, 0x92, 0x11, 0x42, 0x61, 0xa4, 0x08, 0x21, 0xdd, 0x79, 0x1d, 0x1b, 0xc9, - 0x79, 0x7d, 0x53, 0x3b, 0x90, 0x66, 0xe5, 0x36, 0x37, 0x4c, 0x25, 0x7a, 0xa8, 0xcd, 0x2d, 0x9b, - 0x88, 0xe3, 0x7d, 0xd5, 0x0d, 0x5f, 0xef, 0xff, 0xec, 0xda, 0x78, 0xbf, 0xd7, 0xb2, 0x96, 0x12, - 0x86, 0x00, 0xfa, 0x86, 0x4f, 0x21, 0xe0, 0x34, 0x71, 0x95, 0x3b, 0x9f, 0x7e, 0xb9, 0x74, 0xee, - 0xf3, 0x2f, 0x97, 0xce, 0x7d, 0xf1, 0xe5, 0xd2, 0xb9, 0x1f, 0x1c, 0x2f, 0x39, 0x9f, 0x1e, 0x2f, - 0x39, 0x9f, 0x1f, 0x2f, 0x39, 0x5f, 0x1c, 0x2f, 0x39, 0xff, 0x75, 0xbc, 0xe4, 0xfc, 0xe8, 0x67, - 0x4b, 0xe7, 0xee, 0x3f, 0x37, 0xcc, 0x7f, 0x4c, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8e, - 0x3c, 0xe7, 0xd2, 0x58, 0x49, 0x00, 0x00, + 0x36, 0x0c, 0x3b, 0xb6, 0x87, 0x91, 0x6c, 0xd9, 0xb2, 0xbc, 0x51, 0xc0, 0x21, 0x25, 0x99, 0x0a, + 0xd7, 0x62, 0x6a, 0x68, 0x79, 0x2d, 0xcb, 0xf0, 0x16, 0x67, 0x8a, 0x33, 0x1d, 0xce, 0x4c, 0xcf, + 0x56, 0xd5, 0x70, 0xcd, 0x24, 0x48, 0x36, 0x5f, 0xc0, 0x22, 0x41, 0x82, 0x3d, 0x18, 0xf0, 0x06, + 0x48, 0x80, 0x20, 0x39, 0x2e, 0x92, 0x7f, 0x20, 0x07, 0x1f, 0x72, 0x31, 0x16, 0x46, 0x62, 0x24, + 0x39, 0xf8, 0xb0, 0x21, 0x62, 0x2e, 0x90, 0xe3, 0xde, 0x72, 0x11, 0x10, 0x20, 0xa8, 0x8f, 0xee, + 0xae, 0xee, 0xe9, 0x11, 0xa7, 0x47, 0x24, 0xa1, 0xe4, 0xc6, 0xa9, 0x57, 0xef, 0xf7, 0xaa, 0x5e, + 0x55, 0xbd, 0x7a, 0xef, 0xd5, 0x6b, 0xc2, 0x6b, 0x0d, 0x4f, 0x34, 0x7b, 0x3b, 0xe5, 0x9a, 0xdf, + 0x5e, 0x21, 0x7b, 0x3d, 0x4f, 0x1c, 0xac, 0xec, 0x11, 0xd6, 0xf0, 0x57, 0x48, 0xd7, 0x5b, 0xd9, + 0xbf, 0x4c, 0x5a, 0xdd, 0x26, 0xb9, 0xbc, 0xd2, 0xa0, 0x1d, 0xca, 0x88, 0xa0, 0xf5, 0x72, 0x97, + 0xf9, 0xc2, 0x47, 0xcf, 0x45, 0x5c, 0x65, 0xcd, 0x55, 0x56, 0x5c, 0x65, 0xd2, 0xf5, 0xca, 0x01, + 0xd7, 0xe2, 0x2b, 0x16, 0x76, 0xc3, 0x6f, 0xf8, 0x2b, 0x8a, 0x79, 0xa7, 0xb7, 0xab, 0x7e, 0xa9, + 0x1f, 0xea, 0x2f, 0x0d, 0xba, 0xf8, 0xf6, 0xde, 0x35, 0x5e, 0xf6, 0x94, 0x64, 0xfa, 0xb1, 0xa0, + 0x1d, 0xee, 0xf9, 0x1d, 0xfe, 0x0a, 0xe9, 0x7a, 0x9c, 0xb2, 0x7d, 0xca, 0x56, 0xba, 0x7b, 0x0d, + 0x49, 0xe3, 0xf1, 0x0e, 0x2b, 0xfb, 0x7d, 0xc3, 0x5b, 0x7c, 0x2d, 0x42, 0x6a, 0x93, 0x5a, 0xd3, + 0xeb, 0x50, 0x76, 0x10, 0xb1, 0xb7, 0xa9, 0x20, 0x69, 0x5c, 0x2b, 0x83, 0xb8, 0x58, 0xaf, 0x23, + 0xbc, 0x36, 0xed, 0x63, 0x78, 0xfd, 0x38, 0x06, 0x5e, 0x6b, 0xd2, 0x36, 0x49, 0xf2, 0xb9, 0x0f, + 0xe0, 0xc2, 0x6a, 0x87, 0xb4, 0x0e, 0xb8, 0xc7, 0x71, 0xaf, 0xb3, 0xca, 0x1a, 0xbd, 0x36, 0xed, + 0x08, 0x74, 0x09, 0xc6, 0x3a, 0xa4, 0x4d, 0x17, 0x9c, 0x4b, 0xce, 0x0b, 0xc5, 0xca, 0xd4, 0xe7, + 0x87, 0xcb, 0xe7, 0x8e, 0x0e, 0x97, 0xc7, 0xde, 0x21, 0x6d, 0x8a, 0x15, 0x05, 0x3d, 0x0b, 0xe3, + 0xfb, 0xa4, 0xd5, 0xa3, 0x0b, 0x39, 0xd5, 0x65, 0xda, 0x74, 0x19, 0xbf, 0x27, 0x1b, 0xb1, 0xa6, + 0xb9, 0x7f, 0x94, 0x8f, 0xc1, 0x7f, 0x9b, 0x0a, 0x52, 0x27, 0x82, 0xa0, 0x36, 0x14, 0x5a, 0x64, + 0x87, 0xb6, 0xf8, 0x82, 0x73, 0x29, 0xff, 0x42, 0xe9, 0xca, 0xcd, 0xf2, 0x30, 0x8b, 0x58, 0x4e, + 0x81, 0x2a, 0x6f, 0x2a, 0x9c, 0x9b, 0x1d, 0xc1, 0x0e, 0x2a, 0xe7, 0xcd, 0x20, 0x0a, 0xba, 0x11, + 0x1b, 0x21, 0xe8, 0x0f, 0x1c, 0x28, 0x91, 0x4e, 0xc7, 0x17, 0x44, 0xc8, 0x65, 0x5a, 0xc8, 0x29, + 0xa1, 0x77, 0x46, 0x17, 0xba, 0x1a, 0x81, 0x69, 0xc9, 0x17, 0x8c, 0xe4, 0x92, 0x45, 0xc1, 0xb6, + 0xcc, 0xc5, 0x37, 0xa1, 0x64, 0x0d, 0x15, 0xcd, 0x42, 0x7e, 0x8f, 0x1e, 0x68, 0xfd, 0x62, 0xf9, + 0x27, 0x9a, 0x8f, 0x29, 0xd4, 0x68, 0xf0, 0x7a, 0xee, 0x9a, 0xb3, 0x78, 0x03, 0x66, 0x93, 0x02, + 0xb3, 0xf0, 0xbb, 0x7f, 0xe1, 0xc0, 0xbc, 0x35, 0x0b, 0x4c, 0x77, 0x29, 0xa3, 0x9d, 0x1a, 0x45, + 0x2b, 0x50, 0x94, 0x6b, 0xc9, 0xbb, 0xa4, 0x16, 0x2c, 0xf5, 0x9c, 0x99, 0x48, 0xf1, 0x9d, 0x80, + 0x80, 0xa3, 0x3e, 0xe1, 0xb6, 0xc8, 0x3d, 0x6a, 0x5b, 0x74, 0x9b, 0x84, 0xd3, 0x85, 0x7c, 0x7c, + 0x5b, 0x6c, 0xc9, 0x46, 0xac, 0x69, 0xee, 0xaf, 0xc1, 0x37, 0x82, 0xf1, 0x6c, 0xd3, 0x76, 0xb7, + 0x45, 0x04, 0x8d, 0x06, 0x75, 0xec, 0xd6, 0x73, 0xf7, 0x60, 0x7a, 0xb5, 0xdb, 0x65, 0xfe, 0x3e, + 0xad, 0x57, 0x05, 0x69, 0x50, 0x74, 0x1f, 0x80, 0x98, 0x86, 0x55, 0xa1, 0x18, 0x4b, 0x57, 0x7e, + 0xa5, 0xac, 0x4f, 0x44, 0xd9, 0x3e, 0x11, 0xe5, 0xee, 0x5e, 0x43, 0x36, 0xf0, 0xb2, 0x3c, 0x78, + 0xe5, 0xfd, 0xcb, 0xe5, 0x6d, 0xaf, 0x4d, 0x2b, 0xe7, 0x8f, 0x0e, 0x97, 0x61, 0x35, 0x44, 0xc0, + 0x16, 0x9a, 0xfb, 0x87, 0x0e, 0x5c, 0x5c, 0x65, 0x0d, 0x7f, 0x6d, 0x7d, 0xb5, 0xdb, 0x7d, 0x9b, + 0x92, 0x96, 0x68, 0x56, 0x05, 0x11, 0x3d, 0x8e, 0x6e, 0x40, 0x81, 0xab, 0xbf, 0xcc, 0x50, 0x9f, + 0x0f, 0x76, 0x9f, 0xa6, 0x3f, 0x3c, 0x5c, 0x9e, 0x4f, 0x61, 0xa4, 0xd8, 0x70, 0xa1, 0x17, 0x61, + 0xa2, 0x4d, 0x39, 0x27, 0x8d, 0x40, 0x9f, 0x33, 0x06, 0x60, 0xe2, 0xdb, 0xba, 0x19, 0x07, 0x74, + 0xf7, 0xa7, 0x39, 0x98, 0x09, 0xb1, 0x8c, 0xf8, 0x53, 0x58, 0xbc, 0x1e, 0x4c, 0x35, 0xad, 0x19, + 0xaa, 0x35, 0x2c, 0x5d, 0x79, 0x6b, 0xc8, 0x73, 0x92, 0xa6, 0xa4, 0xca, 0xbc, 0x11, 0x33, 0x65, + 0xb7, 0xe2, 0x98, 0x18, 0xd4, 0x06, 0xe0, 0x07, 0x9d, 0x9a, 0x11, 0x3a, 0xa6, 0x84, 0xbe, 0x99, + 0x51, 0x68, 0x35, 0x04, 0xa8, 0x20, 0x23, 0x12, 0xa2, 0x36, 0x6c, 0x09, 0x70, 0xff, 0xc1, 0x81, + 0x0b, 0x29, 0x7c, 0xe8, 0x5b, 0x89, 0xf5, 0x7c, 0xae, 0x6f, 0x3d, 0x51, 0x1f, 0x5b, 0xb4, 0x9a, + 0x2f, 0xc3, 0x24, 0xa3, 0xfb, 0x9e, 0xbc, 0x07, 0x8c, 0x86, 0x67, 0x0d, 0xff, 0x24, 0x36, 0xed, + 0x38, 0xec, 0x81, 0x5e, 0x82, 0x62, 0xf0, 0xb7, 0x54, 0x73, 0x5e, 0x1e, 0x15, 0xb9, 0x70, 0x41, + 0x57, 0x8e, 0x23, 0xba, 0xfb, 0xfb, 0x30, 0xbe, 0xd6, 0x24, 0x4c, 0xc8, 0x1d, 0xc3, 0x68, 0xd7, + 0x7f, 0x17, 0x6f, 0x9a, 0x21, 0x86, 0x3b, 0x06, 0xeb, 0x66, 0x1c, 0xd0, 0x87, 0x58, 0xec, 0x17, + 0x61, 0x62, 0x9f, 0x32, 0x35, 0xde, 0x7c, 0x1c, 0xec, 0x9e, 0x6e, 0xc6, 0x01, 0xdd, 0xfd, 0x37, + 0x07, 0xe6, 0xd5, 0x08, 0xd6, 0x3d, 0x5e, 0xf3, 0xf7, 0x29, 0x3b, 0xc0, 0x94, 0xf7, 0x5a, 0x27, + 0x3c, 0xa0, 0x75, 0x98, 0xe5, 0xb4, 0xbd, 0x4f, 0xd9, 0x9a, 0xdf, 0xe1, 0x82, 0x11, 0xaf, 0x23, + 0xcc, 0xc8, 0x16, 0x4c, 0xef, 0xd9, 0x6a, 0x82, 0x8e, 0xfb, 0x38, 0xd0, 0x0b, 0x30, 0x69, 0x86, + 0x2d, 0xb7, 0x92, 0x54, 0xec, 0x94, 0x5c, 0x03, 0x33, 0x27, 0x8e, 0x43, 0xaa, 0xfb, 0x5f, 0x0e, + 0xcc, 0xa9, 0x59, 0x55, 0x7b, 0x3b, 0xbc, 0xc6, 0xbc, 0xae, 0x34, 0xaf, 0x4f, 0xe2, 0x94, 0x6e, + 0xc0, 0xf9, 0x7a, 0xa0, 0xf8, 0x4d, 0xaf, 0xed, 0x09, 0x75, 0x46, 0xc6, 0x2b, 0x4f, 0x19, 0x8c, + 0xf3, 0xeb, 0x31, 0x2a, 0x4e, 0xf4, 0xd6, 0xcb, 0xd7, 0xea, 0x71, 0x41, 0xd9, 0x16, 0xf3, 0xdb, + 0xbe, 0x9c, 0xe7, 0x36, 0xe1, 0x7b, 0xe8, 0xbb, 0x30, 0xd9, 0x36, 0x57, 0x9a, 0xb1, 0x9a, 0xbf, + 0x3a, 0x9c, 0xd5, 0xbc, 0xbb, 0xf3, 0x5b, 0xb4, 0x26, 0xe4, 0x75, 0x18, 0x9d, 0xb6, 0xa8, 0x0d, + 0x87, 0xa8, 0xe8, 0x7d, 0x18, 0xe3, 0x5d, 0x5a, 0x53, 0x2a, 0x2a, 0x5d, 0x79, 0x63, 0xb8, 0x43, + 0x1d, 0x1b, 0x64, 0xb5, 0x4b, 0x6b, 0x91, 0x6e, 0xe5, 0x2f, 0xac, 0x20, 0xdd, 0xff, 0x70, 0x60, + 0x21, 0x6d, 0x56, 0x9b, 0x1e, 0x17, 0xe8, 0x41, 0xdf, 0xcc, 0xca, 0xc3, 0xcd, 0x4c, 0x72, 0xab, + 0x79, 0x85, 0xa7, 0x37, 0x68, 0xb1, 0x66, 0x55, 0x83, 0x71, 0x4f, 0xd0, 0x76, 0xe0, 0x48, 0xdc, + 0x18, 0x6e, 0x5a, 0x83, 0x06, 0x1b, 0x5d, 0x92, 0x1b, 0x12, 0x14, 0x6b, 0x6c, 0xf7, 0xaf, 0xf2, + 0x70, 0x21, 0x58, 0x58, 0x5a, 0x5f, 0x65, 0xc2, 0xdb, 0x25, 0x35, 0xc1, 0x51, 0x1d, 0xa6, 0xea, + 0x51, 0xb3, 0x30, 0xf6, 0x32, 0xcb, 0x75, 0x17, 0xda, 0x64, 0x0b, 0x5e, 0xe0, 0x18, 0x2a, 0x7a, + 0x0f, 0xf2, 0x0d, 0x4f, 0x18, 0xf7, 0xec, 0xda, 0x70, 0x13, 0xbc, 0xed, 0x25, 0x0d, 0x44, 0xa5, + 0x64, 0x44, 0xe5, 0x6f, 0x7b, 0x02, 0x4b, 0x44, 0xb4, 0x03, 0x05, 0xaf, 0x4d, 0x1a, 0x34, 0x50, + 0xde, 0xf5, 0xe1, 0xb0, 0x37, 0x24, 0x4f, 0x12, 0x3d, 0xf4, 0xf7, 0x14, 0x95, 0x63, 0x83, 0x2c, + 0x65, 0xd4, 0xe4, 0xc1, 0xd6, 0xa6, 0x75, 0x68, 0x19, 0x69, 0x26, 0x2e, 0x92, 0xa1, 0xa8, 0x1c, + 0x1b, 0x64, 0xf7, 0xab, 0x1c, 0xcc, 0x46, 0xfa, 0x5b, 0xf3, 0xdb, 0x6d, 0x4f, 0xa0, 0x45, 0xc8, + 0x79, 0x75, 0x63, 0x37, 0xc0, 0x30, 0xe6, 0x36, 0xd6, 0x71, 0xce, 0xab, 0xa3, 0xe7, 0xa1, 0xb0, + 0xc3, 0x48, 0xa7, 0xd6, 0x34, 0xf6, 0x22, 0x04, 0xae, 0xa8, 0x56, 0x6c, 0xa8, 0xe8, 0x19, 0xc8, + 0x0b, 0xd2, 0x30, 0x66, 0x22, 0xd4, 0xdf, 0x36, 0x69, 0x60, 0xd9, 0x2e, 0xed, 0x13, 0xef, 0xa9, + 0xa3, 0xa6, 0x56, 0xde, 0xb2, 0x4f, 0x55, 0xdd, 0x8c, 0x03, 0xba, 0x94, 0x48, 0x7a, 0xa2, 0xe9, + 0xb3, 0x85, 0xf1, 0xb8, 0xc4, 0x55, 0xd5, 0x8a, 0x0d, 0x55, 0x7a, 0x12, 0x35, 0x35, 0x7e, 0x41, + 0xd9, 0x42, 0x21, 0xee, 0x49, 0xac, 0x05, 0x04, 0x1c, 0xf5, 0x41, 0x1f, 0x42, 0xa9, 0xc6, 0x28, + 0x11, 0x3e, 0x5b, 0x27, 0x82, 0x2e, 0x4c, 0x64, 0xde, 0x81, 0x33, 0xd2, 0x55, 0x5e, 0x8b, 0x20, + 0xb0, 0x8d, 0xe7, 0xfe, 0xc2, 0x81, 0x85, 0x48, 0xb5, 0x6a, 0x6d, 0x23, 0xf7, 0xd0, 0xa8, 0xc7, + 0x19, 0xa0, 0x9e, 0xe7, 0xa1, 0x50, 0xf7, 0x1a, 0x94, 0x8b, 0xa4, 0x96, 0xd7, 0x55, 0x2b, 0x36, + 0x54, 0x74, 0x05, 0xa0, 0xe1, 0x09, 0x63, 0xd2, 0x8d, 0xb2, 0x43, 0x53, 0x76, 0x3b, 0xa4, 0x60, + 0xab, 0x17, 0x7a, 0x0f, 0x8a, 0x6a, 0x98, 0x23, 0x1e, 0x3b, 0x75, 0xc1, 0xaf, 0x05, 0x00, 0x38, + 0xc2, 0x72, 0xbf, 0x1c, 0x83, 0x89, 0x5b, 0x8c, 0x7a, 0x8d, 0xa6, 0x38, 0x03, 0x9b, 0xfc, 0x2c, + 0x8c, 0x93, 0x96, 0x47, 0xb8, 0x5a, 0x37, 0xcb, 0x45, 0x5f, 0x95, 0x8d, 0x58, 0xd3, 0xd0, 0x07, + 0x50, 0xf0, 0x99, 0xd7, 0xf0, 0x3a, 0x0b, 0x45, 0x35, 0x88, 0x57, 0x87, 0x3b, 0x42, 0x66, 0x16, + 0x77, 0x15, 0x6b, 0xa4, 0x7c, 0xfd, 0x1b, 0x1b, 0x48, 0x74, 0x1f, 0x26, 0xf4, 0x66, 0x0a, 0x0e, + 0xe8, 0xca, 0xd0, 0x06, 0x46, 0xef, 0xc7, 0x68, 0xd3, 0xeb, 0xdf, 0x1c, 0x07, 0x80, 0xa8, 0x1a, + 0xda, 0x97, 0x31, 0x05, 0xfd, 0x52, 0x06, 0xfb, 0x32, 0xd0, 0xa0, 0x54, 0x43, 0x83, 0x32, 0x9e, + 0x05, 0x54, 0x99, 0x8c, 0x41, 0x16, 0x44, 0xaa, 0xd8, 0xf8, 0x9b, 0x85, 0x11, 0x54, 0x6c, 0x9c, + 0xdd, 0xf3, 0x71, 0x27, 0x35, 0x70, 0x47, 0xdd, 0x4f, 0xf2, 0x30, 0x67, 0x7a, 0xae, 0xf9, 0xad, + 0x16, 0xad, 0x29, 0xe7, 0x46, 0xdb, 0xa7, 0x7c, 0xaa, 0x7d, 0xf2, 0x82, 0x4b, 0x4d, 0xdb, 0xfc, + 0x4a, 0xa6, 0xd1, 0x44, 0x32, 0xca, 0xea, 0x12, 0xd3, 0x51, 0x71, 0xb8, 0x4a, 0xa6, 0x97, 0xb9, + 0xda, 0xd0, 0x9f, 0x38, 0x70, 0x61, 0x9f, 0x32, 0x6f, 0xd7, 0xab, 0xa9, 0x98, 0xf6, 0x6d, 0x8f, + 0x0b, 0x9f, 0x1d, 0x98, 0x1b, 0xe1, 0xf5, 0xe1, 0x24, 0xdf, 0xb3, 0x00, 0x36, 0x3a, 0xbb, 0x7e, + 0xe5, 0x9b, 0x46, 0xda, 0x85, 0x7b, 0xfd, 0xd0, 0x38, 0x4d, 0xde, 0x62, 0x17, 0x20, 0x1a, 0x6d, + 0x4a, 0x48, 0xbd, 0x69, 0x87, 0xd4, 0x43, 0x0f, 0x2c, 0x98, 0x6c, 0x60, 0xb2, 0xec, 0x50, 0xfc, + 0x33, 0x07, 0x4a, 0x86, 0x7e, 0x06, 0x7e, 0x0a, 0x8e, 0xfb, 0x29, 0xaf, 0x64, 0x1a, 0xff, 0x00, + 0xb7, 0x84, 0xc1, 0x74, 0xec, 0x90, 0xa3, 0xab, 0x30, 0xb6, 0xe7, 0x75, 0x82, 0x5b, 0xef, 0x97, + 0x03, 0x4f, 0xed, 0x37, 0xbc, 0x4e, 0xfd, 0xe1, 0xe1, 0xf2, 0x5c, 0xac, 0xb3, 0x6c, 0xc4, 0xaa, + 0xfb, 0xf1, 0xce, 0xf3, 0xf5, 0xc9, 0x1f, 0xff, 0xcd, 0xf2, 0xb9, 0x1f, 0xfc, 0xec, 0xd2, 0x39, + 0xf7, 0xd3, 0x3c, 0xcc, 0x26, 0xb5, 0x3a, 0x44, 0x8a, 0x2a, 0xb2, 0x61, 0x93, 0xa7, 0x6a, 0xc3, + 0x72, 0xa7, 0x67, 0xc3, 0xf2, 0xa7, 0x61, 0xc3, 0xc6, 0x4e, 0xcc, 0x86, 0xb9, 0xff, 0xec, 0xc0, + 0xf9, 0x70, 0x65, 0xbe, 0xd7, 0x93, 0x37, 0x6b, 0xa4, 0x75, 0xe7, 0xe4, 0xb5, 0xfe, 0x11, 0x4c, + 0x70, 0xbf, 0xc7, 0x6a, 0xca, 0x7d, 0x94, 0xe8, 0xaf, 0x65, 0x33, 0x9a, 0x9a, 0xd7, 0xf2, 0x99, + 0x74, 0x03, 0x0e, 0x50, 0xdd, 0x07, 0xe1, 0x7c, 0x0c, 0x49, 0x7b, 0x14, 0x4c, 0xfa, 0x5b, 0x72, + 0x3e, 0x93, 0xb6, 0x47, 0x21, 0x5b, 0xb1, 0xa1, 0x22, 0x57, 0x99, 0xf3, 0xc0, 0xb1, 0x2d, 0x56, + 0xc0, 0x58, 0x65, 0xb5, 0x06, 0x9a, 0xe2, 0xfe, 0x22, 0x1f, 0x9e, 0x1e, 0x93, 0x74, 0xf8, 0x3e, + 0x80, 0xb6, 0x4c, 0xb4, 0xbe, 0xd1, 0x31, 0xa6, 0x77, 0x6d, 0x84, 0x8b, 0xc0, 0x98, 0x43, 0x89, + 0xa2, 0x6d, 0x6f, 0xe8, 0x03, 0x44, 0x04, 0x6c, 0x89, 0x42, 0xbf, 0x03, 0xa5, 0x20, 0xcb, 0x75, + 0xcb, 0x67, 0x66, 0x0f, 0xaf, 0x8f, 0x22, 0x79, 0x35, 0x82, 0x49, 0x26, 0x43, 0x23, 0x0a, 0xb6, + 0xa5, 0x2d, 0x32, 0x98, 0x49, 0x8c, 0x37, 0xc5, 0xfa, 0x6e, 0xc4, 0xad, 0xef, 0xab, 0x59, 0xae, + 0x05, 0x93, 0x19, 0xb4, 0xb3, 0xa8, 0x1c, 0x66, 0x93, 0x23, 0x3d, 0x31, 0xa1, 0xb1, 0x74, 0xa4, + 0x6d, 0xef, 0xff, 0x3a, 0x07, 0xc5, 0xf0, 0xc4, 0x67, 0xc9, 0x2d, 0xe8, 0x9b, 0x3a, 0x77, 0x4c, + 0x24, 0x91, 0x1f, 0x26, 0x92, 0x18, 0x1b, 0x1c, 0x49, 0x04, 0xf9, 0xc7, 0xc2, 0xa3, 0xf3, 0x8f, + 0x56, 0x24, 0x31, 0x31, 0x7c, 0x24, 0x31, 0x79, 0x7c, 0x24, 0xe1, 0xfe, 0xad, 0x03, 0xa8, 0x3f, + 0x6c, 0xcc, 0xa2, 0x28, 0x92, 0xb4, 0xc3, 0x43, 0xde, 0xd2, 0xc9, 0xd8, 0x6d, 0xb0, 0x39, 0x76, + 0x3f, 0x1b, 0x87, 0x99, 0xdb, 0xde, 0xc8, 0x69, 0x22, 0x01, 0x4f, 0x6b, 0xa4, 0x2a, 0x35, 0x3e, + 0x52, 0x55, 0x30, 0x22, 0x68, 0xe3, 0xc0, 0xac, 0xef, 0x75, 0xc3, 0xfa, 0xf4, 0x5a, 0x7a, 0xb7, + 0x87, 0x83, 0x49, 0x78, 0x10, 0xf4, 0xd0, 0x9b, 0xe4, 0x2d, 0x98, 0xe6, 0x82, 0x79, 0x35, 0xa1, + 0x13, 0x51, 0x7c, 0xa1, 0xa4, 0xac, 0xdc, 0x45, 0xd3, 0x7d, 0xba, 0x6a, 0x13, 0x71, 0xbc, 0x6f, + 0x6a, 0x7e, 0x6b, 0x2c, 0x73, 0x7e, 0x6b, 0x05, 0x8a, 0xa4, 0xd5, 0xf2, 0xbf, 0xbf, 0x4d, 0x1a, + 0xdc, 0x84, 0xaa, 0xe1, 0xae, 0x59, 0x0d, 0x08, 0x38, 0xea, 0x83, 0xca, 0x00, 0x5e, 0xa3, 0xe3, + 0x33, 0xaa, 0x38, 0x0a, 0xca, 0xdc, 0xaa, 0x1c, 0xfe, 0x46, 0xd8, 0x8a, 0xad, 0x1e, 0xa8, 0x0a, + 0x17, 0xbd, 0x0e, 0xa7, 0xb5, 0x1e, 0xa3, 0xd5, 0x3d, 0xaf, 0xbb, 0xbd, 0x59, 0x55, 0x56, 0xe2, + 0x40, 0xed, 0xe6, 0xc9, 0xca, 0x33, 0x46, 0xd8, 0xc5, 0x8d, 0xb4, 0x4e, 0x38, 0x9d, 0x17, 0xbd, + 0x06, 0x53, 0x5e, 0xa7, 0xd6, 0xea, 0xd5, 0xe9, 0x16, 0x11, 0x4d, 0xbe, 0x30, 0xa9, 0x86, 0x31, + 0x7b, 0x74, 0xb8, 0x3c, 0xb5, 0x61, 0xb5, 0xe3, 0x58, 0x2f, 0xc9, 0x45, 0x3f, 0xb6, 0xb8, 0x8a, + 0x11, 0xd7, 0xcd, 0x8f, 0x6d, 0x2e, 0xbb, 0x57, 0x4a, 0x06, 0x10, 0x32, 0x65, 0x00, 0x7f, 0x92, + 0x83, 0x82, 0x4e, 0xc0, 0xa3, 0xab, 0x89, 0x2c, 0xf7, 0x33, 0x7d, 0x59, 0xee, 0x52, 0xda, 0x63, + 0x85, 0x0b, 0x05, 0x8f, 0xf3, 0x5e, 0xfc, 0x76, 0xdb, 0x50, 0x2d, 0xd8, 0x50, 0x54, 0xda, 0xc5, + 0xef, 0xec, 0x7a, 0x0d, 0x13, 0x1c, 0xdf, 0xb0, 0x5c, 0xd9, 0xe8, 0x91, 0xf4, 0xa3, 0xf0, 0x15, + 0x35, 0xf2, 0x6a, 0x63, 0x1d, 0xa4, 0x7b, 0x7b, 0xa7, 0x7a, 0xf7, 0x1d, 0x2d, 0x63, 0x4d, 0x21, + 0x62, 0x83, 0x2c, 0x65, 0xf8, 0x3d, 0xd1, 0xed, 0x09, 0xb5, 0x51, 0x4e, 0x48, 0xc6, 0x5d, 0x85, + 0x88, 0x0d, 0xb2, 0xfb, 0xa9, 0x03, 0x33, 0x5a, 0x07, 0x6b, 0x4d, 0x5a, 0xdb, 0xab, 0x0a, 0xda, + 0x95, 0xde, 0x66, 0x8f, 0x53, 0x9e, 0xf4, 0x36, 0xdf, 0xe5, 0x94, 0x63, 0x45, 0xb1, 0x66, 0x9f, + 0x3b, 0xad, 0xd9, 0xbb, 0x7f, 0xef, 0xc0, 0xb8, 0x72, 0xeb, 0xb2, 0xd8, 0x9f, 0x78, 0xaa, 0x23, + 0x37, 0x54, 0xaa, 0xe3, 0x98, 0x24, 0x54, 0x94, 0x65, 0x19, 0x7b, 0x54, 0x96, 0xc5, 0xfd, 0xb9, + 0x03, 0xf3, 0x69, 0x99, 0xbb, 0x2c, 0xc3, 0x7f, 0x19, 0x26, 0xbb, 0x2d, 0x22, 0x76, 0x7d, 0xd6, + 0x4e, 0x3e, 0xac, 0x6c, 0x99, 0x76, 0x1c, 0xf6, 0x40, 0x0c, 0x80, 0x05, 0x21, 0x42, 0xe0, 0x3e, + 0xdf, 0xc8, 0x7a, 0x23, 0xc4, 0x53, 0x4e, 0x91, 0xb2, 0xc2, 0x26, 0x8e, 0x2d, 0x29, 0xee, 0x9f, + 0x8d, 0xc3, 0x9c, 0x62, 0x19, 0xf5, 0x86, 0x18, 0x65, 0x85, 0xba, 0xf0, 0x94, 0x72, 0xec, 0xfb, + 0x2f, 0x15, 0xbd, 0x68, 0xd7, 0x0c, 0xff, 0x53, 0x1b, 0xa9, 0xbd, 0x1e, 0x0e, 0xa4, 0xe0, 0x01, + 0xb8, 0xfd, 0x37, 0x05, 0xfc, 0xff, 0xbb, 0x29, 0xec, 0xcd, 0x36, 0x71, 0xec, 0x66, 0x1b, 0x78, + 0xaf, 0x4c, 0x3e, 0xc6, 0xbd, 0xd2, 0x6f, 0xeb, 0x8b, 0x99, 0x6c, 0xfd, 0x5f, 0xe6, 0x60, 0x62, + 0x8b, 0xf9, 0x2a, 0x03, 0x7c, 0xfa, 0xc9, 0xc4, 0xbb, 0xb1, 0x07, 0x9e, 0xcb, 0x43, 0x3f, 0xf0, + 0x48, 0x28, 0xf5, 0xb4, 0x33, 0x19, 0x7f, 0xd6, 0xb1, 0xb2, 0x62, 0xf9, 0x2c, 0x1e, 0x78, 0x00, + 0xf9, 0xe8, 0xac, 0xd8, 0x67, 0x0e, 0x94, 0x4c, 0xcf, 0x27, 0x36, 0xfd, 0x62, 0xc6, 0x37, 0x20, + 0xfd, 0xf2, 0xe7, 0xd1, 0x0c, 0xa4, 0xd2, 0xd0, 0xef, 0xc1, 0x5c, 0x37, 0x78, 0x50, 0xda, 0xf2, + 0x5b, 0x5e, 0xcd, 0xa3, 0x41, 0x06, 0xef, 0x6a, 0xc6, 0xd7, 0x36, 0xc5, 0x7e, 0x50, 0xf9, 0x86, + 0x91, 0x3b, 0xb7, 0x95, 0xc4, 0xc5, 0xfd, 0xa2, 0xdc, 0x7f, 0x77, 0x60, 0x3a, 0xa6, 0x7b, 0x54, + 0x03, 0xa8, 0xf9, 0x9d, 0xba, 0x27, 0xc2, 0xb7, 0xed, 0xd2, 0x95, 0x95, 0xe1, 0xb4, 0xba, 0x16, + 0xf0, 0x45, 0x9b, 0x2e, 0x6c, 0xe2, 0xd8, 0x82, 0x45, 0xaf, 0x06, 0x65, 0x26, 0x71, 0x27, 0x46, + 0x97, 0x99, 0x3c, 0x3c, 0x5c, 0x9e, 0x32, 0x63, 0xb2, 0xcb, 0x4e, 0xb2, 0x14, 0x5c, 0xfc, 0x5d, + 0x0e, 0x8a, 0xe1, 0xfc, 0xcf, 0xe0, 0x18, 0xbd, 0x1b, 0x3b, 0x46, 0xaf, 0x66, 0x5c, 0xb9, 0x41, + 0x6f, 0xa4, 0xe8, 0xc3, 0xc4, 0x61, 0xca, 0xba, 0x25, 0x8e, 0x39, 0x4e, 0xff, 0xa4, 0x17, 0x5f, + 0xf7, 0x3d, 0x83, 0x03, 0xb5, 0x1d, 0x3f, 0x50, 0x2b, 0x19, 0x67, 0x33, 0xe0, 0x48, 0xfd, 0xd0, + 0x81, 0x99, 0xc4, 0x21, 0x40, 0xcf, 0xc2, 0xb8, 0x4a, 0xd9, 0x98, 0xfd, 0x15, 0x32, 0x9a, 0x00, + 0x5f, 0xd1, 0xd0, 0x16, 0xcc, 0x93, 0x9e, 0xf0, 0x43, 0xde, 0x9b, 0x1d, 0xb2, 0xd3, 0xa2, 0x3a, + 0x6a, 0x9f, 0xac, 0xfc, 0x92, 0xe1, 0x99, 0x5f, 0x4d, 0xe9, 0x83, 0x53, 0x39, 0xdd, 0x2f, 0x72, + 0x80, 0xc2, 0xc6, 0x2c, 0xa9, 0xce, 0x0f, 0x61, 0x62, 0x57, 0x27, 0x65, 0x1e, 0x2f, 0x57, 0x5d, + 0x29, 0xd9, 0xe9, 0xfa, 0x00, 0x13, 0xbd, 0x7f, 0x32, 0xfb, 0x08, 0xfa, 0xf7, 0x10, 0xba, 0x0f, + 0xb0, 0xeb, 0x75, 0x3c, 0xde, 0x1c, 0xf1, 0x55, 0x4d, 0xdd, 0xe6, 0xb7, 0x42, 0x04, 0x6c, 0xa1, + 0xb9, 0x9f, 0xe4, 0xac, 0xfd, 0xa9, 0xcc, 0xe5, 0x50, 0xeb, 0xfa, 0x62, 0x5c, 0x99, 0xc5, 0xfe, + 0x77, 0x0c, 0x4b, 0x31, 0x63, 0xfb, 0x84, 0x05, 0x29, 0xd5, 0xac, 0xf5, 0x0d, 0xf7, 0x08, 0xf3, + 0xe4, 0xc2, 0x47, 0x4b, 0x7a, 0x8f, 0x30, 0x8e, 0x15, 0x24, 0xfa, 0x8e, 0x1c, 0x2a, 0xed, 0x06, + 0x26, 0x34, 0xb3, 0x4d, 0x10, 0xb4, 0x6b, 0xcf, 0x8f, 0x76, 0x39, 0xd6, 0x80, 0xee, 0x27, 0x13, + 0xd6, 0x86, 0x37, 0x56, 0xfb, 0x0e, 0xa0, 0x16, 0xe1, 0xe2, 0x6d, 0xd2, 0xa9, 0xcb, 0xed, 0x49, + 0x77, 0x19, 0xe5, 0x4d, 0xe3, 0xa1, 0x2d, 0x1a, 0x14, 0xb4, 0xd9, 0xd7, 0x03, 0xa7, 0x70, 0xa1, + 0xab, 0x71, 0xe3, 0xbc, 0x9c, 0x34, 0xce, 0xe7, 0xa3, 0xd3, 0x36, 0x9a, 0x79, 0xb6, 0xb7, 0xfb, + 0xf8, 0x29, 0x6c, 0xf7, 0xdf, 0x85, 0xb9, 0xdd, 0xe4, 0xbb, 0x96, 0x79, 0xe5, 0x7e, 0x63, 0xc4, + 0x67, 0xb1, 0xca, 0xc5, 0xa3, 0xe8, 0x31, 0x24, 0x6a, 0xc6, 0xfd, 0x82, 0x90, 0x1f, 0x54, 0xe1, + 0xa9, 0xe8, 0x53, 0x27, 0x16, 0x86, 0x3e, 0x72, 0x89, 0xb8, 0x35, 0x59, 0x7f, 0xa7, 0x21, 0x71, + 0x4c, 0x40, 0xe2, 0x08, 0x16, 0x4e, 0xf2, 0x08, 0xa2, 0xab, 0x50, 0xaa, 0xf5, 0x18, 0xa3, 0x1d, + 0x21, 0x87, 0xa3, 0x5c, 0xd9, 0x7c, 0x94, 0x20, 0x5e, 0x8b, 0x48, 0xd8, 0xee, 0x87, 0x7e, 0xe4, + 0xc0, 0x45, 0xb9, 0x59, 0x6f, 0x7e, 0x4c, 0x6b, 0x3d, 0xa9, 0x95, 0xa0, 0xf4, 0x76, 0xa1, 0xa4, + 0xb4, 0x31, 0x64, 0x4d, 0x62, 0x35, 0x0d, 0x22, 0xf2, 0xcb, 0x53, 0xc9, 0x38, 0x5d, 0x30, 0xfa, + 0x48, 0x99, 0x0e, 0x41, 0x55, 0xd8, 0xf3, 0xf8, 0xe1, 0x7d, 0xd1, 0x98, 0x1d, 0xa1, 0xcd, 0x8e, + 0xa0, 0xee, 0x4f, 0xf3, 0xb6, 0xb5, 0x1a, 0x2e, 0xe9, 0x70, 0x1f, 0xc6, 0x04, 0xe1, 0x7b, 0xe6, + 0x14, 0x7c, 0x6b, 0x84, 0xfa, 0xaa, 0xe8, 0x2c, 0x28, 0x4f, 0x5c, 0x35, 0x29, 0x4c, 0xb4, 0x08, + 0x39, 0xc2, 0x93, 0x29, 0xe8, 0x55, 0x8e, 0x73, 0x84, 0xa3, 0xf7, 0x61, 0x9c, 0x51, 0xc1, 0x0e, + 0x8c, 0xc1, 0xbe, 0x36, 0x82, 0x71, 0xc2, 0x92, 0x5f, 0xab, 0x41, 0xfd, 0x89, 0x35, 0x22, 0xfa, + 0x2e, 0x14, 0xbc, 0x4e, 0xb7, 0x27, 0x74, 0xb8, 0x36, 0x1a, 0xf6, 0x86, 0x04, 0xb0, 0x5e, 0xc2, + 0x14, 0x1e, 0x36, 0xb8, 0x56, 0xa6, 0x26, 0x7f, 0x6a, 0x99, 0x9a, 0x0f, 0xac, 0x8b, 0x3c, 0x1c, + 0xd1, 0x49, 0x95, 0xd5, 0xff, 0xc4, 0x49, 0xa0, 0x2b, 0x05, 0xa2, 0x77, 0x61, 0x42, 0x78, 0x6d, + 0xea, 0xf7, 0x44, 0x36, 0xdf, 0x6b, 0xbd, 0xc7, 0xd4, 0xb3, 0xb8, 0xb6, 0x86, 0xdb, 0x1a, 0x02, + 0x07, 0x58, 0x32, 0x20, 0xa5, 0x8c, 0xf9, 0x6c, 0xbb, 0x29, 0xad, 0xbb, 0xdf, 0xd2, 0x0e, 0xce, + 0x74, 0x14, 0x90, 0xde, 0x8c, 0x51, 0x71, 0xa2, 0xb7, 0xfb, 0x85, 0xed, 0x25, 0xfe, 0xdf, 0xaf, + 0x3b, 0x24, 0x96, 0xee, 0x65, 0xc7, 0x61, 0x57, 0xf6, 0x45, 0x98, 0xa8, 0xd3, 0x5d, 0xd2, 0x6b, + 0xf5, 0x79, 0x15, 0xeb, 0xba, 0x19, 0x07, 0x74, 0xf7, 0x5f, 0x1c, 0x98, 0x3b, 0xeb, 0x9a, 0xc6, + 0x07, 0x71, 0xdf, 0x7a, 0x14, 0x95, 0x3d, 0xa2, 0x98, 0xf1, 0x01, 0x3c, 0x95, 0x6e, 0x75, 0x86, + 0x50, 0xdc, 0x25, 0x53, 0x60, 0x90, 0xa8, 0x14, 0x88, 0x6a, 0x09, 0xfa, 0xf5, 0xa5, 0x7c, 0xbd, + 0xc8, 0x90, 0x38, 0x23, 0x19, 0x92, 0x70, 0x71, 0x07, 0x1a, 0x92, 0xd0, 0x45, 0xcb, 0x9d, 0xb4, + 0x8b, 0xc6, 0xec, 0x09, 0x99, 0x4f, 0x24, 0xd0, 0x87, 0x66, 0x53, 0x3b, 0x59, 0xca, 0xf2, 0xfb, + 0x60, 0x06, 0x6e, 0xec, 0x2f, 0x1c, 0xb8, 0x98, 0xda, 0x3b, 0xf4, 0x72, 0x73, 0xa7, 0xe8, 0xe5, + 0x3a, 0x27, 0xad, 0xc2, 0xfb, 0x96, 0x0a, 0x83, 0x21, 0x9c, 0x94, 0x01, 0xfe, 0x71, 0x0e, 0x66, + 0x31, 0xed, 0xfa, 0xb1, 0x84, 0xef, 0x56, 0x50, 0x32, 0x9b, 0x21, 0x42, 0x4a, 0x3c, 0x2b, 0x56, + 0x26, 0x62, 0xb5, 0xb2, 0xdf, 0x81, 0x71, 0x95, 0x8b, 0xcd, 0x66, 0xc6, 0xfa, 0x52, 0xd1, 0xfa, + 0x92, 0xd5, 0x49, 0x6d, 0x0d, 0x28, 0x91, 0x55, 0x05, 0x87, 0xb9, 0x01, 0xdf, 0xc8, 0x50, 0x0b, + 0xd2, 0x8f, 0xac, 0x9a, 0xb1, 0x06, 0x74, 0x3f, 0xcd, 0x81, 0x8e, 0xa6, 0xce, 0xc0, 0xca, 0xff, + 0x66, 0xcc, 0xca, 0xaf, 0x0c, 0xeb, 0x13, 0x4a, 0xf5, 0x0c, 0xca, 0x98, 0x24, 0x23, 0xdd, 0xcb, + 0x59, 0x40, 0x1f, 0x9d, 0x2d, 0xf9, 0x47, 0x07, 0x8a, 0xaa, 0xdf, 0x19, 0x58, 0xf3, 0xad, 0xb8, + 0x35, 0x7f, 0x29, 0xc3, 0x2c, 0x06, 0x58, 0xf0, 0x4f, 0xf2, 0x66, 0xf4, 0x61, 0x1c, 0xdd, 0x24, + 0xac, 0x6e, 0x22, 0xc4, 0xe8, 0x04, 0xca, 0x46, 0xac, 0x69, 0xe8, 0xb7, 0x61, 0x96, 0xe9, 0xa2, + 0x20, 0x5a, 0xbf, 0x15, 0x86, 0x6b, 0xf9, 0xcc, 0x55, 0x3b, 0xa6, 0xb2, 0x28, 0x7a, 0x29, 0xc0, + 0x09, 0x54, 0xdc, 0x27, 0x47, 0x86, 0x70, 0xdd, 0xa4, 0x2d, 0x33, 0xa1, 0xcd, 0x1b, 0x23, 0x1a, + 0x4e, 0x1d, 0xc2, 0xf5, 0x35, 0xe3, 0x7e, 0x41, 0xa8, 0x09, 0x53, 0x76, 0xbd, 0xa1, 0xd9, 0x4b, + 0x57, 0xb2, 0x17, 0x36, 0xea, 0x97, 0x61, 0xbb, 0x05, 0xc7, 0x90, 0xdd, 0xc3, 0x02, 0x94, 0xac, + 0xcd, 0x97, 0xc8, 0xbe, 0x4e, 0x9f, 0x4e, 0xf6, 0x35, 0x3d, 0x59, 0x50, 0x1a, 0x29, 0x59, 0x70, + 0x39, 0x9e, 0x2c, 0xf8, 0x66, 0x32, 0x59, 0x00, 0x6a, 0x76, 0xb1, 0x44, 0x01, 0x87, 0xf3, 0x26, + 0x6a, 0x0e, 0x0a, 0x47, 0x33, 0xa5, 0x5f, 0xfa, 0x63, 0x73, 0x24, 0xbd, 0xd8, 0x5b, 0x31, 0x48, + 0x9c, 0x10, 0x21, 0xbd, 0x60, 0xd3, 0x52, 0xed, 0xb5, 0xdb, 0x84, 0x1d, 0x2c, 0x4c, 0xa9, 0x01, + 0x87, 0x5e, 0xf0, 0xad, 0x18, 0x15, 0x27, 0x7a, 0xa3, 0x2d, 0x28, 0xe8, 0xa0, 0xdb, 0x14, 0x23, + 0xbe, 0x9c, 0x25, 0x9e, 0xd7, 0x21, 0x86, 0xfe, 0x1b, 0x1b, 0x1c, 0x3b, 0x5f, 0x52, 0x3c, 0x26, + 0x5f, 0x72, 0x07, 0x90, 0xbf, 0xa3, 0x82, 0x99, 0xfa, 0x6d, 0xfd, 0x01, 0xb0, 0xdc, 0x95, 0x05, + 0x15, 0x8c, 0x87, 0x0b, 0x76, 0xb7, 0xaf, 0x07, 0x4e, 0xe1, 0x92, 0xa7, 0xda, 0x44, 0xea, 0xe1, + 0x51, 0x30, 0xb9, 0x91, 0xac, 0x0e, 0x56, 0x14, 0x7a, 0xce, 0xcb, 0x53, 0xbd, 0x96, 0x40, 0xc5, + 0x7d, 0x72, 0xd0, 0xf7, 0x60, 0x5a, 0x6e, 0xa1, 0x48, 0x30, 0x3c, 0xa6, 0xe0, 0xb9, 0xa3, 0xc3, + 0xe5, 0xe9, 0x4d, 0x1b, 0x12, 0xc7, 0x25, 0xb8, 0x7f, 0x9a, 0x87, 0xf4, 0x3c, 0x41, 0x54, 0x47, + 0xef, 0x3c, 0xa2, 0x8e, 0xfe, 0x3d, 0x28, 0x72, 0x41, 0x98, 0xfe, 0x66, 0x20, 0x37, 0xda, 0x37, + 0x03, 0xd5, 0x00, 0x00, 0x47, 0x58, 0x89, 0xa4, 0x4d, 0xfe, 0x44, 0x93, 0x36, 0x57, 0x00, 0x54, + 0x0c, 0xb7, 0xe6, 0xf7, 0xcc, 0x33, 0xed, 0x74, 0x64, 0x13, 0x6e, 0x86, 0x14, 0x6c, 0xf5, 0x42, + 0xd7, 0xc2, 0x8b, 0x53, 0xbf, 0xcb, 0x5e, 0xea, 0xab, 0x2b, 0x49, 0xa6, 0xfd, 0x52, 0xbe, 0x83, + 0x3d, 0xa6, 0x0e, 0xcd, 0xfd, 0x9f, 0x1c, 0xc4, 0x8c, 0x21, 0xfa, 0xa1, 0x03, 0x73, 0x24, 0xf1, + 0x29, 0x71, 0xe0, 0x4b, 0xfe, 0x7a, 0xb6, 0xef, 0xbb, 0xfb, 0xbe, 0x44, 0x8e, 0x5e, 0xc2, 0x92, + 0x5d, 0x38, 0xee, 0x17, 0x8a, 0xfe, 0xd8, 0x81, 0x0b, 0xa4, 0xff, 0x5b, 0x71, 0xb3, 0xe8, 0x6f, + 0x8e, 0xfc, 0xb1, 0x79, 0xe5, 0xe9, 0xa3, 0xc3, 0xe5, 0xb4, 0xaf, 0xe8, 0x71, 0x9a, 0x38, 0xf4, + 0x01, 0x8c, 0x11, 0xd6, 0x08, 0xb2, 0xc6, 0xd9, 0xc5, 0x06, 0xff, 0x02, 0x20, 0xf2, 0x8e, 0x56, + 0x59, 0x83, 0x63, 0x05, 0xea, 0xfe, 0x2c, 0x0f, 0xb3, 0xc9, 0xba, 0x7b, 0x53, 0xaa, 0x38, 0x96, + 0x5a, 0xaa, 0x28, 0xcf, 0x48, 0x4d, 0x84, 0x75, 0x83, 0xd1, 0x19, 0x91, 0x8d, 0x58, 0xd3, 0xc2, + 0x33, 0x22, 0xf7, 0xa5, 0xc9, 0x64, 0x8d, 0x76, 0x46, 0xe4, 0x4f, 0x1c, 0x61, 0xa1, 0x6b, 0xf1, + 0xbb, 0xc5, 0x4d, 0xde, 0x2d, 0x73, 0xf6, 0x5c, 0x46, 0xcd, 0x45, 0xb7, 0xa1, 0x64, 0xad, 0x83, + 0x39, 0x89, 0xd7, 0x33, 0xeb, 0x3d, 0xda, 0x76, 0x33, 0xfa, 0xff, 0x08, 0x44, 0x14, 0x1b, 0x3f, + 0x3a, 0xf7, 0x4a, 0x5b, 0x8f, 0x95, 0xac, 0x55, 0xea, 0xb2, 0xd0, 0xdc, 0x3d, 0x98, 0x8e, 0x95, + 0xcf, 0x4a, 0x61, 0x41, 0xc9, 0xf0, 0xe8, 0x1f, 0xd6, 0xdf, 0x0b, 0x11, 0xb0, 0x85, 0xa6, 0x9e, + 0x58, 0xdf, 0x23, 0x8c, 0x36, 0xfd, 0x1e, 0xa7, 0x4f, 0xea, 0x13, 0x6b, 0x38, 0xc0, 0x93, 0x7e, + 0x62, 0x8d, 0x80, 0x8f, 0x7f, 0x62, 0x0d, 0xfb, 0x3e, 0xb1, 0x4f, 0xac, 0xe1, 0x08, 0x07, 0x04, + 0x0f, 0xff, 0x9d, 0xb3, 0x66, 0x11, 0x0f, 0x20, 0x72, 0x8f, 0x08, 0x20, 0x1e, 0xc0, 0xa4, 0xd7, + 0x11, 0x94, 0xed, 0x93, 0x96, 0x49, 0x34, 0x67, 0xcd, 0x68, 0x86, 0x53, 0xdd, 0x30, 0x38, 0x38, + 0x44, 0x44, 0x2d, 0xb8, 0x18, 0x3c, 0xbe, 0x30, 0x4a, 0xa2, 0xc7, 0x5f, 0x53, 0x40, 0xf5, 0x7a, + 0xf0, 0x4a, 0x70, 0x2b, 0xad, 0xd3, 0xc3, 0x41, 0x04, 0x9c, 0x0e, 0x8a, 0x38, 0x4c, 0x73, 0x2b, + 0x72, 0x0e, 0x2e, 0xa9, 0x21, 0x1f, 0xae, 0x92, 0xc9, 0x06, 0xab, 0xea, 0xca, 0x06, 0xc5, 0x71, + 0x19, 0xee, 0xbf, 0xe6, 0x61, 0x26, 0xb1, 0xd3, 0x12, 0x11, 0x42, 0xf1, 0x2c, 0x23, 0x84, 0xc2, + 0x48, 0x11, 0x42, 0xba, 0xf3, 0x3a, 0x36, 0x92, 0xf3, 0xfa, 0x96, 0x76, 0x20, 0xcd, 0xca, 0x6d, + 0xac, 0x9b, 0x22, 0xf5, 0x50, 0x9b, 0x9b, 0x36, 0x11, 0xc7, 0xfb, 0xaa, 0x1b, 0xbe, 0xde, 0xff, + 0x45, 0xb6, 0xf1, 0x7e, 0xdf, 0xcc, 0x5a, 0x65, 0x18, 0x02, 0xe8, 0x1b, 0x3e, 0x85, 0x80, 0xd3, + 0xc4, 0x55, 0xee, 0x7c, 0xfe, 0xf5, 0xd2, 0xb9, 0x2f, 0xbf, 0x5e, 0x3a, 0xf7, 0xd5, 0xd7, 0x4b, + 0xe7, 0x7e, 0x70, 0xb4, 0xe4, 0x7c, 0x7e, 0xb4, 0xe4, 0x7c, 0x79, 0xb4, 0xe4, 0x7c, 0x75, 0xb4, + 0xe4, 0xfc, 0xe7, 0xd1, 0x92, 0xf3, 0xa3, 0x9f, 0x2f, 0x9d, 0xbb, 0xff, 0xdc, 0x30, 0xff, 0x4c, + 0xe9, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x21, 0x9f, 0xd7, 0xfe, 0x73, 0x49, 0x00, 0x00, } func (m *AnalysisRunArgument) Marshal() (dAtA []byte, err error) { @@ -4468,25 +4495,15 @@ func (m *PromotionStep) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.Inputs) > 0 { - keysForInputs := make([]string, 0, len(m.Inputs)) - for k := range m.Inputs { - keysForInputs = append(keysForInputs, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForInputs) - for iNdEx := len(keysForInputs) - 1; iNdEx >= 0; iNdEx-- { - v := m.Inputs[string(keysForInputs[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForInputs[iNdEx]) - copy(dAtA[i:], keysForInputs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForInputs[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + for iNdEx := len(m.Inputs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Inputs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x32 } @@ -4540,6 +4557,39 @@ func (m *PromotionStep) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PromotionStepInput) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PromotionStepInput) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PromotionStepInput) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *PromotionStepRetry) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6581,16 +6631,27 @@ func (m *PromotionStep) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } if len(m.Inputs) > 0 { - for k, v := range m.Inputs { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + for _, e := range m.Inputs { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) } } return n } +func (m *PromotionStepInput) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Value) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *PromotionStepRetry) Size() (n int) { if m == nil { return 0 @@ -7702,23 +7763,29 @@ func (this *PromotionStep) String() string { if this == nil { return "nil" } - keysForInputs := make([]string, 0, len(this.Inputs)) - for k := range this.Inputs { - keysForInputs = append(keysForInputs, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForInputs) - mapStringForInputs := "map[string]string{" - for _, k := range keysForInputs { - mapStringForInputs += fmt.Sprintf("%v: %v,", k, this.Inputs[k]) + repeatedStringForInputs := "[]PromotionStepInput{" + for _, f := range this.Inputs { + repeatedStringForInputs += strings.Replace(strings.Replace(f.String(), "PromotionStepInput", "PromotionStepInput", 1), `&`, ``, 1) + "," } - mapStringForInputs += "}" + repeatedStringForInputs += "}" s := strings.Join([]string{`&PromotionStep{`, `Uses:` + fmt.Sprintf("%v", this.Uses) + `,`, `As:` + fmt.Sprintf("%v", this.As) + `,`, `Config:` + strings.Replace(fmt.Sprintf("%v", this.Config), "JSON", "v11.JSON", 1) + `,`, `Retry:` + strings.Replace(this.Retry.String(), "PromotionStepRetry", "PromotionStepRetry", 1) + `,`, `Task:` + strings.Replace(this.Task.String(), "PromotionTaskReference", "PromotionTaskReference", 1) + `,`, - `Inputs:` + mapStringForInputs + `,`, + `Inputs:` + repeatedStringForInputs + `,`, + `}`, + }, "") + return s +} +func (this *PromotionStepInput) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PromotionStepInput{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, `}`, }, "") return s @@ -15676,103 +15743,124 @@ func (m *PromotionStep) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Inputs == nil { - m.Inputs = make(map[string]string) + m.Inputs = append(m.Inputs, PromotionStepInput{}) + if err := m.Inputs[len(m.Inputs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PromotionStepInput) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PromotionStepInput: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PromotionStepInput: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break } } - m.Inputs[mapkey] = mapvalue + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex diff --git a/api/v1alpha1/generated.proto b/api/v1alpha1/generated.proto index a80a965d8..9a44d72f2 100644 --- a/api/v1alpha1/generated.proto +++ b/api/v1alpha1/generated.proto @@ -954,13 +954,13 @@ message PromotionStep { // Retry is the retry policy for this step. optional PromotionStepRetry retry = 4; - // Inputs is a map of inputs that can used to parameterize the execution + // Inputs is a list of inputs that can used to parameterize the execution // of the PromotionStep and can be referenced by expressions in the Config. // // When a PromotionStep is inflated from a PromotionTask, the inputs // specified in the PromotionTask are set based on the inputs specified // in the Config of the PromotionStep that references the PromotionTask. - map inputs = 6; + repeated PromotionStepInput inputs = 6; // Config is opaque configuration for the PromotionStep that is understood // only by each PromotionStep's implementation. It is legal to utilize @@ -969,6 +969,19 @@ message PromotionStep { optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON config = 3; } +// PromotionStepInput describes a single input value for a PromotionStep that may +// be referenced by expressions in the step. +message PromotionStepInput { + // Name is the name of the input to which the value is assigned. + // + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern=^[a-zA-Z_]\w*$ + optional string name = 1; + + // Value is the input value. + optional string value = 2; +} + // PromotionStepRetry describes the retry policy for a PromotionStep. message PromotionStepRetry { // Timeout is the soft maximum interval in which a step that returns a Running @@ -1029,6 +1042,7 @@ message PromotionTaskInput { // // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern=^[a-zA-Z_]\w*$ optional string name = 1; // Default specifies a default value for the parameter. This value will be diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index c0bf07a95..e5ba5a66b 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -1050,10 +1050,8 @@ func (in *PromotionStep) DeepCopyInto(out *PromotionStep) { } if in.Inputs != nil { in, out := &in.Inputs, &out.Inputs - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } + *out = make([]PromotionStepInput, len(*in)) + copy(*out, *in) } if in.Config != nil { in, out := &in.Config, &out.Config @@ -1072,6 +1070,21 @@ func (in *PromotionStep) DeepCopy() *PromotionStep { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PromotionStepInput) DeepCopyInto(out *PromotionStepInput) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromotionStepInput. +func (in *PromotionStepInput) DeepCopy() *PromotionStepInput { + if in == nil { + return nil + } + out := new(PromotionStepInput) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PromotionStepRetry) DeepCopyInto(out *PromotionStepRetry) { *out = *in diff --git a/charts/kargo/resources/crds/kargo.akuity.io_clusterpromotiontasks.yaml b/charts/kargo/resources/crds/kargo.akuity.io_clusterpromotiontasks.yaml index 218080560..046c6c48c 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_clusterpromotiontasks.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_clusterpromotiontasks.yaml @@ -71,6 +71,7 @@ spec: PromotionTask. This name can be used to reference the parameter in the PromotionTaskSpec.Steps. minLength: 1 + pattern: ^[a-zA-Z_]\w*$ type: string required: - name @@ -96,16 +97,32 @@ spec: See https://docs.kargo.io/references/expression-language for details. x-kubernetes-preserve-unknown-fields: true inputs: - additionalProperties: - type: string description: |- - Inputs is a map of inputs that can used to parameterize the execution + Inputs is a list of inputs that can used to parameterize the execution of the PromotionStep and can be referenced by expressions in the Config. When a PromotionStep is inflated from a PromotionTask, the inputs specified in the PromotionTask are set based on the inputs specified in the Config of the PromotionStep that references the PromotionTask. - type: object + items: + description: |- + PromotionStepInput describes a single input value for a PromotionStep that may + be referenced by expressions in the step. + properties: + name: + description: Name is the name of the input to which the + value is assigned. + minLength: 1 + pattern: ^[a-zA-Z_]\w*$ + type: string + value: + description: Value is the input value. + type: string + required: + - name + - value + type: object + type: array retry: description: Retry is the retry policy for this step. properties: diff --git a/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml b/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml index cf234c2c1..8a23d9b42 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_promotions.yaml @@ -99,16 +99,32 @@ spec: See https://docs.kargo.io/references/expression-language for details. x-kubernetes-preserve-unknown-fields: true inputs: - additionalProperties: - type: string description: |- - Inputs is a map of inputs that can used to parameterize the execution + Inputs is a list of inputs that can used to parameterize the execution of the PromotionStep and can be referenced by expressions in the Config. When a PromotionStep is inflated from a PromotionTask, the inputs specified in the PromotionTask are set based on the inputs specified in the Config of the PromotionStep that references the PromotionTask. - type: object + items: + description: |- + PromotionStepInput describes a single input value for a PromotionStep that may + be referenced by expressions in the step. + properties: + name: + description: Name is the name of the input to which the + value is assigned. + minLength: 1 + pattern: ^[a-zA-Z_]\w*$ + type: string + value: + description: Value is the input value. + type: string + required: + - name + - value + type: object + type: array retry: description: Retry is the retry policy for this step. properties: diff --git a/charts/kargo/resources/crds/kargo.akuity.io_promotiontasks.yaml b/charts/kargo/resources/crds/kargo.akuity.io_promotiontasks.yaml index cb0ea9e46..47be8b3de 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_promotiontasks.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_promotiontasks.yaml @@ -71,6 +71,7 @@ spec: PromotionTask. This name can be used to reference the parameter in the PromotionTaskSpec.Steps. minLength: 1 + pattern: ^[a-zA-Z_]\w*$ type: string required: - name @@ -96,16 +97,32 @@ spec: See https://docs.kargo.io/references/expression-language for details. x-kubernetes-preserve-unknown-fields: true inputs: - additionalProperties: - type: string description: |- - Inputs is a map of inputs that can used to parameterize the execution + Inputs is a list of inputs that can used to parameterize the execution of the PromotionStep and can be referenced by expressions in the Config. When a PromotionStep is inflated from a PromotionTask, the inputs specified in the PromotionTask are set based on the inputs specified in the Config of the PromotionStep that references the PromotionTask. - type: object + items: + description: |- + PromotionStepInput describes a single input value for a PromotionStep that may + be referenced by expressions in the step. + properties: + name: + description: Name is the name of the input to which the + value is assigned. + minLength: 1 + pattern: ^[a-zA-Z_]\w*$ + type: string + value: + description: Value is the input value. + type: string + required: + - name + - value + type: object + type: array retry: description: Retry is the retry policy for this step. properties: diff --git a/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml b/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml index 576cfc569..47bd2057a 100644 --- a/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml +++ b/charts/kargo/resources/crds/kargo.akuity.io_stages.yaml @@ -89,16 +89,32 @@ spec: See https://docs.kargo.io/references/expression-language for details. x-kubernetes-preserve-unknown-fields: true inputs: - additionalProperties: - type: string description: |- - Inputs is a map of inputs that can used to parameterize the execution + Inputs is a list of inputs that can used to parameterize the execution of the PromotionStep and can be referenced by expressions in the Config. When a PromotionStep is inflated from a PromotionTask, the inputs specified in the PromotionTask are set based on the inputs specified in the Config of the PromotionStep that references the PromotionTask. - type: object + items: + description: |- + PromotionStepInput describes a single input value for a PromotionStep that may + be referenced by expressions in the step. + properties: + name: + description: Name is the name of the input to + which the value is assigned. + minLength: 1 + pattern: ^[a-zA-Z_]\w*$ + type: string + value: + description: Value is the input value. + type: string + required: + - name + - value + type: object + type: array retry: description: Retry is the retry policy for this step. properties: diff --git a/ui/src/gen/schema/clusterpromotiontasks.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/clusterpromotiontasks.kargo.akuity.io_v1alpha1.json index a45070ad0..ad07ec6a6 100644 --- a/ui/src/gen/schema/clusterpromotiontasks.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/clusterpromotiontasks.kargo.akuity.io_v1alpha1.json @@ -27,6 +27,7 @@ "name": { "description": "Name of the configuration parameter, which should be unique within the\nPromotionTask. This name can be used to reference the parameter in the\nPromotionTaskSpec.Steps.", "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", "type": "string" } }, @@ -51,11 +52,28 @@ "x-kubernetes-preserve-unknown-fields": true }, "inputs": { - "additionalProperties": { - "type": "string" + "description": "Inputs is a list of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", + "items": { + "description": "PromotionStepInput describes a single input value for a PromotionStep that may\nbe referenced by expressions in the step.", + "properties": { + "name": { + "description": "Name is the name of the input to which the value is assigned.", + "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", + "type": "string" + }, + "value": { + "description": "Value is the input value.", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" }, - "description": "Inputs is a map of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", - "type": "object" + "type": "array" }, "retry": { "description": "Retry is the retry policy for this step.", diff --git a/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json index 5860f38d6..a06732321 100644 --- a/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/promotions.kargo.akuity.io_v1alpha1.json @@ -44,11 +44,28 @@ "x-kubernetes-preserve-unknown-fields": true }, "inputs": { - "additionalProperties": { - "type": "string" + "description": "Inputs is a list of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", + "items": { + "description": "PromotionStepInput describes a single input value for a PromotionStep that may\nbe referenced by expressions in the step.", + "properties": { + "name": { + "description": "Name is the name of the input to which the value is assigned.", + "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", + "type": "string" + }, + "value": { + "description": "Value is the input value.", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" }, - "description": "Inputs is a map of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", - "type": "object" + "type": "array" }, "retry": { "description": "Retry is the retry policy for this step.", diff --git a/ui/src/gen/schema/promotiontasks.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/promotiontasks.kargo.akuity.io_v1alpha1.json index 9823e792d..d717d227c 100644 --- a/ui/src/gen/schema/promotiontasks.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/promotiontasks.kargo.akuity.io_v1alpha1.json @@ -27,6 +27,7 @@ "name": { "description": "Name of the configuration parameter, which should be unique within the\nPromotionTask. This name can be used to reference the parameter in the\nPromotionTaskSpec.Steps.", "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", "type": "string" } }, @@ -51,11 +52,28 @@ "x-kubernetes-preserve-unknown-fields": true }, "inputs": { - "additionalProperties": { - "type": "string" + "description": "Inputs is a list of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", + "items": { + "description": "PromotionStepInput describes a single input value for a PromotionStep that may\nbe referenced by expressions in the step.", + "properties": { + "name": { + "description": "Name is the name of the input to which the value is assigned.", + "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", + "type": "string" + }, + "value": { + "description": "Value is the input value.", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" }, - "description": "Inputs is a map of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", - "type": "object" + "type": "array" }, "retry": { "description": "Retry is the retry policy for this step.", diff --git a/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json b/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json index b03c9d453..55a1db092 100644 --- a/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json +++ b/ui/src/gen/schema/stages.kargo.akuity.io_v1alpha1.json @@ -36,11 +36,28 @@ "x-kubernetes-preserve-unknown-fields": true }, "inputs": { - "additionalProperties": { - "type": "string" + "description": "Inputs is a list of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", + "items": { + "description": "PromotionStepInput describes a single input value for a PromotionStep that may\nbe referenced by expressions in the step.", + "properties": { + "name": { + "description": "Name is the name of the input to which the value is assigned.", + "minLength": 1, + "pattern": "^[a-zA-Z_]\\w*$", + "type": "string" + }, + "value": { + "description": "Value is the input value.", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" }, - "description": "Inputs is a map of inputs that can used to parameterize the execution\nof the PromotionStep and can be referenced by expressions in the Config.\n\nWhen a PromotionStep is inflated from a PromotionTask, the inputs\nspecified in the PromotionTask are set based on the inputs specified\nin the Config of the PromotionStep that references the PromotionTask.", - "type": "object" + "type": "array" }, "retry": { "description": "Retry is the retry policy for this step.", diff --git a/ui/src/gen/v1alpha1/generated_pb.ts b/ui/src/gen/v1alpha1/generated_pb.ts index 0168eee5b..7b15f1172 100644 --- a/ui/src/gen/v1alpha1/generated_pb.ts +++ b/ui/src/gen/v1alpha1/generated_pb.ts @@ -2963,16 +2963,16 @@ export class PromotionStep extends Message { retry?: PromotionStepRetry; /** - * Inputs is a map of inputs that can used to parameterize the execution + * Inputs is a list of inputs that can used to parameterize the execution * of the PromotionStep and can be referenced by expressions in the Config. * * When a PromotionStep is inflated from a PromotionTask, the inputs * specified in the PromotionTask are set based on the inputs specified * in the Config of the PromotionStep that references the PromotionTask. * - * @generated from field: map inputs = 6; + * @generated from field: repeated github.com.akuity.kargo.api.v1alpha1.PromotionStepInput inputs = 6; */ - inputs: { [key: string]: string } = {}; + inputs: PromotionStepInput[] = []; /** * Config is opaque configuration for the PromotionStep that is understood @@ -2996,7 +2996,7 @@ export class PromotionStep extends Message { { no: 5, name: "task", kind: "message", T: PromotionTaskReference, opt: true }, { no: 2, name: "as", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 4, name: "retry", kind: "message", T: PromotionStepRetry, opt: true }, - { no: 6, name: "inputs", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, + { no: 6, name: "inputs", kind: "message", T: PromotionStepInput, repeated: true }, { no: 3, name: "config", kind: "message", T: JSON, opt: true }, ]); @@ -3017,6 +3017,59 @@ export class PromotionStep extends Message { } } +/** + * PromotionStepInput describes a single input value for a PromotionStep that may + * be referenced by expressions in the step. + * + * @generated from message github.com.akuity.kargo.api.v1alpha1.PromotionStepInput + */ +export class PromotionStepInput extends Message { + /** + * Name is the name of the input to which the value is assigned. + * + * +kubebuilder:validation:MinLength=1 + * +kubebuilder:validation:Pattern=^[a-zA-Z_]\w*$ + * + * @generated from field: optional string name = 1; + */ + name?: string; + + /** + * Value is the input value. + * + * @generated from field: optional string value = 2; + */ + value?: string; + + constructor(data?: PartialMessage) { + super(); + proto2.util.initPartial(data, this); + } + + static readonly runtime: typeof proto2 = proto2; + static readonly typeName = "github.com.akuity.kargo.api.v1alpha1.PromotionStepInput"; + static readonly fields: FieldList = proto2.util.newFieldList(() => [ + { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 2, name: "value", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PromotionStepInput { + return new PromotionStepInput().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PromotionStepInput { + return new PromotionStepInput().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PromotionStepInput { + return new PromotionStepInput().fromJsonString(jsonString, options); + } + + static equals(a: PromotionStepInput | PlainMessage | undefined, b: PromotionStepInput | PlainMessage | undefined): boolean { + return proto2.util.equals(PromotionStepInput, a, b); + } +} + /** * PromotionStepRetry describes the retry policy for a PromotionStep. * @@ -3160,6 +3213,7 @@ export class PromotionTaskInput extends Message { * * +kubebuilder:validation:Required * +kubebuilder:validation:MinLength=1 + * +kubebuilder:validation:Pattern=^[a-zA-Z_]\w*$ * * @generated from field: optional string name = 1; */