From 7404e67fa999fd77eabb752e5c8d33d83aacc5ee Mon Sep 17 00:00:00 2001 From: Edwin Ouko Date: Thu, 16 Apr 2026 17:34:51 +0000 Subject: [PATCH 1/3] Add AZURESTORAGEBLOB_SOURCE to ImageSource enum for new Azure blob storage download provider in AGC Add new ImageSource enum value for Azure Storage Blob as an image source option (AZURESTORAGEBLOB_SOURCE = 4) in the protobuf definition and regenerated Go code. --- rpc/common/moc_common_common.pb.go | 376 +++++++++++++++-------------- rpc/common/moc_common_common.proto | 9 +- 2 files changed, 195 insertions(+), 190 deletions(-) diff --git a/rpc/common/moc_common_common.pb.go b/rpc/common/moc_common_common.pb.go index fcd4669c..90f49076 100644 --- a/rpc/common/moc_common_common.pb.go +++ b/rpc/common/moc_common_common.pb.go @@ -885,10 +885,11 @@ func (ProviderAccessOperation) EnumDescriptor() ([]byte, []int) { type ImageSource int32 const ( - ImageSource_LOCAL_SOURCE ImageSource = 0 - ImageSource_SFS_SOURCE ImageSource = 1 - ImageSource_HTTP_SOURCE ImageSource = 2 - ImageSource_CLONE_SOURCE ImageSource = 3 + ImageSource_LOCAL_SOURCE ImageSource = 0 + ImageSource_SFS_SOURCE ImageSource = 1 + ImageSource_HTTP_SOURCE ImageSource = 2 + ImageSource_CLONE_SOURCE ImageSource = 3 + ImageSource_AZURESTORAGEBLOB_SOURCE ImageSource = 4 ) var ImageSource_name = map[int32]string{ @@ -896,13 +897,15 @@ var ImageSource_name = map[int32]string{ 1: "SFS_SOURCE", 2: "HTTP_SOURCE", 3: "CLONE_SOURCE", + 4: "AZURESTORAGEBLOB_SOURCE", } var ImageSource_value = map[string]int32{ - "LOCAL_SOURCE": 0, - "SFS_SOURCE": 1, - "HTTP_SOURCE": 2, - "CLONE_SOURCE": 3, + "LOCAL_SOURCE": 0, + "SFS_SOURCE": 1, + "HTTP_SOURCE": 2, + "CLONE_SOURCE": 3, + "AZURESTORAGEBLOB_SOURCE": 4, } func (x ImageSource) String() string { @@ -1843,23 +1846,23 @@ func init() { func init() { proto.RegisterFile("moc_common_common.proto", fileDescriptor_681f78e46755eb93) } var fileDescriptor_681f78e46755eb93 = []byte{ - // 3016 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x59, 0x7d, 0x88, 0x24, 0x57, - 0xb5, 0x9f, 0xfe, 0x9e, 0xb9, 0x3d, 0x33, 0x7d, 0xe7, 0xce, 0xcc, 0x4e, 0xef, 0x67, 0x76, 0x7b, - 0x93, 0x7d, 0xf3, 0xfa, 0x25, 0xb3, 0x79, 0xfb, 0xf2, 0xf2, 0x3e, 0x44, 0xa1, 0xa6, 0xbb, 0x66, - 0xa6, 0xdd, 0x9e, 0xee, 0xa6, 0xba, 0x67, 0x36, 0x09, 0x48, 0x53, 0x53, 0x7d, 0xa7, 0xb7, 0xdc, - 0xea, 0xba, 0xcd, 0xad, 0xaa, 0x59, 0x27, 0x7f, 0x19, 0x30, 0xa2, 0xa2, 0xa0, 0x62, 0x40, 0x21, - 0x8a, 0x82, 0x82, 0x82, 0xf1, 0x03, 0x14, 0x14, 0x62, 0x4c, 0x40, 0xc1, 0x8f, 0x04, 0x0c, 0xf8, - 0x87, 0xd1, 0x44, 0x13, 0x3f, 0x40, 0x41, 0x41, 0xc5, 0xc4, 0x44, 0x13, 0x91, 0x73, 0xeb, 0xde, - 0x9e, 0xae, 0x9e, 0x5a, 0x11, 0xfc, 0x67, 0xb7, 0xea, 0x77, 0x7e, 0xe7, 0xdc, 0x73, 0xce, 0x3d, - 0xf7, 0x9c, 0x5b, 0xd3, 0x68, 0x65, 0xc0, 0xac, 0xae, 0xc5, 0x06, 0x03, 0xe6, 0xca, 0xff, 0xd6, - 0x86, 0x9c, 0xf9, 0x8c, 0xa4, 0x06, 0xcc, 0x3a, 0x75, 0xbe, 0xcf, 0x58, 0xdf, 0xa1, 0x97, 0x05, - 0xb4, 0x17, 0xec, 0x5f, 0xee, 0x51, 0xcf, 0xe2, 0xf6, 0xd0, 0x67, 0x3c, 0xa4, 0x95, 0x76, 0x50, - 0x46, 0xe7, 0x9c, 0x71, 0x52, 0x44, 0xb9, 0x6d, 0xea, 0x79, 0x66, 0x9f, 0x16, 0x13, 0xe7, 0x13, - 0xab, 0x33, 0x86, 0x7a, 0x25, 0x04, 0xa5, 0x2b, 0xac, 0x47, 0x8b, 0xc9, 0xf3, 0x89, 0xd5, 0x39, - 0x43, 0x3c, 0x93, 0x73, 0x08, 0xb5, 0x4c, 0x6e, 0x0e, 0xa8, 0x4f, 0xb9, 0x57, 0x4c, 0x09, 0x85, + // 3035 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x59, 0x7d, 0x88, 0x64, 0x47, + 0xb5, 0x9f, 0xfe, 0x9e, 0xa9, 0x9e, 0x99, 0xae, 0xa9, 0x99, 0xd9, 0xe9, 0xfd, 0xcc, 0x6e, 0x6f, + 0xb2, 0x6f, 0x5e, 0xbf, 0x64, 0x36, 0x6f, 0x5f, 0x5e, 0xde, 0x87, 0x28, 0xdc, 0xe9, 0xbe, 0x33, + 0xd3, 0x6e, 0x4f, 0x77, 0x73, 0xbb, 0x67, 0x36, 0x09, 0x48, 0x73, 0xe7, 0x76, 0x4d, 0xef, 0x75, + 0x6f, 0xdf, 0x6a, 0xea, 0xde, 0x3b, 0xeb, 0xe4, 0x2f, 0x03, 0x46, 0x54, 0x14, 0x54, 0x0c, 0x28, + 0x44, 0x51, 0x50, 0x50, 0x30, 0x7e, 0x80, 0x82, 0x42, 0x8c, 0x09, 0x28, 0xf8, 0x91, 0x80, 0x01, + 0xff, 0x30, 0x9a, 0x68, 0xe2, 0x07, 0x28, 0x28, 0xa8, 0x98, 0x98, 0x68, 0x22, 0x72, 0xea, 0x56, + 0xf5, 0xf4, 0xed, 0xb9, 0x2b, 0x82, 0xff, 0xec, 0xde, 0xfa, 0x9d, 0xdf, 0x39, 0x75, 0xce, 0xa9, + 0x53, 0xa7, 0xaa, 0xa6, 0xd1, 0xca, 0x80, 0x59, 0x5d, 0x8b, 0x0d, 0x06, 0xcc, 0x95, 0xff, 0xad, + 0x0d, 0x39, 0xf3, 0x19, 0x49, 0x0d, 0x98, 0x75, 0xea, 0x7c, 0x9f, 0xb1, 0xbe, 0x43, 0x2f, 0x0b, + 0x68, 0x2f, 0xd8, 0xbf, 0xdc, 0xa3, 0x9e, 0xc5, 0xed, 0xa1, 0xcf, 0x78, 0x48, 0x2b, 0xed, 0xa0, + 0x8c, 0xce, 0x39, 0xe3, 0xa4, 0x88, 0x72, 0xdb, 0xd4, 0xf3, 0xcc, 0x3e, 0x2d, 0x26, 0xce, 0x27, + 0x56, 0x67, 0x0c, 0x35, 0x24, 0x04, 0xa5, 0x2b, 0xac, 0x47, 0x8b, 0xc9, 0xf3, 0x89, 0xd5, 0x39, + 0x43, 0x7c, 0x93, 0x73, 0x08, 0xb5, 0x4c, 0x6e, 0x0e, 0xa8, 0x4f, 0xb9, 0x57, 0x4c, 0x09, 0x85, 0x31, 0xa4, 0xf4, 0x70, 0x02, 0x15, 0x5a, 0x9c, 0x1d, 0xd8, 0x9e, 0xcd, 0xdc, 0xb6, 0x6f, 0xfa, - 0x81, 0x47, 0xfe, 0x07, 0xcd, 0x5a, 0x01, 0xe7, 0xd4, 0xf5, 0x01, 0x08, 0x97, 0x99, 0xbf, 0xb2, + 0x81, 0x47, 0xfe, 0x07, 0xcd, 0x5a, 0x01, 0xe7, 0xd4, 0xf5, 0x01, 0x08, 0xa7, 0x99, 0xbf, 0xb2, 0xb8, 0x36, 0x60, 0xd6, 0x5a, 0x84, 0x4b, 0x8d, 0x08, 0x91, 0xfc, 0x1f, 0x9a, 0x1b, 0x72, 0x7a, 0x60, 0xb3, 0xc0, 0x0b, 0x35, 0x93, 0xb7, 0xd6, 0x8c, 0x32, 0x4b, 0x8f, 0x26, 0xd0, 0x7c, 0x95, 0xdd, 0x74, 0x1d, 0x66, 0xf6, 0xa4, 0x1b, 0x6b, 0x88, 0x0c, 0x39, 0xeb, 0x73, 0xea, 0x79, 0x2d, @@ -1868,169 +1871,170 @@ var fileDescriptor_681f78e46755eb93 = []byte{ 0xd8, 0xb7, 0x1d, 0x3a, 0xce, 0x4e, 0x09, 0xf6, 0x24, 0x5c, 0x3a, 0x40, 0xd9, 0x2d, 0x6a, 0x3a, 0xfe, 0x75, 0x72, 0x4f, 0x6c, 0x72, 0xb0, 0x08, 0x31, 0xa4, 0xc4, 0x65, 0xe6, 0xde, 0xf8, 0xcc, 0x1c, 0x57, 0x9b, 0x48, 0xcb, 0x43, 0x09, 0x54, 0xd8, 0x35, 0x1d, 0xbb, 0x67, 0xfa, 0x2a, 0x73, - 0xe4, 0x4e, 0x94, 0xb6, 0x60, 0x9b, 0xc3, 0x95, 0x8b, 0xc2, 0xc4, 0x04, 0x07, 0xb6, 0xde, 0x10, - 0x2c, 0x28, 0x97, 0x81, 0x2c, 0x97, 0x64, 0x58, 0x2e, 0xf2, 0x95, 0x5c, 0x42, 0xf3, 0x9c, 0x42, - 0x29, 0x52, 0x37, 0x54, 0x95, 0xe5, 0x31, 0x81, 0x96, 0x0c, 0x84, 0xa3, 0xe6, 0x03, 0x8f, 0xbc, - 0x05, 0x15, 0x0e, 0xa2, 0x4b, 0x16, 0x13, 0xe7, 0x53, 0xab, 0xf9, 0x2b, 0x4b, 0x71, 0xee, 0x18, - 0x93, 0xe4, 0xd2, 0x05, 0x94, 0xdb, 0xa5, 0x1c, 0xaa, 0x81, 0x9c, 0x40, 0x59, 0x37, 0x18, 0xec, - 0x51, 0x2e, 0xcb, 0x59, 0xbe, 0x95, 0xde, 0x86, 0x0a, 0x2d, 0xc7, 0xb4, 0xe8, 0x40, 0x26, 0x31, - 0xf0, 0xc8, 0xdd, 0x28, 0x1b, 0x3e, 0x45, 0x62, 0x9f, 0x60, 0x75, 0x0e, 0x87, 0xd4, 0x90, 0xbc, - 0xf1, 0xc3, 0x92, 0x8c, 0x1c, 0x96, 0xd2, 0xd3, 0x09, 0x34, 0xbb, 0x33, 0xfc, 0x17, 0xca, 0xed, - 0x4e, 0xb4, 0x10, 0x0c, 0xe3, 0x8b, 0xed, 0xb8, 0xe0, 0x9f, 0x2f, 0x35, 0x72, 0x0f, 0x2a, 0x38, - 0xa6, 0xe7, 0x87, 0xbe, 0x89, 0x23, 0x5f, 0x4c, 0x9f, 0x4f, 0xac, 0xe6, 0xaf, 0x20, 0x11, 0xad, - 0x40, 0x8c, 0x49, 0x4a, 0xe9, 0xf1, 0x94, 0xca, 0x0d, 0xb9, 0x88, 0xb2, 0xd7, 0x45, 0x45, 0x09, - 0xe7, 0xf3, 0x57, 0xf2, 0x63, 0x45, 0x66, 0x48, 0x11, 0xa9, 0x8a, 0x68, 0xc3, 0x03, 0x69, 0xbb, - 0x7d, 0x99, 0xd6, 0xa4, 0x50, 0x58, 0x3a, 0x7e, 0x5e, 0x03, 0xcf, 0x88, 0xe1, 0x93, 0x55, 0x34, - 0x03, 0x8e, 0x84, 0x5e, 0xa6, 0x8e, 0x79, 0x79, 0x24, 0x24, 0x97, 0x50, 0xee, 0x20, 0xdc, 0x70, - 0x19, 0xcd, 0x6c, 0x58, 0x28, 0x21, 0x66, 0x28, 0x21, 0x79, 0x13, 0x9a, 0xef, 0x45, 0xda, 0x40, - 0x31, 0x23, 0xe8, 0x61, 0x0f, 0x89, 0x76, 0x08, 0x63, 0x82, 0x4a, 0x34, 0x84, 0x0f, 0x26, 0x2a, - 0xb5, 0x98, 0x15, 0xea, 0xcb, 0x31, 0x65, 0x19, 0x78, 0xc6, 0x31, 0x3a, 0x14, 0xf6, 0x30, 0x5a, - 0x4f, 0xc5, 0xdc, 0x78, 0x52, 0xa2, 0x32, 0x63, 0x92, 0x4c, 0xfe, 0x1b, 0xcd, 0x06, 0x63, 0x55, - 0x55, 0x9c, 0x16, 0xca, 0x0b, 0x42, 0x79, 0xbc, 0xdc, 0x8c, 0x08, 0xad, 0xb4, 0x86, 0xb2, 0xba, - 0xeb, 0xdb, 0xfe, 0x21, 0xb9, 0x1d, 0xcd, 0xd5, 0x3c, 0xb1, 0xcc, 0x75, 0xe6, 0xf4, 0xe4, 0xa9, - 0x98, 0x36, 0xa2, 0x60, 0xe9, 0x2e, 0x94, 0xea, 0x98, 0x7d, 0x82, 0x51, 0xea, 0x06, 0x3d, 0x94, - 0x07, 0x07, 0x1e, 0xc9, 0x12, 0xca, 0x1c, 0x98, 0x4e, 0xa0, 0xca, 0x3d, 0x7c, 0x29, 0xdd, 0x8e, - 0xd2, 0x1d, 0xb3, 0xef, 0x91, 0x33, 0x28, 0xed, 0x9b, 0x7d, 0x4f, 0x9e, 0xd5, 0x69, 0xe1, 0x55, - 0xc7, 0xec, 0x1b, 0x02, 0x2d, 0x5d, 0x44, 0x73, 0x0f, 0x30, 0x97, 0x1a, 0x74, 0x9f, 0x72, 0xea, - 0x5a, 0x62, 0xa0, 0xb8, 0xe6, 0x40, 0xcd, 0x19, 0xf1, 0x5c, 0xea, 0xa3, 0x05, 0x20, 0x55, 0x98, - 0xbb, 0x6f, 0xf7, 0x03, 0x2e, 0x72, 0x47, 0x56, 0x51, 0xe6, 0x41, 0xe6, 0x52, 0x65, 0x98, 0x08, - 0xc3, 0x11, 0x5b, 0x46, 0x48, 0x80, 0x73, 0xe0, 0xf9, 0xdc, 0xb6, 0xfc, 0x51, 0x26, 0x85, 0xa7, - 0xd3, 0xc6, 0x24, 0x5c, 0xfa, 0x5f, 0x84, 0xb4, 0xa1, 0xad, 0xba, 0xc4, 0x12, 0xca, 0x0c, 0xcc, - 0xb7, 0xb3, 0x30, 0x1d, 0x73, 0x46, 0xf8, 0x22, 0x50, 0xdb, 0x65, 0x5c, 0x8e, 0xbc, 0xf0, 0xa5, - 0x7c, 0x13, 0xcd, 0x34, 0x87, 0x54, 0xba, 0x96, 0x43, 0xa9, 0x4d, 0xbd, 0x83, 0xa7, 0xc8, 0x34, - 0x4a, 0xb7, 0x9a, 0xed, 0x0e, 0x4e, 0x10, 0x84, 0xb2, 0x55, 0xbd, 0xae, 0x77, 0x74, 0x9c, 0x84, - 0xe7, 0x9d, 0x56, 0x55, 0xeb, 0xe8, 0x38, 0x05, 0xcf, 0xb5, 0xed, 0x56, 0xd3, 0xe8, 0xe0, 0x34, - 0x3c, 0xeb, 0xf7, 0x89, 0xe7, 0x0c, 0x99, 0x45, 0xd3, 0xbb, 0x5a, 0xbd, 0x26, 0x58, 0x59, 0x92, - 0x47, 0xb9, 0xad, 0xfb, 0xab, 0x06, 0xbc, 0xe4, 0x40, 0x54, 0xad, 0xb5, 0x2b, 0xcd, 0x5d, 0xdd, - 0xc0, 0xd3, 0xe5, 0x3f, 0x26, 0xd1, 0x7c, 0x74, 0xcc, 0x01, 0x7b, 0xa7, 0x71, 0xb5, 0xd1, 0xbc, - 0xd6, 0xc0, 0x53, 0xc0, 0xae, 0x18, 0xba, 0xd6, 0xa9, 0x35, 0x36, 0x71, 0x02, 0x44, 0xe2, 0x4d, - 0xaf, 0xe2, 0x24, 0x59, 0x40, 0x73, 0xe1, 0x4b, 0x77, 0x43, 0xab, 0xd5, 0xf5, 0x2a, 0x4e, 0x09, - 0xdb, 0xe0, 0x26, 0xb0, 0xd3, 0x40, 0x08, 0x9d, 0x56, 0x84, 0x0c, 0x18, 0x08, 0xa1, 0x2a, 0xce, - 0x02, 0x5b, 0x04, 0x02, 0xec, 0x1c, 0xb0, 0xc3, 0xb0, 0x14, 0x7b, 0x5a, 0x78, 0x22, 0xa0, 0x2a, - 0x9e, 0x21, 0x18, 0xcd, 0xb6, 0x8c, 0xe6, 0x6e, 0xad, 0x5d, 0x6b, 0x36, 0x40, 0x03, 0x91, 0x02, - 0xca, 0x8f, 0x10, 0xbd, 0x8a, 0xf3, 0x64, 0x09, 0xe1, 0x11, 0xa0, 0xac, 0xcc, 0x12, 0x82, 0xe6, - 0xab, 0x7a, 0x44, 0x75, 0x2e, 0x74, 0x6d, 0x5c, 0x79, 0x9e, 0x9c, 0x40, 0x64, 0x0c, 0x52, 0xea, - 0x85, 0x50, 0x5d, 0x44, 0xd1, 0xd2, 0x1b, 0x55, 0x50, 0xc7, 0x64, 0x0e, 0xcd, 0x84, 0x69, 0x87, - 0xd7, 0x05, 0x08, 0x24, 0x7c, 0xd5, 0xab, 0x98, 0x80, 0xed, 0xf0, 0x4d, 0xd9, 0x58, 0x04, 0xfe, - 0x4e, 0xab, 0xde, 0xd4, 0x84, 0xfa, 0x52, 0x79, 0x03, 0x2d, 0x6f, 0xd9, 0xfd, 0xeb, 0xda, 0x81, - 0x69, 0x3b, 0xe6, 0x9e, 0xed, 0xd8, 0xfe, 0x61, 0x98, 0xfa, 0x25, 0x84, 0x65, 0xea, 0xbb, 0x5b, - 0x5a, 0xb7, 0xdd, 0x81, 0x1d, 0x9b, 0x82, 0x8d, 0x6d, 0x77, 0xb4, 0xf5, 0xba, 0x1e, 0xee, 0x80, - 0x72, 0x23, 0x59, 0x0e, 0x50, 0x7e, 0x6c, 0x10, 0x83, 0x1b, 0x8d, 0x66, 0x47, 0xed, 0x5c, 0x16, - 0x25, 0x9b, 0x57, 0x43, 0x8d, 0x6b, 0x9a, 0x21, 0xe2, 0x4e, 0x86, 0xdb, 0x59, 0xeb, 0xd4, 0x2a, - 0x5a, 0x1d, 0xa7, 0x40, 0xb4, 0x5d, 0x6b, 0xb7, 0xc3, 0xdd, 0x12, 0x7b, 0xb7, 0x69, 0x68, 0x55, - 0xb1, 0x51, 0xa1, 0xad, 0x8d, 0xe6, 0x4e, 0x43, 0xee, 0x54, 0xa3, 0xd9, 0x31, 0x74, 0xad, 0x7a, - 0x3f, 0xce, 0x95, 0xef, 0x45, 0xd3, 0x2d, 0x6e, 0x33, 0x0e, 0x67, 0x5f, 0x6c, 0xe8, 0x86, 0xb6, - 0x53, 0x87, 0x7a, 0xcd, 0xa1, 0x54, 0xbd, 0x79, 0x2d, 0x2c, 0xd7, 0x6d, 0xbd, 0x5a, 0xdb, 0xd9, - 0xc6, 0x49, 0x28, 0xe2, 0xad, 0xda, 0xe6, 0x16, 0x4e, 0x95, 0x1f, 0x49, 0xa0, 0xc5, 0x98, 0xa9, - 0x0f, 0x51, 0x37, 0x9a, 0x55, 0xbd, 0xbb, 0xd3, 0x30, 0x74, 0xad, 0xb2, 0x25, 0x22, 0x9d, 0x82, - 0xbc, 0xeb, 0x8d, 0x4e, 0xad, 0x73, 0x7f, 0x57, 0xf9, 0x98, 0x20, 0xa7, 0xd1, 0x4a, 0xa5, 0x5e, - 0xd3, 0x1b, 0x9d, 0x6e, 0x58, 0x94, 0x72, 0x9f, 0x76, 0x0c, 0x38, 0x17, 0x04, 0xcd, 0x6f, 0x34, - 0x8d, 0x6d, 0xad, 0xd3, 0xad, 0x35, 0x44, 0xf1, 0xe3, 0x14, 0x14, 0x4d, 0xad, 0xb1, 0xd1, 0xec, - 0x1e, 0x85, 0x09, 0xbb, 0x23, 0x91, 0x6d, 0xad, 0x53, 0xd9, 0xc2, 0x99, 0xf2, 0x5b, 0xd1, 0x62, - 0xcc, 0x40, 0x26, 0xcb, 0x68, 0x41, 0x6d, 0x46, 0xab, 0xae, 0x55, 0xf4, 0x6d, 0xbd, 0x01, 0x41, - 0xe6, 0x51, 0x4e, 0xab, 0xd7, 0x36, 0xa1, 0x68, 0x12, 0x50, 0x82, 0x8d, 0x66, 0xa7, 0xab, 0x80, - 0x64, 0x99, 0x23, 0x54, 0x71, 0x6c, 0xea, 0xfa, 0xc2, 0x04, 0x46, 0xb3, 0x95, 0x66, 0xa3, 0x63, - 0x34, 0xeb, 0xad, 0xba, 0xd6, 0x50, 0x51, 0xdd, 0xd7, 0xd1, 0x8d, 0x86, 0x56, 0x0f, 0x23, 0xc1, - 0x09, 0xc8, 0x10, 0xc4, 0x8f, 0x93, 0x64, 0x06, 0x65, 0xb4, 0xea, 0x76, 0xad, 0x81, 0x53, 0x50, - 0x32, 0xeb, 0x9a, 0xa1, 0x6f, 0xeb, 0x1d, 0xad, 0x8e, 0xd3, 0x60, 0x09, 0xea, 0x67, 0x5d, 0xab, - 0x6b, 0x8d, 0x8a, 0x6e, 0xe0, 0x8c, 0xc8, 0x2b, 0x34, 0x87, 0x6c, 0xf9, 0x0a, 0x22, 0x5a, 0xe0, - 0x5f, 0xa7, 0xae, 0x6f, 0x5b, 0x22, 0xb5, 0x62, 0xed, 0x79, 0x84, 0xda, 0x7a, 0x7d, 0xa3, 0x1d, - 0x7a, 0x16, 0x9e, 0x64, 0x4d, 0xbe, 0x25, 0xca, 0xef, 0xcb, 0xa2, 0x59, 0x71, 0xee, 0x7b, 0x94, - 0x0b, 0x7a, 0x01, 0xe5, 0x35, 0xf7, 0x50, 0x41, 0xa1, 0xa7, 0xbb, 0x36, 0xf7, 0x03, 0xd3, 0xd9, - 0x36, 0xad, 0xeb, 0xb6, 0x4b, 0x71, 0x82, 0x9c, 0x42, 0x27, 0xa2, 0x58, 0xdb, 0x32, 0x1d, 0xda, - 0xa6, 0x3e, 0x4e, 0x0a, 0x0f, 0x99, 0xd9, 0x5b, 0x37, 0x1d, 0xd3, 0xb5, 0x28, 0xc7, 0xa9, 0x31, - 0x0b, 0x0d, 0xea, 0xdf, 0x64, 0xfc, 0x06, 0x4e, 0x93, 0x45, 0x54, 0x90, 0xd8, 0x96, 0xc9, 0x7b, - 0x55, 0xdb, 0xbb, 0x81, 0x33, 0xa0, 0xba, 0x69, 0x3a, 0x0e, 0xe5, 0x87, 0xb5, 0x81, 0xd9, 0xa7, - 0x38, 0x4b, 0x56, 0xd0, 0x62, 0x74, 0xa1, 0x50, 0x90, 0x13, 0xb5, 0x12, 0x1a, 0xab, 0xb9, 0x3e, - 0xe5, 0xfb, 0xa6, 0x45, 0xf1, 0x34, 0x38, 0x5f, 0xa1, 0xdc, 0xb7, 0xf7, 0x21, 0x01, 0x14, 0xcf, - 0x40, 0x25, 0x5e, 0xa5, 0x87, 0x18, 0x89, 0xb3, 0x43, 0x2d, 0x4e, 0x7d, 0x9c, 0x87, 0x0c, 0x5c, - 0xa5, 0x87, 0xbb, 0x66, 0xe0, 0xf8, 0x78, 0x56, 0x1c, 0xda, 0x1e, 0x15, 0x13, 0x0c, 0xcf, 0x41, - 0x36, 0x0d, 0xe6, 0x50, 0x3c, 0x0f, 0x5e, 0xc3, 0x93, 0xe6, 0x79, 0x76, 0xdf, 0x85, 0x92, 0xc0, - 0x05, 0xc8, 0xe5, 0xd5, 0x60, 0x8f, 0x72, 0x97, 0xfa, 0xd4, 0xc3, 0x58, 0xf4, 0x41, 0x27, 0xf0, - 0x7c, 0xca, 0xf1, 0x82, 0xd8, 0x64, 0xe6, 0xfa, 0x9c, 0x39, 0x2d, 0xc7, 0x74, 0x29, 0x26, 0xb0, - 0x8d, 0x9b, 0x9c, 0x05, 0x43, 0xbc, 0x28, 0xf6, 0x96, 0xf5, 0x28, 0x5e, 0x82, 0xf5, 0xea, 0x2c, - 0xdc, 0x1f, 0xbc, 0x0c, 0x71, 0xb4, 0x7d, 0xc6, 0xcd, 0x3e, 0x8c, 0x25, 0xdf, 0xb4, 0x5d, 0xca, - 0xf1, 0x09, 0x88, 0x43, 0xa2, 0x1b, 0xb6, 0x43, 0xf1, 0xca, 0x18, 0xad, 0x6a, 0x73, 0x6a, 0xf9, - 0x8c, 0x1f, 0xe2, 0x22, 0xac, 0xd8, 0x0e, 0xf6, 0xc2, 0xaf, 0x2d, 0x30, 0x77, 0x12, 0x1c, 0xda, - 0xb5, 0x87, 0x2d, 0xc6, 0x1c, 0x7c, 0x4a, 0x1c, 0x6b, 0xd3, 0x12, 0x2f, 0xa7, 0xc1, 0xa4, 0xee, - 0x5b, 0x3d, 0xe5, 0xee, 0x19, 0x88, 0x05, 0x80, 0x36, 0xe5, 0x07, 0x94, 0xe3, 0xb3, 0xb0, 0xc4, - 0xba, 0xc9, 0xe9, 0x36, 0xf5, 0x8f, 0x76, 0xfa, 0x1c, 0x14, 0x7f, 0x85, 0x53, 0x91, 0x1f, 0xd3, - 0xd9, 0x66, 0xae, 0xed, 0x33, 0x8e, 0x6f, 0x03, 0xd3, 0x75, 0xd6, 0xef, 0xdb, 0x6e, 0x1f, 0x9f, - 0x87, 0x88, 0x0c, 0x6a, 0xb1, 0x03, 0xca, 0x0f, 0xf1, 0x05, 0x08, 0xba, 0x4a, 0xf7, 0x82, 0x3e, - 0x2e, 0xc1, 0x19, 0x1b, 0x99, 0xdc, 0x62, 0x9e, 0x8f, 0x2f, 0x42, 0x56, 0xa3, 0x35, 0x8a, 0x6f, - 0x07, 0x5a, 0xd8, 0xbe, 0x94, 0xfd, 0x3b, 0x80, 0x56, 0x67, 0x7d, 0xdb, 0x3a, 0x2a, 0x99, 0x4b, - 0x50, 0x32, 0x91, 0x4e, 0x49, 0x7d, 0xfc, 0x6f, 0xa4, 0x88, 0x96, 0x24, 0xa3, 0x4d, 0xad, 0x00, - 0x5a, 0x51, 0x98, 0xf1, 0x55, 0xc8, 0x38, 0x8c, 0x71, 0xfc, 0xef, 0x60, 0x6c, 0x74, 0xae, 0x43, - 0x69, 0x19, 0x8c, 0xb5, 0x82, 0x3d, 0xc7, 0xb6, 0x6a, 0x2d, 0xad, 0xd7, 0x83, 0xfb, 0x31, 0xfe, - 0x8f, 0xf2, 0x13, 0xcb, 0x68, 0x45, 0x55, 0xbe, 0x66, 0x59, 0xd4, 0xf3, 0x8e, 0x86, 0x71, 0x01, - 0xe5, 0x77, 0x5c, 0x6f, 0x48, 0x2d, 0x7b, 0xdf, 0xa6, 0x3d, 0x3c, 0x05, 0x2b, 0x47, 0x23, 0xe9, - 0x82, 0xc7, 0x2e, 0xee, 0x91, 0x15, 0x44, 0xc6, 0xaa, 0xb0, 0x5b, 0xe1, 0x14, 0x8a, 0xf1, 0x3b, - 0x89, 0x49, 0xc1, 0xce, 0xb0, 0x07, 0x82, 0xef, 0x26, 0xc8, 0x12, 0x2a, 0x8c, 0x0b, 0x36, 0xa9, - 0x8f, 0xbf, 0x77, 0x8c, 0x5e, 0xa5, 0x0e, 0xf5, 0x29, 0xfe, 0x7e, 0x82, 0x2c, 0x23, 0x3c, 0x2e, - 0x68, 0xdb, 0x7d, 0x17, 0x3f, 0x9d, 0x20, 0x27, 0xd0, 0xc2, 0x38, 0x6c, 0x50, 0x97, 0xde, 0xc4, - 0xcf, 0x08, 0xeb, 0xaa, 0xc2, 0x95, 0x33, 0x9f, 0x4f, 0x46, 0x50, 0xe9, 0xc9, 0x63, 0x51, 0xd4, - 0xa0, 0x07, 0xec, 0x06, 0xc5, 0x5f, 0x98, 0x40, 0x19, 0x34, 0x6c, 0xfc, 0xc5, 0x24, 0xb9, 0x0d, - 0x9d, 0x52, 0x68, 0x4c, 0xbc, 0x1f, 0x4c, 0xdd, 0x8a, 0x20, 0x57, 0xfb, 0x50, 0x8a, 0x9c, 0x43, - 0x27, 0xe3, 0x08, 0xa1, 0xe7, 0x1f, 0x4e, 0x91, 0x02, 0x42, 0x57, 0xe9, 0xc8, 0xe9, 0x3f, 0x8d, - 0x00, 0x69, 0xe1, 0x65, 0x68, 0xec, 0x79, 0x00, 0x74, 0xd7, 0xe2, 0x87, 0x43, 0x1f, 0xbf, 0x32, - 0x42, 0xaa, 0x34, 0x44, 0xfe, 0x3c, 0x42, 0xae, 0x71, 0x73, 0x08, 0xcd, 0xe0, 0x55, 0xe8, 0x48, - 0x73, 0xc2, 0x8c, 0x7b, 0x53, 0x62, 0xaf, 0x41, 0xa3, 0x85, 0xae, 0x10, 0x26, 0xf3, 0x2f, 0xa3, - 0x95, 0x76, 0x29, 0xb7, 0xf7, 0x0f, 0xf1, 0x5f, 0x47, 0x80, 0x0c, 0xff, 0xf5, 0x11, 0x50, 0x1b, - 0x0c, 0x19, 0xf7, 0xf1, 0x1b, 0x23, 0x40, 0x7f, 0x87, 0x00, 0xfe, 0x96, 0x22, 0xa7, 0xd0, 0x72, - 0xb4, 0x7b, 0xa9, 0x48, 0x7e, 0x94, 0x8e, 0x91, 0xc9, 0xa0, 0x9e, 0x8b, 0x93, 0xc9, 0xbd, 0xff, - 0x71, 0x9a, 0x9c, 0x41, 0x2b, 0x13, 0x32, 0x39, 0x4a, 0x29, 0xfe, 0x49, 0x9a, 0x9c, 0x44, 0x4b, - 0x13, 0xd2, 0xb6, 0x6f, 0x72, 0x1f, 0x3f, 0x9f, 0x26, 0xc5, 0xc9, 0x56, 0xda, 0x6d, 0xfb, 0x6c, - 0x88, 0x5f, 0x88, 0x53, 0x32, 0xa8, 0x47, 0x7d, 0xfc, 0xd3, 0x34, 0xb9, 0x84, 0x2e, 0x1c, 0x13, - 0x0d, 0x4d, 0x9b, 0x77, 0x37, 0x03, 0xea, 0xf9, 0x5d, 0xad, 0x0f, 0x7d, 0xf1, 0x67, 0x71, 0x26, - 0x5a, 0x66, 0xe0, 0x51, 0xfc, 0x62, 0xec, 0xba, 0xe6, 0x01, 0xc5, 0x2f, 0xa5, 0xc9, 0x45, 0x74, - 0xee, 0x98, 0xf1, 0x01, 0x3b, 0xa0, 0xdd, 0x9a, 0xc7, 0xba, 0x62, 0x24, 0xfc, 0x3c, 0x4d, 0x2e, - 0xa0, 0x33, 0x31, 0x6e, 0x77, 0x37, 0xb9, 0x69, 0xd1, 0xfd, 0xc0, 0xc1, 0xbf, 0x80, 0x59, 0x32, + 0xe4, 0x4e, 0x94, 0xb6, 0x60, 0x99, 0xc3, 0x99, 0x8b, 0xc2, 0xc4, 0x04, 0x07, 0x96, 0xde, 0x10, + 0x2c, 0x28, 0x97, 0x81, 0x2c, 0x97, 0x64, 0x58, 0x2e, 0x72, 0x48, 0x2e, 0xa1, 0x79, 0x4e, 0xa1, + 0x14, 0xa9, 0x1b, 0xaa, 0xca, 0xf2, 0x98, 0x40, 0x4b, 0x06, 0xc2, 0x51, 0xf3, 0x81, 0x47, 0xde, + 0x82, 0x0a, 0x07, 0xd1, 0x29, 0x8b, 0x89, 0xf3, 0xa9, 0xd5, 0xfc, 0x95, 0xa5, 0x38, 0x77, 0x8c, + 0x49, 0x72, 0xe9, 0x02, 0xca, 0xed, 0x52, 0x0e, 0xd5, 0x40, 0x4e, 0xa0, 0xac, 0x1b, 0x0c, 0xf6, + 0x28, 0x97, 0xe5, 0x2c, 0x47, 0xa5, 0xb7, 0xa1, 0x42, 0xcb, 0x31, 0x2d, 0x3a, 0x90, 0x49, 0x0c, + 0x3c, 0x72, 0x37, 0xca, 0x86, 0x5f, 0x91, 0xd8, 0x27, 0x58, 0x9d, 0xc3, 0x21, 0x35, 0x24, 0x6f, + 0x7c, 0xb3, 0x24, 0x23, 0x9b, 0xa5, 0xf4, 0x74, 0x02, 0xcd, 0xee, 0x0c, 0xff, 0x85, 0x72, 0xbb, + 0x13, 0x2d, 0x04, 0xc3, 0xf8, 0x62, 0x3b, 0x2e, 0xf8, 0xe7, 0x4b, 0x8d, 0xdc, 0x83, 0x0a, 0x8e, + 0xe9, 0xf9, 0xa1, 0x6f, 0x62, 0xcb, 0x17, 0xd3, 0xe7, 0x13, 0xab, 0xf9, 0x2b, 0x48, 0x44, 0x2b, + 0x10, 0x63, 0x92, 0x52, 0x7a, 0x3c, 0xa5, 0x72, 0x43, 0x2e, 0xa2, 0xec, 0x75, 0x51, 0x51, 0xc2, + 0xf9, 0xfc, 0x95, 0xfc, 0x58, 0x91, 0x19, 0x52, 0x44, 0xaa, 0x22, 0xda, 0x70, 0x43, 0xda, 0x6e, + 0x5f, 0xa6, 0x35, 0x29, 0x14, 0x96, 0x8e, 0xef, 0xd7, 0xc0, 0x33, 0x62, 0xf8, 0x64, 0x15, 0xcd, + 0x80, 0x23, 0xa1, 0x97, 0xa9, 0x63, 0x5e, 0x1e, 0x09, 0xc9, 0x25, 0x94, 0x3b, 0x08, 0x17, 0x5c, + 0x46, 0x33, 0x1b, 0x16, 0x4a, 0x88, 0x19, 0x4a, 0x48, 0xde, 0x84, 0xe6, 0x7b, 0x91, 0x36, 0x50, + 0xcc, 0x08, 0x7a, 0xd8, 0x43, 0xa2, 0x1d, 0xc2, 0x98, 0xa0, 0x12, 0x0d, 0xe1, 0x83, 0x89, 0x4a, + 0x2d, 0x66, 0x85, 0xfa, 0x72, 0x4c, 0x59, 0x06, 0x9e, 0x71, 0x8c, 0x0e, 0x85, 0x3d, 0x8c, 0xd6, + 0x53, 0x31, 0x37, 0x9e, 0x94, 0xa8, 0xcc, 0x98, 0x24, 0x93, 0xff, 0x46, 0xb3, 0xc1, 0x58, 0x55, + 0x15, 0xa7, 0x85, 0xf2, 0x82, 0x50, 0x1e, 0x2f, 0x37, 0x23, 0x42, 0x2b, 0xad, 0xa1, 0xac, 0xee, + 0xfa, 0xb6, 0x7f, 0x48, 0x6e, 0x47, 0x73, 0x35, 0x4f, 0x4c, 0x73, 0x9d, 0x39, 0x3d, 0xb9, 0x2b, + 0xa6, 0x8d, 0x28, 0x58, 0xba, 0x0b, 0xa5, 0x3a, 0x66, 0x9f, 0x60, 0x94, 0xba, 0x41, 0x0f, 0xe5, + 0xc6, 0x81, 0x4f, 0xb2, 0x84, 0x32, 0x07, 0xa6, 0x13, 0xa8, 0x72, 0x0f, 0x07, 0xa5, 0xdb, 0x51, + 0xba, 0x63, 0xf6, 0x3d, 0x72, 0x06, 0xa5, 0x7d, 0xb3, 0xef, 0xc9, 0xbd, 0x3a, 0x2d, 0xbc, 0xea, + 0x98, 0x7d, 0x43, 0xa0, 0xa5, 0x8b, 0x68, 0xee, 0x01, 0xe6, 0x52, 0x83, 0xee, 0x53, 0x4e, 0x5d, + 0x4b, 0x1c, 0x28, 0xae, 0x39, 0x50, 0xe7, 0x8c, 0xf8, 0x2e, 0xf5, 0xd1, 0x02, 0x90, 0x2a, 0xcc, + 0xdd, 0xb7, 0xfb, 0x01, 0x17, 0xb9, 0x23, 0xab, 0x28, 0xf3, 0x20, 0x73, 0xa9, 0x32, 0x4c, 0x84, + 0xe1, 0x88, 0x2d, 0x23, 0x24, 0xc0, 0x3e, 0xf0, 0x7c, 0x6e, 0x5b, 0xfe, 0x28, 0x93, 0xc2, 0xd3, + 0x69, 0x63, 0x12, 0x2e, 0xfd, 0x2f, 0x42, 0xda, 0xd0, 0x56, 0x5d, 0x62, 0x09, 0x65, 0x06, 0xe6, + 0xdb, 0x59, 0x98, 0x8e, 0x39, 0x23, 0x1c, 0x08, 0xd4, 0x76, 0x19, 0x97, 0x47, 0x5e, 0x38, 0x28, + 0xdf, 0x44, 0x33, 0xcd, 0x21, 0x95, 0xae, 0xe5, 0x50, 0x6a, 0x53, 0xef, 0xe0, 0x29, 0x32, 0x8d, + 0xd2, 0xad, 0x66, 0xbb, 0x83, 0x13, 0x04, 0xa1, 0x6c, 0x55, 0xaf, 0xeb, 0x1d, 0x1d, 0x27, 0xe1, + 0x7b, 0xa7, 0x55, 0xd5, 0x3a, 0x3a, 0x4e, 0xc1, 0x77, 0x6d, 0xbb, 0xd5, 0x34, 0x3a, 0x38, 0x0d, + 0xdf, 0xfa, 0x7d, 0xe2, 0x3b, 0x43, 0x66, 0xd1, 0xf4, 0xae, 0x56, 0xaf, 0x09, 0x56, 0x96, 0xe4, + 0x51, 0x6e, 0xeb, 0xfe, 0xaa, 0x01, 0x83, 0x1c, 0x88, 0xaa, 0xb5, 0x76, 0xa5, 0xb9, 0xab, 0x1b, + 0x78, 0xba, 0xfc, 0xc7, 0x24, 0x9a, 0x8f, 0x1e, 0x73, 0xc0, 0xde, 0x69, 0x5c, 0x6d, 0x34, 0xaf, + 0x35, 0xf0, 0x14, 0xb0, 0x2b, 0x86, 0xae, 0x75, 0x6a, 0x8d, 0x4d, 0x9c, 0x00, 0x91, 0x18, 0xe9, + 0x55, 0x9c, 0x24, 0x0b, 0x68, 0x2e, 0x1c, 0x74, 0x37, 0xb4, 0x5a, 0x5d, 0xaf, 0xe2, 0x94, 0xb0, + 0x0d, 0x6e, 0x02, 0x3b, 0x0d, 0x84, 0xd0, 0x69, 0x45, 0xc8, 0x80, 0x81, 0x10, 0xaa, 0xe2, 0x2c, + 0xb0, 0x45, 0x20, 0xc0, 0xce, 0x01, 0x3b, 0x0c, 0x4b, 0xb1, 0xa7, 0x85, 0x27, 0x02, 0xaa, 0xe2, + 0x19, 0x82, 0xd1, 0x6c, 0xcb, 0x68, 0xee, 0xd6, 0xda, 0xb5, 0x66, 0x03, 0x34, 0x10, 0x29, 0xa0, + 0xfc, 0x08, 0xd1, 0xab, 0x38, 0x4f, 0x96, 0x10, 0x1e, 0x01, 0xca, 0xca, 0x2c, 0x21, 0x68, 0xbe, + 0xaa, 0x47, 0x54, 0xe7, 0x42, 0xd7, 0xc6, 0x95, 0xe7, 0xc9, 0x09, 0x44, 0xc6, 0x20, 0xa5, 0x5e, + 0x08, 0xd5, 0x45, 0x14, 0x2d, 0xbd, 0x51, 0x05, 0x75, 0x4c, 0xe6, 0xd0, 0x4c, 0x98, 0x76, 0x18, + 0x2e, 0x40, 0x20, 0xe1, 0x50, 0xaf, 0x62, 0x02, 0xb6, 0xc3, 0x91, 0xb2, 0xb1, 0x08, 0xfc, 0x9d, + 0x56, 0xbd, 0xa9, 0x09, 0xf5, 0xa5, 0xf2, 0x06, 0x5a, 0xde, 0xb2, 0xfb, 0xd7, 0xb5, 0x03, 0xd3, + 0x76, 0xcc, 0x3d, 0xdb, 0xb1, 0xfd, 0xc3, 0x30, 0xf5, 0x4b, 0x08, 0xcb, 0xd4, 0x77, 0xb7, 0xb4, + 0x6e, 0xbb, 0x03, 0x2b, 0x36, 0x05, 0x0b, 0xdb, 0xee, 0x68, 0xeb, 0x75, 0x3d, 0x5c, 0x01, 0xe5, + 0x46, 0xb2, 0x1c, 0xa0, 0xfc, 0xd8, 0x41, 0x0c, 0x6e, 0x34, 0x9a, 0x1d, 0xb5, 0x72, 0x59, 0x94, + 0x6c, 0x5e, 0x0d, 0x35, 0xae, 0x69, 0x86, 0x88, 0x3b, 0x19, 0x2e, 0x67, 0xad, 0x53, 0xab, 0x68, + 0x75, 0x9c, 0x02, 0xd1, 0x76, 0xad, 0xdd, 0x0e, 0x57, 0x4b, 0xac, 0xdd, 0xa6, 0xa1, 0x55, 0xc5, + 0x42, 0x85, 0xb6, 0x36, 0x9a, 0x3b, 0x0d, 0xb9, 0x52, 0x8d, 0x66, 0xc7, 0xd0, 0xb5, 0xea, 0xfd, + 0x38, 0x57, 0xbe, 0x17, 0x4d, 0xb7, 0xb8, 0xcd, 0x38, 0xec, 0x7d, 0xb1, 0xa0, 0x1b, 0xda, 0x4e, + 0x1d, 0xea, 0x35, 0x87, 0x52, 0xf5, 0xe6, 0xb5, 0xb0, 0x5c, 0xb7, 0xf5, 0x6a, 0x6d, 0x67, 0x1b, + 0x27, 0xa1, 0x88, 0xb7, 0x6a, 0x9b, 0x5b, 0x38, 0x55, 0x7e, 0x24, 0x81, 0x16, 0x63, 0x4e, 0x7d, + 0x88, 0xba, 0xd1, 0xac, 0xea, 0xdd, 0x9d, 0x86, 0xa1, 0x6b, 0x95, 0x2d, 0x11, 0xe9, 0x14, 0xe4, + 0x5d, 0x6f, 0x74, 0x6a, 0x9d, 0xfb, 0xbb, 0xca, 0xc7, 0x04, 0x39, 0x8d, 0x56, 0x2a, 0xf5, 0x9a, + 0xde, 0xe8, 0x74, 0xc3, 0xa2, 0x94, 0xeb, 0xb4, 0x63, 0xc0, 0xbe, 0x20, 0x68, 0x7e, 0xa3, 0x69, + 0x6c, 0x6b, 0x9d, 0x6e, 0xad, 0x21, 0x8a, 0x1f, 0xa7, 0xa0, 0x68, 0x6a, 0x8d, 0x8d, 0x66, 0xf7, + 0x28, 0x4c, 0x58, 0x1d, 0x89, 0x6c, 0x6b, 0x9d, 0xca, 0x16, 0xce, 0x94, 0xdf, 0x8a, 0x16, 0x63, + 0x0e, 0x64, 0xb2, 0x8c, 0x16, 0xd4, 0x62, 0xb4, 0xea, 0x5a, 0x45, 0xdf, 0xd6, 0x1b, 0x10, 0x64, + 0x1e, 0xe5, 0xb4, 0x7a, 0x6d, 0x13, 0x8a, 0x26, 0x01, 0x25, 0xd8, 0x68, 0x76, 0xba, 0x0a, 0x48, + 0x96, 0x39, 0x42, 0x15, 0xc7, 0xa6, 0xae, 0x2f, 0x4c, 0x60, 0x34, 0x5b, 0x69, 0x36, 0x3a, 0x46, + 0xb3, 0xde, 0xaa, 0x6b, 0x0d, 0x15, 0xd5, 0x7d, 0x1d, 0xdd, 0x68, 0x68, 0xf5, 0x30, 0x12, 0x9c, + 0x80, 0x0c, 0x41, 0xfc, 0x38, 0x49, 0x66, 0x50, 0x46, 0xab, 0x6e, 0xd7, 0x1a, 0x38, 0x05, 0x25, + 0xb3, 0xae, 0x19, 0xfa, 0xb6, 0xde, 0xd1, 0xea, 0x38, 0x0d, 0x96, 0xa0, 0x7e, 0xd6, 0xb5, 0xba, + 0xd6, 0xa8, 0xe8, 0x06, 0xce, 0x88, 0xbc, 0x42, 0x73, 0xc8, 0x96, 0xaf, 0x20, 0xa2, 0x05, 0xfe, + 0x75, 0xea, 0xfa, 0xb6, 0x25, 0x52, 0x2b, 0xe6, 0x9e, 0x47, 0xa8, 0xad, 0xd7, 0x37, 0xda, 0xa1, + 0x67, 0xe1, 0x4e, 0xd6, 0xe4, 0x28, 0x51, 0x7e, 0x5f, 0x16, 0xcd, 0x8a, 0x7d, 0xdf, 0xa3, 0x5c, + 0xd0, 0x0b, 0x28, 0xaf, 0xb9, 0x87, 0x0a, 0x0a, 0x3d, 0xdd, 0xb5, 0xb9, 0x1f, 0x98, 0xce, 0xb6, + 0x69, 0x5d, 0xb7, 0x5d, 0x8a, 0x13, 0xe4, 0x14, 0x3a, 0x11, 0xc5, 0xda, 0x96, 0xe9, 0xd0, 0x36, + 0xf5, 0x71, 0x52, 0x78, 0xc8, 0xcc, 0xde, 0xba, 0xe9, 0x98, 0xae, 0x45, 0x39, 0x4e, 0x8d, 0x59, + 0x68, 0x50, 0xff, 0x26, 0xe3, 0x37, 0x70, 0x9a, 0x2c, 0xa2, 0x82, 0xc4, 0xb6, 0x4c, 0xde, 0xab, + 0xda, 0xde, 0x0d, 0x9c, 0x01, 0xd5, 0x4d, 0xd3, 0x71, 0x28, 0x3f, 0xac, 0x0d, 0xcc, 0x3e, 0xc5, + 0x59, 0xb2, 0x82, 0x16, 0xa3, 0x13, 0x85, 0x82, 0x9c, 0xa8, 0x95, 0xd0, 0x58, 0xcd, 0xf5, 0x29, + 0xdf, 0x37, 0x2d, 0x8a, 0xa7, 0xc1, 0xf9, 0x0a, 0xe5, 0xbe, 0xbd, 0x0f, 0x09, 0xa0, 0x78, 0x06, + 0x2a, 0xf1, 0x2a, 0x3d, 0xc4, 0x48, 0xec, 0x1d, 0x6a, 0x71, 0xea, 0xe3, 0x3c, 0x64, 0xe0, 0x2a, + 0x3d, 0xdc, 0x35, 0x03, 0xc7, 0xc7, 0xb3, 0x62, 0xd3, 0xf6, 0xa8, 0x38, 0xc1, 0xf0, 0x1c, 0x64, + 0xd3, 0x60, 0x0e, 0xc5, 0xf3, 0xe0, 0x35, 0x7c, 0x69, 0x9e, 0x67, 0xf7, 0x5d, 0x28, 0x09, 0x5c, + 0x80, 0x5c, 0x5e, 0x0d, 0xf6, 0x28, 0x77, 0xa9, 0x4f, 0x3d, 0x8c, 0x45, 0x1f, 0x74, 0x02, 0xcf, + 0xa7, 0x1c, 0x2f, 0x88, 0x45, 0x66, 0xae, 0xcf, 0x99, 0xd3, 0x72, 0x4c, 0x97, 0x62, 0x02, 0xcb, + 0xb8, 0xc9, 0x59, 0x30, 0xc4, 0x8b, 0x62, 0x6d, 0x59, 0x8f, 0xe2, 0x25, 0x98, 0xaf, 0xce, 0xc2, + 0xf5, 0xc1, 0xcb, 0x10, 0x47, 0xdb, 0x67, 0xdc, 0xec, 0xc3, 0xb1, 0xe4, 0x9b, 0xb6, 0x4b, 0x39, + 0x3e, 0x01, 0x71, 0x48, 0x74, 0xc3, 0x76, 0x28, 0x5e, 0x19, 0xa3, 0x55, 0x6d, 0x4e, 0x2d, 0x9f, + 0xf1, 0x43, 0x5c, 0x84, 0x19, 0xdb, 0xc1, 0x5e, 0xf8, 0xda, 0x02, 0x73, 0x27, 0xc1, 0xa1, 0x5d, + 0x7b, 0xd8, 0x62, 0xcc, 0xc1, 0xa7, 0xc4, 0xb6, 0x36, 0x2d, 0x31, 0x38, 0x0d, 0x26, 0x75, 0xdf, + 0xea, 0x29, 0x77, 0xcf, 0x40, 0x2c, 0x00, 0xb4, 0x29, 0x3f, 0xa0, 0x1c, 0x9f, 0x85, 0x29, 0xd6, + 0x4d, 0x4e, 0xb7, 0xa9, 0x7f, 0xb4, 0xd2, 0xe7, 0xa0, 0xf8, 0x2b, 0x9c, 0x8a, 0xfc, 0x98, 0xce, + 0x36, 0x73, 0x6d, 0x9f, 0x71, 0x7c, 0x1b, 0x98, 0xae, 0xb3, 0x7e, 0xdf, 0x76, 0xfb, 0xf8, 0x3c, + 0x44, 0x64, 0x50, 0x8b, 0x1d, 0x50, 0x7e, 0x88, 0x2f, 0x40, 0xd0, 0x55, 0xba, 0x17, 0xf4, 0x71, + 0x09, 0xf6, 0xd8, 0xc8, 0xe4, 0x16, 0xf3, 0x7c, 0x7c, 0x11, 0xb2, 0x1a, 0xad, 0x51, 0x7c, 0x3b, + 0xd0, 0xc2, 0xf6, 0xa5, 0xec, 0xdf, 0x01, 0xb4, 0x3a, 0xeb, 0xdb, 0xd6, 0x51, 0xc9, 0x5c, 0x82, + 0x92, 0x89, 0x74, 0x4a, 0xea, 0xe3, 0x7f, 0x23, 0x45, 0xb4, 0x24, 0x19, 0x6d, 0x6a, 0x05, 0xd0, + 0x8a, 0xc2, 0x8c, 0xaf, 0x42, 0xc6, 0xe1, 0x18, 0xc7, 0xff, 0x0e, 0xc6, 0x46, 0xfb, 0x3a, 0x94, + 0x96, 0xc1, 0x58, 0x2b, 0xd8, 0x73, 0x6c, 0xab, 0xd6, 0xd2, 0x7a, 0x3d, 0xb8, 0x1f, 0xe3, 0xff, + 0x28, 0x3f, 0xb1, 0x8c, 0x56, 0x54, 0xe5, 0x6b, 0x96, 0x45, 0x3d, 0xef, 0xe8, 0x30, 0x2e, 0xa0, + 0xfc, 0x8e, 0xeb, 0x0d, 0xa9, 0x65, 0xef, 0xdb, 0xb4, 0x87, 0xa7, 0x60, 0xe6, 0x68, 0x24, 0x5d, + 0xf0, 0xd8, 0xc5, 0x3d, 0xb2, 0x82, 0xc8, 0x58, 0x15, 0x76, 0x2b, 0x9c, 0x42, 0x31, 0x7e, 0x27, + 0x31, 0x29, 0xd8, 0x19, 0xf6, 0x40, 0xf0, 0xdd, 0x04, 0x59, 0x42, 0x85, 0x71, 0xc1, 0x26, 0xf5, + 0xf1, 0xf7, 0x8e, 0xd1, 0xab, 0xd4, 0xa1, 0x3e, 0xc5, 0xdf, 0x4f, 0x90, 0x65, 0x84, 0xc7, 0x05, + 0x6d, 0xbb, 0xef, 0xe2, 0xa7, 0x13, 0xe4, 0x04, 0x5a, 0x18, 0x87, 0x0d, 0xea, 0xd2, 0x9b, 0xf8, + 0x19, 0x61, 0x5d, 0x55, 0xb8, 0x72, 0xe6, 0xf3, 0xc9, 0x08, 0x2a, 0x3d, 0x79, 0x2c, 0x8a, 0x1a, + 0xf4, 0x80, 0xdd, 0xa0, 0xf8, 0x0b, 0x13, 0x28, 0x83, 0x86, 0x8d, 0xbf, 0x98, 0x24, 0xb7, 0xa1, + 0x53, 0x0a, 0x8d, 0x89, 0xf7, 0x83, 0xa9, 0x5b, 0x11, 0xe4, 0x6c, 0x1f, 0x4a, 0x91, 0x73, 0xe8, + 0x64, 0x1c, 0x21, 0xf4, 0xfc, 0xc3, 0x29, 0x52, 0x40, 0xe8, 0x2a, 0x1d, 0x39, 0xfd, 0xa7, 0x11, + 0x20, 0x2d, 0xbc, 0x0c, 0x8d, 0x3d, 0x0f, 0x80, 0xee, 0x5a, 0xfc, 0x70, 0xe8, 0xe3, 0x57, 0x46, + 0x48, 0x95, 0x86, 0xc8, 0x9f, 0x47, 0xc8, 0x35, 0x6e, 0x0e, 0xa1, 0x19, 0xbc, 0x0a, 0x1d, 0x69, + 0x4e, 0x98, 0x71, 0x6f, 0x4a, 0xec, 0x35, 0x68, 0xb4, 0xd0, 0x15, 0xc2, 0x64, 0xfe, 0x65, 0x34, + 0xd3, 0x2e, 0xe5, 0xf6, 0xfe, 0x21, 0xfe, 0xeb, 0x08, 0x90, 0xe1, 0xbf, 0x3e, 0x02, 0x6a, 0x83, + 0x21, 0xe3, 0x3e, 0x7e, 0x63, 0x04, 0xe8, 0xef, 0x10, 0xc0, 0xdf, 0x52, 0xe4, 0x14, 0x5a, 0x8e, + 0x76, 0x2f, 0x15, 0xc9, 0x8f, 0xd2, 0x31, 0x32, 0x19, 0xd4, 0x73, 0x71, 0x32, 0xb9, 0xf6, 0x3f, + 0x4e, 0x93, 0x33, 0x68, 0x65, 0x42, 0x26, 0x8f, 0x52, 0x8a, 0x7f, 0x92, 0x26, 0x27, 0xd1, 0xd2, + 0x84, 0xb4, 0xed, 0x9b, 0xdc, 0xc7, 0xcf, 0xa7, 0x49, 0x71, 0xb2, 0x95, 0x76, 0xdb, 0x3e, 0x1b, + 0xe2, 0x17, 0xe2, 0x94, 0x0c, 0xea, 0x51, 0x1f, 0xff, 0x34, 0x4d, 0x2e, 0xa1, 0x0b, 0xc7, 0x44, + 0x43, 0xd3, 0xe6, 0xdd, 0xcd, 0x80, 0x7a, 0x7e, 0x57, 0xeb, 0x43, 0x5f, 0xfc, 0x59, 0x9c, 0x89, + 0x96, 0x19, 0x78, 0x14, 0xbf, 0x18, 0x3b, 0xaf, 0x79, 0x40, 0xf1, 0x4b, 0x69, 0x72, 0x11, 0x9d, + 0x3b, 0x66, 0x7c, 0xc0, 0x0e, 0x68, 0xb7, 0xe6, 0xb1, 0xae, 0x38, 0x12, 0x7e, 0x9e, 0x26, 0x17, + 0xd0, 0x99, 0x18, 0xb7, 0xbb, 0x9b, 0xdc, 0xb4, 0xe8, 0x7e, 0xe0, 0xe0, 0x5f, 0xc0, 0x59, 0x32, 0x2f, 0xdb, 0x9a, 0xca, 0xef, 0xe3, 0x99, 0x71, 0x50, 0x26, 0xf6, 0x1b, 0x19, 0xf0, 0x45, 0x81, - 0x30, 0xa3, 0x54, 0x33, 0x7c, 0x22, 0x03, 0x29, 0x1f, 0xd1, 0xc5, 0x77, 0x99, 0x92, 0x7d, 0x33, - 0x23, 0xce, 0xa1, 0x94, 0x6d, 0x52, 0x5f, 0x09, 0x9e, 0xcc, 0x88, 0x73, 0x78, 0x24, 0x80, 0xfe, - 0xee, 0xe1, 0xa7, 0x32, 0x70, 0x0e, 0x45, 0x07, 0xec, 0x8a, 0x7f, 0x65, 0x83, 0xfd, 0x64, 0x16, + 0x70, 0x46, 0xa9, 0x66, 0xf8, 0x44, 0x06, 0x52, 0x3e, 0xa2, 0x8b, 0x77, 0x99, 0x92, 0x7d, 0x33, + 0x23, 0xf6, 0xa1, 0x94, 0x6d, 0x52, 0x5f, 0x09, 0x9e, 0xcc, 0x88, 0x7d, 0x78, 0x24, 0x80, 0xfe, + 0xee, 0xe1, 0xa7, 0x32, 0xb0, 0x0f, 0x45, 0x07, 0xec, 0x8a, 0x7f, 0x65, 0x83, 0xfd, 0x64, 0x16, 0xe8, 0x21, 0xde, 0xf6, 0x4d, 0xeb, 0x46, 0x07, 0x22, 0xc0, 0x9f, 0xca, 0x42, 0xee, 0xa0, 0x4b, 0x0e, 0x54, 0x97, 0x54, 0x41, 0xbc, 0x2b, 0x77, 0x5c, 0x24, 0x43, 0x79, 0x38, 0x07, 0x75, 0x30, - 0x12, 0x4d, 0x54, 0xd7, 0xaf, 0xe3, 0xa5, 0x52, 0xf7, 0x37, 0x39, 0x91, 0x86, 0xb1, 0x49, 0xa5, - 0xf4, 0x9e, 0x9e, 0x3e, 0x26, 0x91, 0x3a, 0xcf, 0x4c, 0x43, 0x12, 0xc6, 0xe6, 0x87, 0x52, 0xf9, - 0xd2, 0xcc, 0xa4, 0x40, 0x6a, 0x7c, 0x79, 0x06, 0xd2, 0x70, 0x34, 0x60, 0x94, 0xc2, 0x47, 0xd0, - 0x04, 0x2e, 0xf9, 0x8f, 0x20, 0x58, 0x7b, 0x7c, 0xfa, 0x2b, 0x8d, 0x57, 0x8f, 0x4b, 0xa4, 0xce, - 0x6b, 0x88, 0x2c, 0xa0, 0x59, 0xd1, 0xd1, 0x15, 0xf9, 0xf9, 0xfc, 0x11, 0x24, 0x59, 0x2f, 0xc0, - 0xf7, 0x40, 0x41, 0x0d, 0x7c, 0x45, 0x7c, 0x72, 0x36, 0x82, 0x4a, 0xee, 0x53, 0xb3, 0xe0, 0xdd, - 0xd1, 0x88, 0x57, 0xec, 0x4f, 0xcf, 0x4d, 0xe0, 0x92, 0xff, 0x99, 0x39, 0xf0, 0x6d, 0xfc, 0xba, - 0xa3, 0x34, 0xde, 0x33, 0x7f, 0x4c, 0x22, 0x75, 0xde, 0x3b, 0x0f, 0x2b, 0xab, 0x2b, 0x80, 0xe2, - 0xff, 0x36, 0x8a, 0x4a, 0xee, 0xef, 0xe6, 0xa1, 0x8e, 0xb7, 0x4d, 0x6b, 0xc8, 0x98, 0xa3, 0xa8, - 0x3f, 0x28, 0x8c, 0x83, 0x92, 0xf9, 0x6c, 0x01, 0xf6, 0x7c, 0xf2, 0x4a, 0xa4, 0x54, 0xbe, 0x82, - 0x63, 0xa5, 0x52, 0xf7, 0xab, 0x18, 0x5a, 0x24, 0x94, 0xaf, 0xe2, 0x7f, 0x74, 0x61, 0x84, 0x48, - 0xce, 0xc7, 0x16, 0xc0, 0x3f, 0x35, 0xe6, 0x15, 0xef, 0xf5, 0x28, 0x2a, 0xb9, 0x6f, 0x08, 0x6d, - 0xb8, 0x3c, 0x29, 0xde, 0x8b, 0x64, 0x84, 0x48, 0xce, 0x4b, 0x04, 0x8e, 0x5c, 0xf4, 0x82, 0xa5, - 0xd8, 0xdf, 0x5a, 0x8c, 0x91, 0x49, 0xbd, 0x6f, 0x2f, 0x42, 0xf3, 0x0e, 0xaf, 0x72, 0x8a, 0xff, - 0xd9, 0xa5, 0x31, 0x4c, 0xf2, 0x3e, 0xb7, 0x04, 0x11, 0x4f, 0x5e, 0xad, 0x94, 0xc6, 0xfb, 0x97, - 0x63, 0xa5, 0x52, 0xf7, 0x03, 0xcb, 0xb0, 0x77, 0xe3, 0x37, 0x2b, 0xa5, 0xf7, 0xfb, 0xe3, 0x12, - 0xa9, 0xf3, 0x07, 0x21, 0x39, 0xfa, 0xaa, 0x39, 0xea, 0xca, 0x3f, 0x3c, 0x01, 0xdb, 0x25, 0x6f, - 0x65, 0xca, 0xd0, 0xd7, 0x56, 0xc6, 0x41, 0x69, 0xe3, 0xeb, 0x2b, 0xe4, 0xf4, 0xe8, 0x62, 0xad, - 0xae, 0xc5, 0x4a, 0xe3, 0xd1, 0x62, 0x9c, 0x50, 0x6a, 0x7e, 0xfc, 0x16, 0x42, 0x68, 0x64, 0xf8, - 0x13, 0x45, 0x18, 0xc4, 0x31, 0xd7, 0x68, 0x65, 0xfa, 0x9d, 0x27, 0x6f, 0x45, 0x90, 0xe6, 0x1f, - 0x3a, 0x49, 0x4a, 0xe8, 0x6c, 0xfc, 0x8d, 0x5f, 0x19, 0xf9, 0xe5, 0x3f, 0xe2, 0x48, 0x3b, 0xbf, - 0x3a, 0x39, 0x36, 0xda, 0x64, 0x35, 0x8e, 0xae, 0x47, 0xa7, 0x62, 0x64, 0xea, 0x86, 0x74, 0x0a, - 0xc2, 0x9b, 0xb8, 0xfc, 0x8d, 0xae, 0x32, 0xa7, 0xe3, 0x84, 0x72, 0x60, 0x3e, 0x76, 0x9a, 0x9c, - 0x47, 0xa7, 0xe3, 0x6e, 0x88, 0xa3, 0x6b, 0xca, 0x99, 0x5b, 0x32, 0xd4, 0x3d, 0xe5, 0x0c, 0x14, - 0x2f, 0xdc, 0x25, 0x47, 0x17, 0x91, 0x23, 0x44, 0xae, 0xf3, 0xf2, 0x11, 0x22, 0xb5, 0x5e, 0x39, - 0x03, 0xf1, 0x44, 0xef, 0x9d, 0xa3, 0xf1, 0x7f, 0x36, 0x46, 0x26, 0x2d, 0x3d, 0x77, 0x16, 0xc2, - 0x99, 0xb8, 0x9b, 0x8e, 0xe6, 0xda, 0xb9, 0x38, 0xa1, 0x9a, 0x6f, 0xe7, 0xca, 0x06, 0xca, 0x8b, - 0x8d, 0x6b, 0xb3, 0x80, 0x5b, 0x34, 0xfc, 0x58, 0xac, 0x68, 0xf5, 0x6e, 0xbb, 0xb9, 0x63, 0x54, - 0xe0, 0xb3, 0x13, 0x3e, 0x06, 0x37, 0xda, 0xea, 0x5d, 0x7c, 0xb7, 0x6e, 0x75, 0x3a, 0x2d, 0x05, - 0x88, 0xaf, 0xb7, 0x4a, 0xbd, 0xd9, 0xd0, 0x15, 0x92, 0x2a, 0xaf, 0x23, 0xbc, 0x75, 0x38, 0xa4, - 0x7c, 0x77, 0x93, 0xba, 0xea, 0x32, 0x7c, 0x02, 0x91, 0x49, 0x6c, 0xf7, 0x0a, 0x9e, 0x8a, 0xc5, - 0xff, 0x13, 0x27, 0xca, 0x3e, 0x9a, 0x87, 0x8a, 0x84, 0x8f, 0x99, 0x0d, 0xc6, 0x07, 0xa6, 0x2f, - 0xfe, 0xca, 0x12, 0x41, 0x76, 0xb7, 0xaa, 0xf7, 0xe1, 0x29, 0xf8, 0xde, 0x38, 0x86, 0xe3, 0x04, - 0x39, 0x89, 0x96, 0xa3, 0xb0, 0xfa, 0xcb, 0x54, 0x12, 0xee, 0xe1, 0xc7, 0x34, 0xe0, 0xdb, 0x20, - 0x55, 0xbe, 0x0b, 0xa6, 0x3d, 0x0b, 0x7a, 0x35, 0xd7, 0xf6, 0xab, 0xa6, 0x6f, 0xca, 0xac, 0xe4, - 0x51, 0xae, 0xc1, 0x84, 0x00, 0x4f, 0x89, 0x2f, 0xed, 0x07, 0x03, 0x4e, 0x71, 0xe2, 0xff, 0xdf, - 0x8c, 0x66, 0x3c, 0xea, 0x7a, 0xb6, 0x6f, 0x1f, 0x50, 0x72, 0x76, 0x2d, 0xfc, 0x59, 0x6b, 0x4d, - 0xfd, 0xac, 0xb5, 0xb6, 0x61, 0x53, 0xa7, 0xd7, 0x14, 0x87, 0xde, 0x2b, 0x3e, 0xfb, 0xee, 0x94, - 0xf8, 0xd3, 0xdf, 0x91, 0xc6, 0xfa, 0x1d, 0x0f, 0x5c, 0xec, 0xdb, 0xfe, 0xf5, 0x60, 0x6f, 0xcd, - 0x62, 0x83, 0xcb, 0x03, 0xdb, 0xe2, 0xcc, 0x63, 0xfb, 0xfe, 0xe5, 0x01, 0xb3, 0x2e, 0xf3, 0xa1, - 0x75, 0x39, 0xfc, 0xe5, 0x6c, 0x2f, 0x2b, 0x0c, 0xfe, 0xd7, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, - 0xba, 0x1d, 0x79, 0x7e, 0x55, 0x1b, 0x00, 0x00, + 0x12, 0x4d, 0x54, 0xd7, 0xaf, 0xe3, 0xa5, 0x52, 0xf7, 0x37, 0x39, 0x91, 0x86, 0xb1, 0x93, 0x4a, + 0xe9, 0x3d, 0x3d, 0x7d, 0x4c, 0x22, 0x75, 0x9e, 0x99, 0x86, 0x24, 0x8c, 0x9d, 0x1f, 0x4a, 0xe5, + 0x4b, 0x33, 0x93, 0x02, 0xa9, 0xf1, 0xe5, 0x19, 0x48, 0xc3, 0xd1, 0x01, 0xa3, 0x14, 0x3e, 0x82, + 0x26, 0x70, 0xc9, 0x7f, 0x04, 0xc1, 0xdc, 0xe3, 0xa7, 0xbf, 0xd2, 0x78, 0xf5, 0xb8, 0x44, 0xea, + 0xbc, 0x86, 0xc8, 0x02, 0x9a, 0x15, 0x1d, 0x5d, 0x91, 0x9f, 0xcf, 0x1f, 0x41, 0x92, 0xf5, 0x02, + 0xbc, 0x07, 0x0a, 0xea, 0xc0, 0x57, 0xc4, 0x27, 0x67, 0x23, 0xa8, 0xe4, 0x3e, 0x35, 0x0b, 0xde, + 0x1d, 0x1d, 0xf1, 0x8a, 0xfd, 0xe9, 0xb9, 0x09, 0x5c, 0xf2, 0x3f, 0x33, 0x07, 0xbe, 0x8d, 0x5f, + 0x77, 0x94, 0xc6, 0x7b, 0xe6, 0x8f, 0x49, 0xa4, 0xce, 0x7b, 0xe7, 0x61, 0x66, 0x75, 0x05, 0x50, + 0xfc, 0xdf, 0x46, 0x51, 0xc9, 0xfd, 0xdd, 0x3c, 0xd4, 0xf1, 0xb6, 0x69, 0x0d, 0x19, 0x73, 0x14, + 0xf5, 0x07, 0x85, 0x71, 0x50, 0x32, 0x9f, 0x2d, 0xc0, 0x9a, 0x4f, 0x5e, 0x89, 0x94, 0xca, 0x57, + 0x70, 0xac, 0x54, 0xea, 0x7e, 0x15, 0x43, 0x8b, 0x84, 0xf2, 0x55, 0xfc, 0x8f, 0x2e, 0x8c, 0x10, + 0xc9, 0xf9, 0xd8, 0x02, 0xf8, 0xa7, 0x8e, 0x79, 0xc5, 0x7b, 0x3d, 0x8a, 0x4a, 0xee, 0x1b, 0x42, + 0x1b, 0x2e, 0x4f, 0x8a, 0xf7, 0x22, 0x19, 0x21, 0x92, 0xf3, 0x12, 0x81, 0x2d, 0x17, 0xbd, 0x60, + 0x29, 0xf6, 0xb7, 0x16, 0x63, 0x64, 0x52, 0xef, 0xdb, 0x8b, 0xd0, 0xbc, 0xc3, 0xab, 0x9c, 0xe2, + 0x7f, 0x76, 0x69, 0x0c, 0x93, 0xbc, 0xcf, 0x2d, 0x41, 0xc4, 0x93, 0x57, 0x2b, 0xa5, 0xf1, 0xfe, + 0xe5, 0x58, 0xa9, 0xd4, 0xfd, 0xc0, 0x32, 0xac, 0xdd, 0xf8, 0xcd, 0x4a, 0xe9, 0xfd, 0xfe, 0xb8, + 0x44, 0xea, 0xfc, 0x41, 0x48, 0x8e, 0x5e, 0x35, 0x47, 0x5d, 0xf9, 0x87, 0x27, 0x60, 0xb9, 0xe4, + 0xad, 0x4c, 0x19, 0xfa, 0xda, 0xca, 0x38, 0x28, 0x6d, 0x7c, 0x7d, 0x85, 0x9c, 0x1e, 0x5d, 0xac, + 0xd5, 0xb5, 0x58, 0x69, 0x3c, 0x5a, 0x8c, 0x13, 0x4a, 0xcd, 0x8f, 0xdf, 0x42, 0x08, 0x8d, 0x0c, + 0x7f, 0xa2, 0x08, 0x07, 0x71, 0xcc, 0x35, 0x5a, 0x99, 0x7e, 0xe7, 0xc9, 0x5b, 0x11, 0xa4, 0xf9, + 0x87, 0x4e, 0x92, 0x12, 0x3a, 0x1b, 0x7f, 0xe3, 0x57, 0x46, 0x7e, 0xf9, 0x8f, 0x38, 0xd2, 0xce, + 0xaf, 0x4e, 0x8e, 0x1d, 0x6d, 0xb2, 0x1a, 0x47, 0xd7, 0xa3, 0x53, 0x31, 0x32, 0x75, 0x43, 0x3a, + 0x05, 0xe1, 0x4d, 0x5c, 0xfe, 0x46, 0x57, 0x99, 0xd3, 0x71, 0x42, 0x79, 0x60, 0x3e, 0x76, 0x9a, + 0x9c, 0x47, 0xa7, 0xe3, 0x6e, 0x88, 0xa3, 0x6b, 0xca, 0x99, 0x5b, 0x32, 0xd4, 0x3d, 0xe5, 0x0c, + 0x14, 0x2f, 0xdc, 0x25, 0x47, 0x17, 0x91, 0x23, 0x44, 0xce, 0xf3, 0xf2, 0x11, 0x22, 0xb5, 0x5e, + 0x39, 0x03, 0xf1, 0x44, 0xef, 0x9d, 0xa3, 0xe3, 0xff, 0x6c, 0x8c, 0x4c, 0x5a, 0x7a, 0xee, 0x2c, + 0x84, 0x33, 0x71, 0x37, 0x1d, 0x9d, 0x6b, 0xe7, 0xe2, 0x84, 0xea, 0x7c, 0x3b, 0x57, 0x66, 0x28, + 0x2f, 0x16, 0xae, 0xcd, 0x02, 0x6e, 0xd1, 0xf0, 0xb1, 0x58, 0xd1, 0xea, 0xdd, 0x76, 0x73, 0xc7, + 0xa8, 0xc0, 0xb3, 0x13, 0x1e, 0x83, 0x1b, 0x6d, 0x35, 0x16, 0xef, 0xd6, 0xad, 0x4e, 0xa7, 0xa5, + 0x00, 0xf1, 0x7a, 0xab, 0xd4, 0x9b, 0x0d, 0x5d, 0x21, 0x29, 0x78, 0x6b, 0x6b, 0x0f, 0xec, 0x18, + 0x7a, 0xbb, 0xd3, 0x34, 0xb4, 0x4d, 0x7d, 0xbd, 0xde, 0x5c, 0x57, 0xc2, 0x74, 0x79, 0x1d, 0xe1, + 0xad, 0xc3, 0x21, 0xe5, 0xbb, 0x9b, 0xd4, 0x55, 0x37, 0xe5, 0x13, 0x88, 0x4c, 0x62, 0xbb, 0x57, + 0xf0, 0x54, 0x2c, 0xfe, 0x9f, 0x38, 0x51, 0xf6, 0xd1, 0x3c, 0x94, 0x2b, 0xbc, 0x74, 0x36, 0x18, + 0x1f, 0x98, 0xbe, 0xf8, 0x13, 0x4c, 0x04, 0xd9, 0xdd, 0xaa, 0xde, 0x87, 0xa7, 0xe0, 0x31, 0x72, + 0x0c, 0xc7, 0x09, 0x72, 0x12, 0x2d, 0x47, 0x61, 0xf5, 0x67, 0xab, 0x24, 0x5c, 0xd2, 0x8f, 0x69, + 0xc0, 0xc3, 0x21, 0x55, 0xbe, 0x0b, 0xae, 0x02, 0x2c, 0xe8, 0xd5, 0x5c, 0xdb, 0xaf, 0x9a, 0xbe, + 0x29, 0x53, 0x96, 0x47, 0xb9, 0x06, 0x13, 0x02, 0x3c, 0x25, 0x9e, 0xe1, 0x0f, 0x06, 0x9c, 0xe2, + 0xc4, 0xff, 0xbf, 0x19, 0xcd, 0x78, 0xd4, 0xf5, 0x6c, 0xdf, 0x3e, 0xa0, 0xe4, 0xec, 0x5a, 0xf8, + 0x9b, 0xd7, 0x9a, 0xfa, 0xcd, 0x6b, 0x6d, 0xc3, 0xa6, 0x4e, 0xaf, 0x29, 0x3a, 0x82, 0x57, 0x7c, + 0xf6, 0xdd, 0x29, 0xf1, 0x77, 0xc1, 0x23, 0x8d, 0xf5, 0x3b, 0x1e, 0xb8, 0xd8, 0xb7, 0xfd, 0xeb, + 0xc1, 0xde, 0x9a, 0xc5, 0x06, 0x97, 0x07, 0xb6, 0xc5, 0x99, 0xc7, 0xf6, 0xfd, 0xcb, 0x03, 0x66, + 0x5d, 0xe6, 0x43, 0xeb, 0x72, 0xf8, 0xb3, 0xda, 0x5e, 0x56, 0x18, 0xfc, 0xaf, 0xbf, 0x07, 0x00, + 0x00, 0xff, 0xff, 0xb7, 0x23, 0x8d, 0x67, 0x72, 0x1b, 0x00, 0x00, } diff --git a/rpc/common/moc_common_common.proto b/rpc/common/moc_common_common.proto index 158383c4..da02b6a2 100644 --- a/rpc/common/moc_common_common.proto +++ b/rpc/common/moc_common_common.proto @@ -392,10 +392,11 @@ extend google.protobuf.FieldOptions { } enum ImageSource { - LOCAL_SOURCE = 0; - SFS_SOURCE = 1; - HTTP_SOURCE = 2; - CLONE_SOURCE = 3; + LOCAL_SOURCE = 0; + SFS_SOURCE = 1; + HTTP_SOURCE = 2; + CLONE_SOURCE = 3; + AZURESTORAGEBLOB_SOURCE = 4; } enum HyperVGeneration { From 88f4406c74437623869f868f2df3afa6910152e0 Mon Sep 17 00:00:00 2001 From: Edwin Ouko Date: Mon, 8 Jun 2026 23:05:04 +0000 Subject: [PATCH 2/3] proto: add AzureBlobImageProperties typed message for AGC Add AzureBlobImageProperties as a sibling typed message alongside SFSImageProperties, HttpImageProperties, and AzureGalleryImageProperties in both the cloudagent gallery image and nodeagent virtual hard disk proto definitions. Field names (catalogName, audience, version, releaseName, parts, cloud, endpoint) match the JSON keys produced by compute.AzureBlobImageProperties in moc-sdk-for-go, so the on-the-wire encoding inside GalleryImage.sourcePath / VirtualHardDisk.source is unchanged. Regenerated .pb.go files via `make generate`. --- .../moc_cloudagent_galleryimage.proto | 9 + .../compute/moc_cloudagent_galleryimage.pb.go | 201 +++++++++++---- .../moc_nodeagent_virtualharddisk.pb.go | 242 ++++++++++++------ .../moc_nodeagent_virtualharddisk.proto | 10 + 4 files changed, 331 insertions(+), 131 deletions(-) diff --git a/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto b/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto index d6518780..af6f91d6 100644 --- a/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto +++ b/rpc/cloudagent/compute/galleryimage/moc_cloudagent_galleryimage.proto @@ -58,6 +58,15 @@ message AzureGalleryImageProperties { string sasURI = 1 [(sensitive) = true]; string version = 2; } +message AzureBlobImageProperties { + string catalogName = 1; + string audience = 2; + string version = 3; + string releaseName = 4; + uint32 parts = 5; + string cloud = 6; + string endpoint = 7; +} message GalleryImage { string name = 1; diff --git a/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go b/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go index 038f5b40..59ed22af 100644 --- a/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go +++ b/rpc/cloudagent/compute/moc_cloudagent_galleryimage.pb.go @@ -487,6 +487,93 @@ func (m *AzureGalleryImageProperties) GetVersion() string { return "" } +type AzureBlobImageProperties struct { + CatalogName string `protobuf:"bytes,1,opt,name=catalogName,proto3" json:"catalogName,omitempty"` + Audience string `protobuf:"bytes,2,opt,name=audience,proto3" json:"audience,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + ReleaseName string `protobuf:"bytes,4,opt,name=releaseName,proto3" json:"releaseName,omitempty"` + Parts uint32 `protobuf:"varint,5,opt,name=parts,proto3" json:"parts,omitempty"` + Cloud string `protobuf:"bytes,6,opt,name=cloud,proto3" json:"cloud,omitempty"` + Endpoint string `protobuf:"bytes,7,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AzureBlobImageProperties) Reset() { *m = AzureBlobImageProperties{} } +func (m *AzureBlobImageProperties) String() string { return proto.CompactTextString(m) } +func (*AzureBlobImageProperties) ProtoMessage() {} +func (*AzureBlobImageProperties) Descriptor() ([]byte, []int) { + return fileDescriptor_4b5fad170433da5e, []int{9} +} + +func (m *AzureBlobImageProperties) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AzureBlobImageProperties.Unmarshal(m, b) +} +func (m *AzureBlobImageProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AzureBlobImageProperties.Marshal(b, m, deterministic) +} +func (m *AzureBlobImageProperties) XXX_Merge(src proto.Message) { + xxx_messageInfo_AzureBlobImageProperties.Merge(m, src) +} +func (m *AzureBlobImageProperties) XXX_Size() int { + return xxx_messageInfo_AzureBlobImageProperties.Size(m) +} +func (m *AzureBlobImageProperties) XXX_DiscardUnknown() { + xxx_messageInfo_AzureBlobImageProperties.DiscardUnknown(m) +} + +var xxx_messageInfo_AzureBlobImageProperties proto.InternalMessageInfo + +func (m *AzureBlobImageProperties) GetCatalogName() string { + if m != nil { + return m.CatalogName + } + return "" +} + +func (m *AzureBlobImageProperties) GetAudience() string { + if m != nil { + return m.Audience + } + return "" +} + +func (m *AzureBlobImageProperties) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *AzureBlobImageProperties) GetReleaseName() string { + if m != nil { + return m.ReleaseName + } + return "" +} + +func (m *AzureBlobImageProperties) GetParts() uint32 { + if m != nil { + return m.Parts + } + return 0 +} + +func (m *AzureBlobImageProperties) GetCloud() string { + if m != nil { + return m.Cloud + } + return "" +} + +func (m *AzureBlobImageProperties) GetEndpoint() string { + if m != nil { + return m.Endpoint + } + return "" +} + type GalleryImage struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -514,7 +601,7 @@ func (m *GalleryImage) Reset() { *m = GalleryImage{} } func (m *GalleryImage) String() string { return proto.CompactTextString(m) } func (*GalleryImage) ProtoMessage() {} func (*GalleryImage) Descriptor() ([]byte, []int) { - return fileDescriptor_4b5fad170433da5e, []int{9} + return fileDescriptor_4b5fad170433da5e, []int{10} } func (m *GalleryImage) XXX_Unmarshal(b []byte) error { @@ -651,66 +738,70 @@ func init() { proto.RegisterType((*CloneImageProperties)(nil), "moc.cloudagent.compute.CloneImageProperties") proto.RegisterType((*HttpImageProperties)(nil), "moc.cloudagent.compute.HttpImageProperties") proto.RegisterType((*AzureGalleryImageProperties)(nil), "moc.cloudagent.compute.AzureGalleryImageProperties") + proto.RegisterType((*AzureBlobImageProperties)(nil), "moc.cloudagent.compute.AzureBlobImageProperties") proto.RegisterType((*GalleryImage)(nil), "moc.cloudagent.compute.GalleryImage") } func init() { proto.RegisterFile("moc_cloudagent_galleryimage.proto", fileDescriptor_4b5fad170433da5e) } var fileDescriptor_4b5fad170433da5e = []byte{ - // 847 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xd1, 0x72, 0xdb, 0x44, - 0x14, 0xad, 0x1c, 0xc7, 0x89, 0xaf, 0x63, 0x63, 0x36, 0x01, 0x34, 0x6e, 0x60, 0x8c, 0xc8, 0x30, - 0x99, 0xc2, 0x58, 0xc5, 0xed, 0x03, 0x3c, 0x26, 0x0d, 0xb4, 0x2e, 0x19, 0xa7, 0xb3, 0xae, 0x1b, - 0x86, 0x97, 0xce, 0x46, 0xbe, 0x91, 0x35, 0x91, 0xb4, 0x62, 0x77, 0xd5, 0x4e, 0xf8, 0x02, 0xfe, - 0x80, 0x9f, 0xe0, 0x95, 0xbf, 0xe0, 0x95, 0x2f, 0xe1, 0x07, 0x18, 0x5d, 0xc9, 0xb1, 0xe4, 0xe4, - 0xc1, 0x99, 0x81, 0x27, 0x7b, 0xcf, 0xde, 0x73, 0xee, 0xde, 0x73, 0xaf, 0x2e, 0x7c, 0x1e, 0x49, - 0xef, 0xad, 0x17, 0xca, 0x74, 0x26, 0x7c, 0x8c, 0xcd, 0x5b, 0x5f, 0x84, 0x21, 0xaa, 0xeb, 0x20, - 0x12, 0x3e, 0x0e, 0x12, 0x25, 0x8d, 0x64, 0x1f, 0x47, 0xd2, 0x1b, 0x2c, 0x43, 0x06, 0x9e, 0x8c, - 0x92, 0xd4, 0x60, 0xef, 0x33, 0x5f, 0x4a, 0x3f, 0x44, 0x97, 0xa2, 0x2e, 0xd2, 0x4b, 0xf7, 0xbd, - 0x12, 0x49, 0x82, 0x4a, 0xe7, 0xbc, 0xde, 0x27, 0x24, 0x2d, 0xa3, 0x48, 0xc6, 0xc5, 0x4f, 0x7e, - 0xe1, 0xfc, 0x6e, 0xc1, 0xee, 0xf3, 0x3c, 0xcf, 0x28, 0xcb, 0xc3, 0xf1, 0x97, 0x14, 0xb5, 0x61, - 0x2f, 0xa1, 0x5d, 0x86, 0xb5, 0x6d, 0xf5, 0x37, 0x0e, 0x5b, 0xc3, 0x83, 0xc1, 0xdd, 0x0f, 0x18, - 0x54, 0x34, 0xaa, 0x54, 0xf6, 0x14, 0xda, 0x67, 0x09, 0x2a, 0x61, 0x02, 0x19, 0xbf, 0xbe, 0x4e, - 0xd0, 0xae, 0xf5, 0xad, 0xc3, 0xce, 0xb0, 0x43, 0x5a, 0x37, 0x37, 0xbc, 0x1a, 0xe4, 0xfc, 0x61, - 0xc1, 0x5e, 0xf5, 0x65, 0x3a, 0x91, 0xb1, 0xc6, 0xff, 0xf4, 0x69, 0x43, 0x68, 0x70, 0xd4, 0x69, - 0x68, 0xe8, 0x4d, 0xad, 0x61, 0x6f, 0x90, 0x1b, 0x39, 0x58, 0x18, 0x39, 0x38, 0x96, 0x32, 0x7c, - 0x23, 0xc2, 0x14, 0x79, 0x11, 0xc9, 0xf6, 0x60, 0xf3, 0x7b, 0xa5, 0xa4, 0xb2, 0x37, 0xfa, 0xd6, - 0x61, 0x93, 0xe7, 0x07, 0x27, 0x80, 0x87, 0x65, 0xe9, 0x57, 0x0a, 0xbd, 0x39, 0x7a, 0x57, 0xff, - 0x83, 0x9f, 0xce, 0x1c, 0xf6, 0xef, 0x4e, 0x55, 0x18, 0xb4, 0x2c, 0xca, 0xba, 0x7f, 0x51, 0xb5, - 0x72, 0x51, 0x7f, 0x59, 0xc0, 0x26, 0x3f, 0x4c, 0x8a, 0x34, 0x32, 0x41, 0x65, 0x02, 0xd4, 0xac, - 0x0f, 0x2d, 0x4f, 0x18, 0x11, 0x4a, 0x7f, 0x2c, 0x22, 0xa4, 0x2c, 0x4d, 0x5e, 0x86, 0x58, 0x0f, - 0xb6, 0x45, 0x3a, 0x0b, 0x30, 0xf6, 0xb0, 0x50, 0xbc, 0x39, 0x33, 0x1b, 0xb6, 0xde, 0xa1, 0xd2, - 0x81, 0x8c, 0x0b, 0x07, 0x17, 0xc7, 0x4c, 0x57, 0x61, 0x88, 0x42, 0x23, 0xe9, 0xd6, 0x73, 0xdd, - 0x12, 0xc4, 0xbe, 0x84, 0xce, 0x0c, 0xb5, 0x09, 0x62, 0x9a, 0x93, 0x93, 0x40, 0xd9, 0x9b, 0x14, - 0xb4, 0x82, 0x66, 0xe5, 0x24, 0x42, 0x19, 0x6d, 0x37, 0xfa, 0xd6, 0x61, 0x9b, 0xe7, 0x07, 0xe7, - 0x31, 0xec, 0x9d, 0x4a, 0x4f, 0x84, 0xab, 0xf5, 0xd8, 0x50, 0x4f, 0x84, 0x99, 0xe7, 0x85, 0x1c, - 0xd7, 0x7f, 0xfb, 0xd3, 0xb6, 0x38, 0x21, 0xce, 0xb7, 0xb0, 0xf7, 0x2c, 0x94, 0x31, 0xde, 0xe5, - 0x40, 0x86, 0x4f, 0x64, 0xaa, 0xbc, 0xa5, 0x03, 0x4b, 0xc8, 0x71, 0x61, 0xf7, 0x85, 0x31, 0xc9, - 0xed, 0x54, 0x5b, 0x73, 0x63, 0x92, 0x29, 0x3f, 0x2d, 0x48, 0x8b, 0xa3, 0x33, 0x85, 0x87, 0x47, - 0xbf, 0xa6, 0x0a, 0xab, 0xad, 0xbd, 0x21, 0xee, 0x43, 0x43, 0x0b, 0x3d, 0xe5, 0xa3, 0xca, 0x2b, - 0x0b, 0xac, 0xec, 0x69, 0xad, 0xe2, 0xa9, 0xf3, 0x77, 0x1d, 0x76, 0xca, 0x92, 0x8c, 0x41, 0x3d, - 0x5e, 0x76, 0x8d, 0xfe, 0xb3, 0x0e, 0xd4, 0x82, 0x59, 0xc1, 0xac, 0x05, 0x33, 0x76, 0x0a, 0x2d, - 0xda, 0x3a, 0x67, 0x13, 0xfa, 0x5e, 0x37, 0xe8, 0x7b, 0x7d, 0xb4, 0xce, 0xac, 0xe6, 0x0c, 0x5e, - 0xa6, 0xdf, 0xd8, 0x5b, 0x5f, 0xb5, 0x97, 0x7d, 0x01, 0x0d, 0x6d, 0x84, 0x49, 0x35, 0xb5, 0xb1, - 0x35, 0x6c, 0x51, 0x8a, 0x09, 0x41, 0xbc, 0xb8, 0x62, 0x0e, 0xec, 0x84, 0xd2, 0xa3, 0xd6, 0xd2, - 0x58, 0x34, 0xe8, 0x99, 0x15, 0x8c, 0xed, 0x43, 0x33, 0x49, 0x2f, 0xc2, 0x40, 0xcf, 0x51, 0xd9, - 0x5b, 0x14, 0xb0, 0x04, 0x58, 0x17, 0x36, 0xf4, 0x55, 0x6a, 0x6f, 0x13, 0x9e, 0xfd, 0xcd, 0xe6, - 0x43, 0x5e, 0x5e, 0xa2, 0xb2, 0x9b, 0xf9, 0xb8, 0xd3, 0x81, 0x1d, 0x40, 0xdb, 0x93, 0xb1, 0x11, - 0x41, 0x8c, 0x8a, 0x52, 0x01, 0xdd, 0x56, 0x41, 0x76, 0x00, 0xa0, 0xa9, 0xc7, 0xaf, 0xb2, 0xa2, - 0x5a, 0xa5, 0xa2, 0x4a, 0x38, 0xfb, 0x14, 0xea, 0x46, 0xf8, 0xda, 0xde, 0xa1, 0xc2, 0x9a, 0x54, - 0xd8, 0x6b, 0xe1, 0x6b, 0x4e, 0x30, 0x7b, 0xbc, 0x10, 0x21, 0x83, 0xdb, 0x64, 0x70, 0x97, 0x82, - 0xc8, 0xc6, 0x7c, 0x88, 0x78, 0x29, 0x86, 0x1d, 0x41, 0x77, 0x7e, 0x9d, 0xa0, 0x7a, 0xf3, 0x1c, - 0xe3, 0x62, 0x4f, 0xda, 0x1d, 0xe2, 0x7d, 0x44, 0xbc, 0x17, 0x2b, 0x97, 0xfc, 0x56, 0x38, 0x7b, - 0x09, 0xbb, 0xd4, 0xbe, 0x51, 0x1c, 0x98, 0x13, 0x61, 0x44, 0x31, 0xbd, 0x1f, 0x90, 0x8a, 0x4d, - 0x2a, 0xcf, 0x6e, 0xdf, 0xf3, 0xbb, 0x48, 0x8f, 0xbe, 0x03, 0x76, 0xbb, 0xef, 0xac, 0x05, 0x5b, - 0xd3, 0xf1, 0x8f, 0xe3, 0xb3, 0xf3, 0x71, 0xf7, 0x01, 0x6b, 0xc2, 0xe6, 0xe9, 0x68, 0x3c, 0xfd, - 0xa9, 0x6b, 0x65, 0xf8, 0xf9, 0x68, 0x7c, 0x72, 0x76, 0x3e, 0xe9, 0xd6, 0x86, 0xff, 0x58, 0xf0, - 0x61, 0x99, 0x7b, 0x94, 0x4d, 0x13, 0x43, 0x68, 0x8c, 0xe2, 0x77, 0xf2, 0x0a, 0xd9, 0x57, 0x6b, - 0x2d, 0xc5, 0x7c, 0xb1, 0xf6, 0xbe, 0x5e, 0x2f, 0x38, 0x5f, 0x8d, 0xce, 0x03, 0xf6, 0x1e, 0xb6, - 0x17, 0x0b, 0x93, 0x3d, 0x59, 0x87, 0xbb, 0xb2, 0xc9, 0x7b, 0x4f, 0xef, 0x47, 0x5a, 0x24, 0x3e, - 0xfe, 0xe6, 0x67, 0xd7, 0x0f, 0xcc, 0x3c, 0xbd, 0xc8, 0x08, 0x6e, 0x14, 0x78, 0x4a, 0x6a, 0x79, - 0x69, 0xdc, 0x48, 0x7a, 0xae, 0x4a, 0x3c, 0x77, 0xa9, 0xe8, 0x16, 0x8a, 0x17, 0x0d, 0x5a, 0xd8, - 0x4f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x56, 0xbc, 0x22, 0x19, 0x08, 0x00, 0x00, + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xdd, 0x72, 0xdb, 0x54, + 0x10, 0xae, 0x1c, 0xc7, 0x89, 0xd7, 0x89, 0x31, 0x27, 0x01, 0x34, 0x6e, 0x60, 0x8c, 0xc8, 0x30, + 0x99, 0xc2, 0x58, 0xc5, 0xed, 0x05, 0x5c, 0x26, 0x0d, 0xb4, 0x2e, 0x19, 0xa7, 0x23, 0xd7, 0x0d, + 0xc3, 0x4d, 0xe7, 0x58, 0xde, 0xc8, 0x9a, 0x48, 0x3a, 0xe2, 0x9c, 0xa3, 0x76, 0xc2, 0x13, 0xf0, + 0x06, 0xbc, 0x04, 0xb7, 0xbc, 0x05, 0xb7, 0xdc, 0xf1, 0x16, 0xbc, 0x00, 0xa3, 0x3d, 0xb2, 0x2d, + 0x39, 0xb9, 0x48, 0x67, 0x60, 0x86, 0x2b, 0x69, 0xbf, 0xb3, 0xfb, 0xed, 0xee, 0xb7, 0xe7, 0x07, + 0x3e, 0x8d, 0x85, 0xff, 0xda, 0x8f, 0x44, 0x36, 0xe3, 0x01, 0x26, 0xfa, 0x75, 0xc0, 0xa3, 0x08, + 0xe5, 0x75, 0x18, 0xf3, 0x00, 0xfb, 0xa9, 0x14, 0x5a, 0xb0, 0x0f, 0x63, 0xe1, 0xf7, 0x57, 0x2e, + 0x7d, 0x5f, 0xc4, 0x69, 0xa6, 0xb1, 0xfb, 0x49, 0x20, 0x44, 0x10, 0xa1, 0x4b, 0x5e, 0xd3, 0xec, + 0xd2, 0x7d, 0x2b, 0x79, 0x9a, 0xa2, 0x54, 0x26, 0xae, 0xfb, 0x11, 0x51, 0x8b, 0x38, 0x16, 0x49, + 0xf1, 0x31, 0x0b, 0xce, 0xaf, 0x16, 0xec, 0x3d, 0x35, 0x79, 0x86, 0x79, 0x1e, 0x0f, 0x7f, 0xca, + 0x50, 0x69, 0xf6, 0x1c, 0x76, 0xcb, 0xb0, 0xb2, 0xad, 0xde, 0xc6, 0x51, 0x6b, 0x70, 0xd8, 0xbf, + 0xbd, 0x80, 0x7e, 0x85, 0xa3, 0x1a, 0xca, 0x1e, 0xc3, 0xee, 0x79, 0x8a, 0x92, 0xeb, 0x50, 0x24, + 0x2f, 0xaf, 0x53, 0xb4, 0x6b, 0x3d, 0xeb, 0xa8, 0x3d, 0x68, 0x13, 0xd7, 0x72, 0xc5, 0xab, 0x3a, + 0x39, 0xbf, 0x59, 0xb0, 0x5f, 0xad, 0x4c, 0xa5, 0x22, 0x51, 0xf8, 0xaf, 0x96, 0x36, 0x80, 0x86, + 0x87, 0x2a, 0x8b, 0x34, 0xd5, 0xd4, 0x1a, 0x74, 0xfb, 0x46, 0xc8, 0xfe, 0x42, 0xc8, 0xfe, 0x89, + 0x10, 0xd1, 0x2b, 0x1e, 0x65, 0xe8, 0x15, 0x9e, 0x6c, 0x1f, 0x36, 0xbf, 0x95, 0x52, 0x48, 0x7b, + 0xa3, 0x67, 0x1d, 0x35, 0x3d, 0x63, 0x38, 0x21, 0xdc, 0x2f, 0x53, 0xbf, 0x90, 0xe8, 0xcf, 0xd1, + 0xbf, 0xfa, 0x0f, 0xf4, 0x74, 0xe6, 0x70, 0x70, 0x7b, 0xaa, 0x42, 0xa0, 0x55, 0x53, 0xd6, 0xbb, + 0x37, 0x55, 0x2b, 0x37, 0xf5, 0x87, 0x05, 0x6c, 0xfc, 0xdd, 0xb8, 0x48, 0x23, 0x52, 0x94, 0x3a, + 0x44, 0xc5, 0x7a, 0xd0, 0xf2, 0xb9, 0xe6, 0x91, 0x08, 0x46, 0x3c, 0x46, 0xca, 0xd2, 0xf4, 0xca, + 0x10, 0xeb, 0xc2, 0x36, 0xcf, 0x66, 0x21, 0x26, 0x3e, 0x16, 0x8c, 0x4b, 0x9b, 0xd9, 0xb0, 0xf5, + 0x06, 0xa5, 0x0a, 0x45, 0x52, 0x28, 0xb8, 0x30, 0x73, 0x5e, 0x89, 0x11, 0x72, 0x85, 0xc4, 0x5b, + 0x37, 0xbc, 0x25, 0x88, 0x7d, 0x0e, 0xed, 0x19, 0x2a, 0x1d, 0x26, 0xb4, 0x4f, 0x4e, 0x43, 0x69, + 0x6f, 0x92, 0xd3, 0x1a, 0x9a, 0xb7, 0x93, 0x72, 0xa9, 0x95, 0xdd, 0xe8, 0x59, 0x47, 0xbb, 0x9e, + 0x31, 0x9c, 0x87, 0xb0, 0x7f, 0x26, 0x7c, 0x1e, 0xad, 0xf7, 0x63, 0x43, 0x3d, 0xe5, 0x7a, 0x6e, + 0x1a, 0x39, 0xa9, 0xff, 0xf2, 0xbb, 0x6d, 0x79, 0x84, 0x38, 0x5f, 0xc3, 0xfe, 0x93, 0x48, 0x24, + 0x78, 0x9b, 0x02, 0x39, 0x3e, 0x16, 0x99, 0xf4, 0x57, 0x0a, 0xac, 0x20, 0xc7, 0x85, 0xbd, 0x67, + 0x5a, 0xa7, 0x37, 0x53, 0x6d, 0xcd, 0xb5, 0x4e, 0x27, 0xde, 0x59, 0x11, 0xb4, 0x30, 0x9d, 0x09, + 0xdc, 0x3f, 0xfe, 0x39, 0x93, 0x58, 0x1d, 0xed, 0x32, 0xf0, 0x00, 0x1a, 0x8a, 0xab, 0x89, 0x37, + 0xac, 0x54, 0x59, 0x60, 0x65, 0x4d, 0x6b, 0x15, 0x4d, 0x9d, 0xbf, 0x2c, 0xb0, 0x89, 0xf7, 0x24, + 0x12, 0xd3, 0xff, 0xcf, 0x20, 0x97, 0x03, 0xda, 0x2c, 0x0d, 0x28, 0x47, 0xe9, 0x2c, 0xd0, 0xd8, + 0x9a, 0x9e, 0x31, 0xf2, 0x1a, 0x30, 0x99, 0xa5, 0x22, 0x4c, 0xb4, 0xbd, 0x65, 0x6a, 0x58, 0xd8, + 0xce, 0x9f, 0x75, 0xd8, 0x29, 0x2b, 0xc6, 0x18, 0xd4, 0x93, 0x55, 0x2f, 0xf4, 0xcf, 0xda, 0x50, + 0x0b, 0x67, 0x45, 0xf9, 0xb5, 0x70, 0xc6, 0xce, 0xa0, 0x45, 0x97, 0xea, 0xf9, 0x98, 0xae, 0xa3, + 0x0d, 0xba, 0x8e, 0x1e, 0xdc, 0xe5, 0x28, 0x9a, 0x08, 0xaf, 0x1c, 0xbe, 0xdc, 0x3d, 0xf5, 0xf5, + 0xdd, 0xc3, 0x3e, 0x83, 0x86, 0xd2, 0x5c, 0x67, 0xa6, 0xcb, 0xd6, 0xa0, 0x45, 0x29, 0xc6, 0x04, + 0x79, 0xc5, 0x12, 0x73, 0x60, 0x27, 0x12, 0x3e, 0xed, 0x5c, 0x12, 0xcb, 0xb4, 0x5e, 0xc1, 0xd8, + 0x01, 0x34, 0xd3, 0x6c, 0x1a, 0x85, 0x6a, 0x8e, 0xb2, 0x90, 0x60, 0x05, 0xb0, 0x0e, 0x6c, 0xa8, + 0xab, 0xcc, 0xde, 0x26, 0x3c, 0xff, 0xcd, 0x75, 0x14, 0x97, 0x97, 0x28, 0xed, 0xa6, 0xd1, 0x91, + 0x0c, 0x76, 0x08, 0xbb, 0xbe, 0x48, 0x34, 0x0f, 0x13, 0x94, 0x94, 0x0a, 0x68, 0xb5, 0x0a, 0xb2, + 0x43, 0x00, 0x45, 0x5b, 0xf8, 0x45, 0xde, 0x54, 0xab, 0xd4, 0x54, 0x09, 0x67, 0x1f, 0x43, 0x5d, + 0xf3, 0x40, 0xd9, 0x3b, 0xd4, 0x58, 0x93, 0x1a, 0x7b, 0xc9, 0x03, 0xe5, 0x11, 0xcc, 0x1e, 0x2e, + 0x48, 0x48, 0xe0, 0x5d, 0x12, 0xb8, 0x43, 0x4e, 0x24, 0xa3, 0x39, 0x23, 0x5e, 0xc9, 0x87, 0x1d, + 0x43, 0x67, 0x7e, 0x9d, 0xa2, 0x7c, 0xf5, 0x14, 0x93, 0xe2, 0x19, 0xb0, 0xdb, 0x14, 0xf7, 0x01, + 0xc5, 0x3d, 0x5b, 0x5b, 0xf4, 0x6e, 0xb8, 0xb3, 0xe7, 0xb0, 0x47, 0xe3, 0x1b, 0x26, 0xa1, 0x3e, + 0xe5, 0x9a, 0x17, 0x87, 0xf3, 0x3d, 0x62, 0xb1, 0x89, 0xe5, 0xc9, 0xcd, 0x75, 0xef, 0xb6, 0xa0, + 0x07, 0xdf, 0x00, 0xbb, 0x39, 0x77, 0xd6, 0x82, 0xad, 0xc9, 0xe8, 0xfb, 0xd1, 0xf9, 0xc5, 0xa8, + 0x73, 0x8f, 0x35, 0x61, 0xf3, 0x6c, 0x38, 0x9a, 0xfc, 0xd0, 0xb1, 0x72, 0xfc, 0x62, 0x38, 0x3a, + 0x3d, 0xbf, 0x18, 0x77, 0x6a, 0x83, 0xbf, 0x2d, 0x78, 0xbf, 0x1c, 0x7b, 0x9c, 0xef, 0x26, 0x86, + 0xd0, 0x18, 0x26, 0x6f, 0xc4, 0x15, 0xb2, 0x2f, 0xee, 0x74, 0xe7, 0x9b, 0x77, 0xa3, 0xfb, 0xe5, + 0xdd, 0x9c, 0xcd, 0xcd, 0xef, 0xdc, 0x63, 0x6f, 0x61, 0x7b, 0xf1, 0x1e, 0xb0, 0x47, 0x77, 0x89, + 0x5d, 0x7b, 0xa8, 0xba, 0x8f, 0xdf, 0x2d, 0x68, 0x91, 0xf8, 0xe4, 0xab, 0x1f, 0xdd, 0x20, 0xd4, + 0xf3, 0x6c, 0x9a, 0x07, 0xb8, 0x71, 0xe8, 0x4b, 0xa1, 0xc4, 0xa5, 0x76, 0x63, 0xe1, 0xbb, 0x32, + 0xf5, 0xdd, 0x15, 0xa3, 0x5b, 0x30, 0x4e, 0x1b, 0xf4, 0x1e, 0x3d, 0xfa, 0x27, 0x00, 0x00, 0xff, + 0xff, 0x82, 0xe2, 0x3b, 0x93, 0xf8, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk.pb.go b/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk.pb.go index e2c7b01b..d64c193c 100644 --- a/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk.pb.go +++ b/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk.pb.go @@ -500,6 +500,93 @@ func (m *AzureGalleryImageProperties) GetVersion() string { return "" } +type AzureBlobImageProperties struct { + CatalogName string `protobuf:"bytes,1,opt,name=catalogName,proto3" json:"catalogName,omitempty"` + Audience string `protobuf:"bytes,2,opt,name=audience,proto3" json:"audience,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + ReleaseName string `protobuf:"bytes,4,opt,name=releaseName,proto3" json:"releaseName,omitempty"` + Parts uint32 `protobuf:"varint,5,opt,name=parts,proto3" json:"parts,omitempty"` + Cloud string `protobuf:"bytes,6,opt,name=cloud,proto3" json:"cloud,omitempty"` + Endpoint string `protobuf:"bytes,7,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AzureBlobImageProperties) Reset() { *m = AzureBlobImageProperties{} } +func (m *AzureBlobImageProperties) String() string { return proto.CompactTextString(m) } +func (*AzureBlobImageProperties) ProtoMessage() {} +func (*AzureBlobImageProperties) Descriptor() ([]byte, []int) { + return fileDescriptor_c1f33a566472b7b7, []int{9} +} + +func (m *AzureBlobImageProperties) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AzureBlobImageProperties.Unmarshal(m, b) +} +func (m *AzureBlobImageProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AzureBlobImageProperties.Marshal(b, m, deterministic) +} +func (m *AzureBlobImageProperties) XXX_Merge(src proto.Message) { + xxx_messageInfo_AzureBlobImageProperties.Merge(m, src) +} +func (m *AzureBlobImageProperties) XXX_Size() int { + return xxx_messageInfo_AzureBlobImageProperties.Size(m) +} +func (m *AzureBlobImageProperties) XXX_DiscardUnknown() { + xxx_messageInfo_AzureBlobImageProperties.DiscardUnknown(m) +} + +var xxx_messageInfo_AzureBlobImageProperties proto.InternalMessageInfo + +func (m *AzureBlobImageProperties) GetCatalogName() string { + if m != nil { + return m.CatalogName + } + return "" +} + +func (m *AzureBlobImageProperties) GetAudience() string { + if m != nil { + return m.Audience + } + return "" +} + +func (m *AzureBlobImageProperties) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *AzureBlobImageProperties) GetReleaseName() string { + if m != nil { + return m.ReleaseName + } + return "" +} + +func (m *AzureBlobImageProperties) GetParts() uint32 { + if m != nil { + return m.Parts + } + return 0 +} + +func (m *AzureBlobImageProperties) GetCloud() string { + if m != nil { + return m.Cloud + } + return "" +} + +func (m *AzureBlobImageProperties) GetEndpoint() string { + if m != nil { + return m.Endpoint + } + return "" +} + type VirtualHardDisk struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` @@ -536,7 +623,7 @@ func (m *VirtualHardDisk) Reset() { *m = VirtualHardDisk{} } func (m *VirtualHardDisk) String() string { return proto.CompactTextString(m) } func (*VirtualHardDisk) ProtoMessage() {} func (*VirtualHardDisk) Descriptor() ([]byte, []int) { - return fileDescriptor_c1f33a566472b7b7, []int{9} + return fileDescriptor_c1f33a566472b7b7, []int{10} } func (m *VirtualHardDisk) XXX_Unmarshal(b []byte) error { @@ -743,7 +830,7 @@ func (m *DiskNotificationRequest) Reset() { *m = DiskNotificationRequest func (m *DiskNotificationRequest) String() string { return proto.CompactTextString(m) } func (*DiskNotificationRequest) ProtoMessage() {} func (*DiskNotificationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1f33a566472b7b7, []int{10} + return fileDescriptor_c1f33a566472b7b7, []int{11} } func (m *DiskNotificationRequest) XXX_Unmarshal(b []byte) error { @@ -782,6 +869,7 @@ func init() { proto.RegisterType((*CloneImageProperties)(nil), "moc.nodeagent.storage.CloneImageProperties") proto.RegisterType((*HttpImageProperties)(nil), "moc.nodeagent.storage.HttpImageProperties") proto.RegisterType((*AzureGalleryImageProperties)(nil), "moc.nodeagent.storage.AzureGalleryImageProperties") + proto.RegisterType((*AzureBlobImageProperties)(nil), "moc.nodeagent.storage.AzureBlobImageProperties") proto.RegisterType((*VirtualHardDisk)(nil), "moc.nodeagent.storage.VirtualHardDisk") proto.RegisterType((*DiskNotificationRequest)(nil), "moc.nodeagent.storage.DiskNotificationRequest") } @@ -791,80 +879,82 @@ func init() { } var fileDescriptor_c1f33a566472b7b7 = []byte{ - // 1156 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x6e, 0xdb, 0x46, - 0x17, 0x0d, 0x6d, 0x59, 0xb6, 0xaf, 0x62, 0x45, 0x19, 0x39, 0x31, 0xa3, 0xc4, 0xfe, 0x04, 0xe6, - 0x43, 0x20, 0x18, 0x28, 0x65, 0xa8, 0x45, 0x5b, 0xa0, 0xe8, 0x42, 0xb6, 0xe2, 0x58, 0x8d, 0x91, - 0x14, 0x23, 0xdb, 0x8b, 0xa2, 0xa8, 0x3b, 0x22, 0xc7, 0xd2, 0xc0, 0x24, 0x87, 0x9d, 0x19, 0xba, - 0x50, 0xd0, 0x07, 0xe8, 0x23, 0xf4, 0x01, 0xba, 0xee, 0xae, 0x9b, 0xae, 0x0a, 0x74, 0xdb, 0x97, - 0xe8, 0x9b, 0x14, 0x9c, 0xa1, 0xfe, 0x28, 0x19, 0x70, 0x80, 0x66, 0x25, 0xcd, 0xb9, 0xe7, 0x9e, - 0x7b, 0xe7, 0xcc, 0x1f, 0xe1, 0x79, 0xc8, 0xbd, 0xcb, 0x88, 0xfb, 0x94, 0x0c, 0x68, 0xa4, 0x2e, - 0x6f, 0x98, 0x50, 0x09, 0x09, 0x86, 0x44, 0xf8, 0x3e, 0x93, 0xd7, 0x6e, 0x2c, 0xb8, 0xe2, 0xe8, - 0x51, 0xc8, 0x3d, 0x77, 0x42, 0x72, 0xa5, 0xe2, 0x82, 0x0c, 0x68, 0x6d, 0x6f, 0xc0, 0xf9, 0x20, - 0xa0, 0x4d, 0x4d, 0xea, 0x27, 0x57, 0xcd, 0x1f, 0x05, 0x89, 0x63, 0x2a, 0xa4, 0x49, 0xab, 0xed, - 0xa4, 0xda, 0x1e, 0x0f, 0x43, 0x1e, 0x65, 0x3f, 0x59, 0x60, 0x77, 0x26, 0x10, 0x71, 0xc5, 0xae, - 0x98, 0x47, 0x14, 0x9b, 0x84, 0x9f, 0xe6, 0x75, 0x69, 0x18, 0xab, 0x51, 0x16, 0x7c, 0x36, 0x93, - 0x9b, 0x35, 0xc2, 0xa2, 0x2b, 0x9e, 0x45, 0xf7, 0xe6, 0x4b, 0xc6, 0x89, 0xa2, 0x73, 0x95, 0xeb, - 0x79, 0x69, 0x9f, 0x4a, 0x4f, 0xb0, 0x58, 0x71, 0x61, 0x18, 0xce, 0x6f, 0x16, 0x3c, 0xbe, 0x30, - 0x2e, 0x9c, 0x10, 0xe1, 0x77, 0x98, 0xbc, 0xc6, 0xf4, 0x87, 0x84, 0x4a, 0x85, 0xbe, 0x5b, 0x88, - 0xf4, 0x46, 0x52, 0xd1, 0x50, 0xda, 0x56, 0x7d, 0xb5, 0x51, 0x6a, 0xbd, 0x70, 0x97, 0xfa, 0xe4, - 0xe6, 0xe5, 0x6e, 0x51, 0x41, 0x9f, 0xc0, 0xd6, 0xdb, 0x98, 0x0a, 0x6d, 0xc5, 0xd9, 0x28, 0xa6, - 0xf6, 0x4a, 0xdd, 0x6a, 0x94, 0x5b, 0x65, 0x2d, 0x3b, 0x89, 0xe0, 0x79, 0x92, 0xf3, 0x97, 0x05, - 0x3b, 0x0b, 0x0d, 0xcb, 0x98, 0x47, 0x92, 0x7e, 0xf0, 0x8e, 0x5b, 0x50, 0xc4, 0x54, 0x26, 0x81, - 0xd2, 0xad, 0x96, 0x5a, 0x35, 0xd7, 0xf8, 0xeb, 0x8e, 0xfd, 0x75, 0x0f, 0x39, 0x0f, 0x2e, 0x48, - 0x90, 0x50, 0x9c, 0x31, 0xd1, 0x36, 0xac, 0xbd, 0x14, 0x82, 0x0b, 0x7b, 0xb5, 0x6e, 0x35, 0x36, - 0xb1, 0x19, 0x38, 0x7f, 0x58, 0xf0, 0xbf, 0x5c, 0x91, 0xe9, 0x8c, 0x33, 0xff, 0x31, 0x54, 0x72, - 0x94, 0xf7, 0x9d, 0xc7, 0x42, 0x3e, 0x3a, 0x5a, 0xee, 0xf9, 0xae, 0x16, 0xbc, 0xb5, 0xa1, 0xdc, - 0x12, 0xfc, 0x69, 0x41, 0xfd, 0xf6, 0xe6, 0xb3, 0xb5, 0xf8, 0x10, 0xdd, 0xff, 0x77, 0xfe, 0xff, - 0x6d, 0x01, 0xea, 0x1d, 0xf7, 0xba, 0x21, 0x19, 0xd0, 0xaf, 0x05, 0x8f, 0xa9, 0x50, 0x8c, 0x4a, - 0x54, 0x87, 0x92, 0x47, 0x14, 0x09, 0xf8, 0xe0, 0x0d, 0x09, 0xa9, 0x6d, 0xe9, 0x94, 0x59, 0x08, - 0xd5, 0x60, 0x83, 0x24, 0x3e, 0xa3, 0x91, 0x67, 0xbc, 0xdb, 0xc4, 0x93, 0x31, 0xb2, 0x61, 0xfd, - 0x86, 0x0a, 0xc9, 0x78, 0x94, 0x15, 0x1b, 0x0f, 0x53, 0x5d, 0x41, 0x03, 0x4a, 0x24, 0xd5, 0xba, - 0x05, 0xa3, 0x3b, 0x03, 0xa5, 0x6d, 0xc6, 0x44, 0x28, 0x69, 0xaf, 0xd5, 0xad, 0xc6, 0x16, 0x36, - 0x03, 0xf4, 0x02, 0xca, 0x3e, 0x95, 0x8a, 0x45, 0xda, 0xdb, 0x0e, 0x13, 0x76, 0x51, 0xa7, 0xe6, - 0x50, 0xe7, 0x00, 0xb6, 0x4f, 0xb9, 0x47, 0x82, 0xfc, 0x7c, 0x6c, 0x28, 0xc4, 0x44, 0x0d, 0xcd, - 0x44, 0x0e, 0x0b, 0x3f, 0xff, 0x6e, 0x5b, 0x58, 0x23, 0xce, 0xe7, 0xb0, 0x7d, 0x14, 0xf0, 0x88, - 0x2e, 0x73, 0x20, 0xc5, 0x7b, 0x3c, 0x11, 0xde, 0xd4, 0x81, 0x29, 0xe4, 0x34, 0xa1, 0x7a, 0xa2, - 0x54, 0xbc, 0x58, 0x6a, 0x7d, 0xa8, 0x54, 0x7c, 0x8e, 0x4f, 0xb3, 0xa4, 0xf1, 0xd0, 0x39, 0x87, - 0xa7, 0xed, 0x77, 0x89, 0xa0, 0xaf, 0x48, 0x10, 0x50, 0x31, 0xca, 0x27, 0x3e, 0x83, 0xa2, 0x24, - 0xf2, 0x1c, 0x77, 0xe7, 0xba, 0xcc, 0xb0, 0x59, 0x4f, 0x57, 0xe6, 0x3c, 0x75, 0x7e, 0xdd, 0x80, - 0x07, 0xb9, 0x1d, 0x82, 0x10, 0x14, 0xa2, 0xe9, 0xc2, 0xe9, 0xff, 0xa8, 0x0c, 0x2b, 0xcc, 0xcf, - 0x92, 0x57, 0x98, 0xaf, 0xeb, 0x99, 0xc9, 0xad, 0x9a, 0x7a, 0xbf, 0x98, 0x7a, 0x1a, 0x9b, 0x38, - 0x56, 0xc8, 0x3b, 0x86, 0xfe, 0x0f, 0x5b, 0x1e, 0x8f, 0x14, 0x61, 0x11, 0x15, 0x7a, 0x15, 0xd7, - 0xb4, 0xe4, 0x3c, 0x88, 0x9e, 0x43, 0x51, 0x2a, 0xa2, 0x12, 0xa9, 0x57, 0xaa, 0xd4, 0x2a, 0xe9, - 0xcd, 0xde, 0xd3, 0x10, 0xce, 0x42, 0x69, 0x9b, 0x92, 0xbd, 0xa3, 0xf6, 0x7a, 0xdd, 0x6a, 0xac, - 0x62, 0xfd, 0x3f, 0x9d, 0xa8, 0x3f, 0x8a, 0x48, 0xc8, 0x3c, 0x7b, 0xa3, 0x6e, 0x35, 0x36, 0xf0, - 0x78, 0x98, 0x6e, 0x82, 0x7e, 0xc0, 0xbd, 0xeb, 0x94, 0xd6, 0x1f, 0x29, 0x2a, 0xed, 0xcd, 0xba, - 0xd5, 0x58, 0xc3, 0x39, 0x14, 0xb9, 0x80, 0x02, 0x3e, 0x60, 0x1e, 0x09, 0x24, 0xf5, 0x14, 0x17, - 0x86, 0x0b, 0x9a, 0xbb, 0x24, 0x82, 0x0e, 0xa0, 0x1a, 0x0f, 0x47, 0x32, 0x9f, 0x50, 0xd2, 0x09, - 0xcb, 0x42, 0x68, 0x1f, 0x2a, 0xe9, 0x6c, 0x05, 0x4f, 0x17, 0x32, 0x4a, 0xc2, 0x3e, 0x15, 0xf6, - 0x7d, 0x3d, 0x87, 0x05, 0x3c, 0xed, 0x66, 0x8a, 0x05, 0xdc, 0xbc, 0x78, 0xf6, 0x96, 0x66, 0x2f, - 0x89, 0xa0, 0x3d, 0x80, 0xf4, 0x09, 0xce, 0x54, 0xcb, 0x9a, 0x37, 0x83, 0xa4, 0x7a, 0xd9, 0x6b, - 0x1d, 0x12, 0x6f, 0xc8, 0x22, 0x73, 0x92, 0x1e, 0xe8, 0x35, 0x58, 0x12, 0x49, 0x0f, 0xaa, 0xf4, - 0x24, 0xd3, 0x8b, 0x59, 0x31, 0x07, 0x75, 0x3c, 0x46, 0xdf, 0x42, 0x35, 0xf7, 0xf2, 0xab, 0xf4, - 0x2e, 0x7c, 0xa8, 0xef, 0xc2, 0xfd, 0xbb, 0x5d, 0x4f, 0xe9, 0x4d, 0x88, 0x97, 0xc9, 0xa4, 0x5b, - 0x80, 0x46, 0x8a, 0xa9, 0x91, 0x8d, 0x66, 0xb6, 0xc0, 0x4b, 0x0d, 0xe1, 0x2c, 0x84, 0x76, 0xa1, - 0xa0, 0xc8, 0x40, 0xda, 0x55, 0x4d, 0xd9, 0xd4, 0x94, 0x33, 0x32, 0x90, 0x58, 0xc3, 0xe8, 0x00, - 0xc0, 0x6c, 0x48, 0x7d, 0x49, 0x6f, 0xeb, 0xc6, 0x2a, 0x9a, 0xa4, 0x8f, 0x8f, 0x39, 0x8a, 0x78, - 0x86, 0x83, 0xda, 0x50, 0x19, 0x8e, 0x62, 0x2a, 0x2e, 0x5e, 0xd1, 0x28, 0xbb, 0x8b, 0xed, 0x47, - 0x3a, 0xef, 0x91, 0xce, 0x3b, 0xc9, 0x05, 0xf1, 0x02, 0x1d, 0x7d, 0x05, 0x55, 0x2f, 0xe0, 0x89, - 0xdf, 0x8d, 0x98, 0xea, 0x10, 0x45, 0xb2, 0x3b, 0xe0, 0xb1, 0x56, 0xb1, 0xb5, 0xca, 0xd1, 0x62, - 0x1c, 0x2f, 0x4b, 0x42, 0x5f, 0x40, 0x39, 0x35, 0xe4, 0x98, 0x05, 0xf4, 0x98, 0x8b, 0x90, 0x28, - 0x7b, 0x47, 0xcb, 0x54, 0xb5, 0x4c, 0x67, 0x2e, 0x84, 0x73, 0x54, 0xe4, 0xc0, 0xe6, 0x19, 0x11, - 0x03, 0xaa, 0xce, 0x45, 0x60, 0xdb, 0x33, 0x27, 0x71, 0x0a, 0xa7, 0xa7, 0x22, 0x0e, 0x88, 0xba, - 0xe2, 0x22, 0x4c, 0xd5, 0xba, 0xbe, 0xfd, 0xc4, 0x5c, 0x8d, 0xf3, 0xa8, 0xf3, 0x25, 0xec, 0xa4, - 0xff, 0xde, 0xcc, 0x7c, 0x77, 0x8d, 0x1f, 0x58, 0x07, 0xee, 0x0b, 0x3a, 0x63, 0xb3, 0xb9, 0x35, - 0xe6, 0xb0, 0xfd, 0xd7, 0x50, 0x5d, 0xb2, 0xf0, 0xe8, 0x31, 0xa0, 0xb7, 0xbd, 0xcb, 0x8b, 0x2e, - 0x3e, 0x3b, 0x6f, 0x9f, 0x9e, 0xb4, 0x71, 0xa7, 0xd3, 0xed, 0xbd, 0xae, 0xdc, 0x43, 0xcf, 0xc0, - 0xee, 0xb4, 0xcf, 0xda, 0xe9, 0x68, 0x21, 0x6a, 0xb5, 0xfe, 0x59, 0x81, 0xed, 0x9c, 0x5a, 0x3b, - 0xdd, 0x63, 0x88, 0x41, 0xb1, 0x1b, 0xdd, 0xf0, 0x6b, 0x8a, 0x3e, 0xba, 0xe3, 0xe3, 0x68, 0xa6, - 0x50, 0x73, 0xef, 0x4a, 0x37, 0xaf, 0xb2, 0x73, 0x0f, 0x7d, 0x0f, 0x0f, 0x8f, 0x86, 0xd4, 0x9b, - 0x33, 0x04, 0xdd, 0x26, 0x73, 0x8b, 0x73, 0xb5, 0x27, 0x9a, 0x3f, 0x1f, 0x99, 0x54, 0xf8, 0x09, - 0xd6, 0xcd, 0xe7, 0x00, 0x45, 0x9f, 0xde, 0xad, 0xbd, 0xfc, 0xa7, 0x4f, 0xed, 0xb3, 0xf7, 0xce, - 0x1b, 0x57, 0x3f, 0x3c, 0xf8, 0xc6, 0x1d, 0x30, 0x35, 0x4c, 0xfa, 0xae, 0xc7, 0xc3, 0x66, 0xc8, - 0x3c, 0xc1, 0x25, 0xbf, 0x52, 0xcd, 0x90, 0x7b, 0x4d, 0x11, 0x7b, 0xcd, 0x89, 0x68, 0x33, 0x13, - 0xed, 0x17, 0xf5, 0xd7, 0xc3, 0xc7, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x48, 0xa1, 0x7d, - 0x1c, 0x0c, 0x00, 0x00, + // 1191 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0x1b, 0xb7, + 0x13, 0xcf, 0xfa, 0xdb, 0xe3, 0xd8, 0x71, 0x28, 0x27, 0x66, 0x94, 0x8f, 0xbf, 0xb0, 0xf9, 0x23, + 0x10, 0x02, 0x74, 0x65, 0xa8, 0x45, 0x5b, 0xa0, 0xe8, 0x41, 0xb6, 0x92, 0x58, 0x4d, 0x90, 0x14, + 0x94, 0xed, 0x43, 0x51, 0x34, 0xa5, 0x76, 0x69, 0x89, 0xf0, 0xee, 0x72, 0x4b, 0x72, 0x53, 0x28, + 0xe8, 0x03, 0xf4, 0x11, 0xfa, 0x00, 0x3d, 0xf7, 0xd6, 0x4b, 0x4f, 0x05, 0x7a, 0xed, 0x23, 0xf4, + 0xd2, 0x37, 0x29, 0x48, 0xae, 0xbe, 0x56, 0x32, 0xe0, 0x00, 0x0d, 0xd0, 0x93, 0x34, 0x33, 0xbf, + 0xf9, 0x71, 0xe6, 0xc7, 0x21, 0x97, 0xf0, 0x30, 0x11, 0xe1, 0xeb, 0x54, 0x44, 0x8c, 0xf6, 0x59, + 0xaa, 0x5f, 0xbf, 0xe1, 0x52, 0xe7, 0x34, 0x1e, 0x50, 0x19, 0x45, 0x5c, 0x5d, 0x04, 0x99, 0x14, + 0x5a, 0xa0, 0x5b, 0x89, 0x08, 0x83, 0x31, 0x28, 0x50, 0x5a, 0x48, 0xda, 0x67, 0xd5, 0x07, 0x7d, + 0x21, 0xfa, 0x31, 0x6b, 0x58, 0x50, 0x2f, 0x3f, 0x6f, 0x7c, 0x2f, 0x69, 0x96, 0x31, 0xa9, 0x5c, + 0x5a, 0x75, 0xdf, 0x70, 0x87, 0x22, 0x49, 0x44, 0x5a, 0xfc, 0x14, 0x81, 0xfb, 0x53, 0x81, 0x54, + 0x68, 0x7e, 0xce, 0x43, 0xaa, 0xf9, 0x38, 0x7c, 0xb7, 0xcc, 0xcb, 0x92, 0x4c, 0x0f, 0x8b, 0xe0, + 0xbd, 0xa9, 0xdc, 0xa2, 0x10, 0x9e, 0x9e, 0x8b, 0x22, 0xfa, 0x60, 0x76, 0xc9, 0x2c, 0xd7, 0x6c, + 0x66, 0xe5, 0x5a, 0x99, 0x3a, 0x62, 0x2a, 0x94, 0x3c, 0xd3, 0x42, 0x3a, 0x84, 0xff, 0x8b, 0x07, + 0xb7, 0xcf, 0x9c, 0x0a, 0xc7, 0x54, 0x46, 0x6d, 0xae, 0x2e, 0x08, 0xfb, 0x2e, 0x67, 0x4a, 0xa3, + 0x6f, 0xe6, 0x22, 0xdd, 0xa1, 0xd2, 0x2c, 0x51, 0xd8, 0xab, 0x2d, 0xd7, 0xb7, 0x9a, 0x8f, 0x82, + 0x85, 0x3a, 0x05, 0x65, 0xba, 0x4b, 0x58, 0xd0, 0x47, 0xb0, 0xfd, 0x2a, 0x63, 0xd2, 0x4a, 0x71, + 0x32, 0xcc, 0x18, 0x5e, 0xaa, 0x79, 0xf5, 0x9d, 0xe6, 0x8e, 0xa5, 0x1d, 0x47, 0xc8, 0x2c, 0xc8, + 0xff, 0xc3, 0x83, 0xfd, 0xb9, 0x82, 0x55, 0x26, 0x52, 0xc5, 0xde, 0x7b, 0xc5, 0x4d, 0x58, 0x23, + 0x4c, 0xe5, 0xb1, 0xb6, 0xa5, 0x6e, 0x35, 0xab, 0x81, 0xd3, 0x37, 0x18, 0xe9, 0x1b, 0x1c, 0x0a, + 0x11, 0x9f, 0xd1, 0x38, 0x67, 0xa4, 0x40, 0xa2, 0x3d, 0x58, 0x7d, 0x22, 0xa5, 0x90, 0x78, 0xb9, + 0xe6, 0xd5, 0x37, 0x89, 0x33, 0xfc, 0xdf, 0x3c, 0xf8, 0x5f, 0x69, 0x91, 0x49, 0xc7, 0x85, 0xfe, + 0x04, 0x76, 0x4b, 0x90, 0x77, 0xed, 0x63, 0x2e, 0x1f, 0x1d, 0x2d, 0xd6, 0xfc, 0xbe, 0x25, 0xbc, + 0xb4, 0xa0, 0xd2, 0x16, 0xfc, 0xee, 0x41, 0xed, 0xf2, 0xe2, 0x8b, 0xbd, 0x78, 0x1f, 0xd5, 0xff, + 0x7b, 0xfa, 0xff, 0xe9, 0x01, 0xea, 0x3e, 0xed, 0x76, 0x12, 0xda, 0x67, 0x5f, 0x4a, 0x91, 0x31, + 0xa9, 0x39, 0x53, 0xa8, 0x06, 0x5b, 0x21, 0xd5, 0x34, 0x16, 0xfd, 0x97, 0x34, 0x61, 0xd8, 0xb3, + 0x29, 0xd3, 0x2e, 0x54, 0x85, 0x0d, 0x9a, 0x47, 0x9c, 0xa5, 0xa1, 0xd3, 0x6e, 0x93, 0x8c, 0x6d, + 0x84, 0x61, 0xfd, 0x0d, 0x93, 0x8a, 0x8b, 0xb4, 0x58, 0x6c, 0x64, 0x1a, 0x5e, 0xc9, 0x62, 0x46, + 0x15, 0xb3, 0xbc, 0x2b, 0x8e, 0x77, 0xca, 0x65, 0xca, 0xcc, 0xa8, 0xd4, 0x0a, 0xaf, 0xd6, 0xbc, + 0xfa, 0x36, 0x71, 0x06, 0x7a, 0x04, 0x3b, 0x11, 0x53, 0x9a, 0xa7, 0x56, 0xdb, 0x36, 0x97, 0x78, + 0xcd, 0xa6, 0x96, 0xbc, 0xfe, 0x01, 0xec, 0xbd, 0x10, 0x21, 0x8d, 0xcb, 0xfd, 0x60, 0x58, 0xc9, + 0xa8, 0x1e, 0xb8, 0x46, 0x0e, 0x57, 0x7e, 0xfc, 0x15, 0x7b, 0xc4, 0x7a, 0xfc, 0x4f, 0x61, 0xef, + 0x28, 0x16, 0x29, 0x5b, 0xa4, 0x80, 0xf1, 0x77, 0x45, 0x2e, 0xc3, 0x89, 0x02, 0x13, 0x97, 0xdf, + 0x80, 0xca, 0xb1, 0xd6, 0xd9, 0xfc, 0x52, 0xeb, 0x03, 0xad, 0xb3, 0x53, 0xf2, 0xa2, 0x48, 0x1a, + 0x99, 0xfe, 0x29, 0xdc, 0x6d, 0xbd, 0xcd, 0x25, 0x7b, 0x46, 0xe3, 0x98, 0xc9, 0x61, 0x39, 0xf1, + 0x1e, 0xac, 0x29, 0xaa, 0x4e, 0x49, 0x67, 0xa6, 0xca, 0xc2, 0x37, 0xad, 0xe9, 0xd2, 0x8c, 0xa6, + 0xfe, 0x5f, 0x1e, 0x60, 0xcb, 0x7b, 0x18, 0x8b, 0xde, 0x7f, 0x7d, 0x23, 0xf7, 0x60, 0x35, 0x8c, + 0x45, 0x1e, 0x15, 0xfb, 0xe7, 0x0c, 0x53, 0x03, 0x4b, 0xa3, 0x4c, 0xf0, 0x54, 0xe3, 0x75, 0x57, + 0xc3, 0xc8, 0xf6, 0x7f, 0xde, 0x80, 0x1b, 0xa5, 0x03, 0x80, 0x10, 0xac, 0xa4, 0x93, 0x76, 0xec, + 0x7f, 0xb4, 0x03, 0x4b, 0x3c, 0x2a, 0x3a, 0x58, 0xe2, 0x91, 0x95, 0xd3, 0xed, 0xdd, 0xb2, 0x93, + 0xf3, 0x27, 0x27, 0xa7, 0xf5, 0x8d, 0x07, 0x62, 0xa5, 0x3c, 0x10, 0xe8, 0xff, 0xb0, 0x1d, 0x8a, + 0x54, 0x53, 0x9e, 0x32, 0x69, 0x7b, 0x5b, 0xb5, 0x94, 0xb3, 0x4e, 0xf4, 0x10, 0xd6, 0x94, 0xa6, + 0x3a, 0x57, 0xb6, 0x91, 0xad, 0xe6, 0x96, 0x3d, 0xcb, 0x5d, 0xeb, 0x22, 0x45, 0xc8, 0x94, 0xa9, + 0xf8, 0x5b, 0x66, 0x5b, 0x5a, 0x26, 0xf6, 0xbf, 0x91, 0x34, 0x1a, 0xa6, 0x34, 0xe1, 0x21, 0xde, + 0xa8, 0x79, 0xf5, 0x0d, 0x32, 0x32, 0xcd, 0x8c, 0xf7, 0x62, 0x11, 0x5e, 0x18, 0x58, 0x6f, 0xa8, + 0x99, 0xc2, 0x9b, 0x35, 0xaf, 0xbe, 0x4a, 0x4a, 0x5e, 0x14, 0x00, 0x8a, 0x45, 0x9f, 0x87, 0x34, + 0x56, 0x2c, 0xd4, 0x42, 0x3a, 0x2c, 0x58, 0xec, 0x82, 0x08, 0x3a, 0x80, 0x4a, 0x36, 0x18, 0xaa, + 0x72, 0xc2, 0x96, 0x4d, 0x58, 0x14, 0x42, 0x8f, 0x61, 0xd7, 0x74, 0x2b, 0x85, 0x99, 0xd3, 0x34, + 0x4f, 0x7a, 0x4c, 0xe2, 0xeb, 0xb6, 0x87, 0x39, 0xbf, 0xa9, 0x66, 0xe2, 0x8b, 0x85, 0xfb, 0xa0, + 0xe3, 0x6d, 0x8b, 0x5e, 0x10, 0x41, 0x0f, 0x00, 0xcc, 0x0b, 0xa3, 0x60, 0xdd, 0xb1, 0xb8, 0x29, + 0x8f, 0xe1, 0x2b, 0x1e, 0x23, 0x09, 0x0d, 0x07, 0x3c, 0x75, 0xf3, 0x75, 0xc3, 0xee, 0xc1, 0x82, + 0x88, 0x19, 0x1d, 0x15, 0x2a, 0x6e, 0x37, 0x73, 0xd7, 0x8d, 0xce, 0xc8, 0x46, 0x5f, 0x43, 0xa5, + 0xf4, 0xb0, 0xd1, 0xe6, 0xaa, 0xbf, 0x69, 0xaf, 0xfa, 0xc7, 0x57, 0xbb, 0x7d, 0xcd, 0x45, 0x4f, + 0x16, 0xd1, 0x98, 0x11, 0x60, 0xa9, 0xe6, 0x7a, 0x88, 0xd1, 0xd4, 0x08, 0x3c, 0xb1, 0x2e, 0x52, + 0x84, 0xd0, 0x7d, 0x58, 0xd1, 0xb4, 0xaf, 0x70, 0xc5, 0x42, 0x36, 0x2d, 0xe4, 0x84, 0xf6, 0x15, + 0xb1, 0x6e, 0x74, 0x00, 0xe0, 0x06, 0xd2, 0x7e, 0x83, 0xf6, 0x6c, 0x61, 0xbb, 0x16, 0x64, 0x0f, + 0xb2, 0xbb, 0x69, 0xc8, 0x14, 0x06, 0xb5, 0x60, 0x77, 0x30, 0xcc, 0x98, 0x3c, 0x7b, 0xc6, 0xd2, + 0xe2, 0x53, 0x83, 0x6f, 0xd9, 0xbc, 0x5b, 0x36, 0xef, 0xb8, 0x14, 0x24, 0x73, 0x70, 0xf4, 0x05, + 0x54, 0xec, 0xb1, 0xeb, 0xa4, 0x5c, 0xb7, 0xa9, 0xa6, 0xc5, 0x15, 0x77, 0xdb, 0xb2, 0x60, 0xcb, + 0x72, 0x34, 0x1f, 0x27, 0x8b, 0x92, 0xd0, 0x67, 0xb0, 0x63, 0x04, 0x79, 0xca, 0x63, 0xf6, 0x54, + 0xc8, 0x84, 0x6a, 0xbc, 0x6f, 0x69, 0x2a, 0x96, 0xa6, 0x3d, 0x13, 0x22, 0x25, 0x28, 0xf2, 0x61, + 0xf3, 0x84, 0xca, 0x3e, 0xd3, 0xa7, 0x32, 0xc6, 0x78, 0xea, 0x24, 0x4e, 0xdc, 0xe6, 0x54, 0x64, + 0x31, 0xd5, 0xe7, 0x42, 0x26, 0x86, 0xad, 0x13, 0xe1, 0x3b, 0xee, 0xe6, 0x9f, 0xf5, 0xfa, 0x9f, + 0xc3, 0xbe, 0xf9, 0xf7, 0x72, 0xea, 0x59, 0x39, 0x7a, 0x3f, 0xf8, 0x70, 0x5d, 0xb2, 0x29, 0x99, + 0xdd, 0xad, 0x31, 0xe3, 0x7b, 0xfc, 0x1c, 0x2a, 0x0b, 0x36, 0x1e, 0xdd, 0x06, 0xf4, 0xaa, 0xfb, + 0xfa, 0xac, 0x43, 0x4e, 0x4e, 0x5b, 0x2f, 0x8e, 0x5b, 0xa4, 0xdd, 0xee, 0x74, 0x9f, 0xef, 0x5e, + 0x43, 0xf7, 0x00, 0xb7, 0x5b, 0x27, 0x2d, 0x63, 0xcd, 0x45, 0xbd, 0xe6, 0xdf, 0x4b, 0xb0, 0x57, + 0x62, 0x6b, 0x99, 0x19, 0x43, 0x1c, 0xd6, 0x3a, 0xe9, 0x1b, 0x71, 0xc1, 0xd0, 0x07, 0x57, 0xfc, + 0xf6, 0xbb, 0x16, 0xaa, 0xc1, 0x55, 0xe1, 0xee, 0xd1, 0xe1, 0x5f, 0x43, 0xdf, 0xc2, 0xcd, 0xa3, + 0x01, 0x0b, 0x67, 0x04, 0x41, 0x97, 0xd1, 0x5c, 0xa2, 0x5c, 0xf5, 0x8e, 0xc5, 0xcf, 0x46, 0xc6, + 0x2b, 0xfc, 0x00, 0xeb, 0xee, 0xb5, 0xc3, 0xd0, 0xc7, 0x57, 0x2b, 0xaf, 0xfc, 0xb2, 0xab, 0x7e, + 0xf2, 0xce, 0x79, 0xa3, 0xd5, 0x0f, 0x0f, 0xbe, 0x0a, 0xfa, 0x5c, 0x0f, 0xf2, 0x5e, 0x10, 0x8a, + 0xa4, 0x91, 0xf0, 0x50, 0x0a, 0x25, 0xce, 0x75, 0x23, 0x11, 0x61, 0x43, 0x66, 0x61, 0x63, 0x4c, + 0xda, 0x28, 0x48, 0x7b, 0x6b, 0xf6, 0x71, 0xf4, 0xe1, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, + 0x1a, 0x17, 0x20, 0xfb, 0x0c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/rpc/nodeagent/storage/virtualharddisk/moc_nodeagent_virtualharddisk.proto b/rpc/nodeagent/storage/virtualharddisk/moc_nodeagent_virtualharddisk.proto index c09a7fee..db1b8f72 100644 --- a/rpc/nodeagent/storage/virtualharddisk/moc_nodeagent_virtualharddisk.proto +++ b/rpc/nodeagent/storage/virtualharddisk/moc_nodeagent_virtualharddisk.proto @@ -66,6 +66,16 @@ message AzureGalleryImageProperties { string version = 2; } +message AzureBlobImageProperties { + string catalogName = 1; + string audience = 2; + string version = 3; + string releaseName = 4; + uint32 parts = 5; + string cloud = 6; + string endpoint = 7; +} + message VirtualHardDisk { string name = 1; string id = 2; From cce55cb8e94d09ec54bd6efc0d2c1c7238adca7e Mon Sep 17 00:00:00 2001 From: Edwin Ouko Date: Tue, 9 Jun 2026 16:47:22 +0000 Subject: [PATCH 3/3] test(rpc): cover AzureBlobImageProperties JSON contract and parity Add unit tests around the AzureBlobImageProperties typed message added in 88f4406: * Cloudagent and nodeagent JSON-key tests pin the exact wire keys (catalogName, audience, version, releaseName, parts, cloud, endpoint) that mgmtappl/moc-sdk-for-go encode and wssdagent's parseBlobConfig decodes. A rename of any proto field becomes a loud test failure rather than a silent break of AGC downloads. * A reflection-based parity test asserts the cloudagent and nodeagent AzureBlobImageProperties types expose identical Go field names and JSON tags. Editing only one of the two .proto files would otherwise silently break wire compatibility between SDK encode and agent decode --- .../moc_cloudagent_galleryimage_test.go | 42 +++++++++++++ .../moc_nodeagent_virtualharddisk_test.go | 60 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 rpc/cloudagent/compute/moc_cloudagent_galleryimage_test.go diff --git a/rpc/cloudagent/compute/moc_cloudagent_galleryimage_test.go b/rpc/cloudagent/compute/moc_cloudagent_galleryimage_test.go new file mode 100644 index 00000000..78583e9e --- /dev/null +++ b/rpc/cloudagent/compute/moc_cloudagent_galleryimage_test.go @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the Apache v2.0 license. +package compute + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// TestAzureBlobImageProperties_JSONKeys locks the exact JSON keys produced by +// the cloudagent AzureBlobImageProperties message. moc-sdk-for-go marshals +// this struct into GalleryImage.sourcePath as the on-the-wire representation +// of AGC (AZURESTORAGEBLOB_SOURCE) image provisioning parameters. Renaming any +// of these proto fields would silently break the encoding agreement with +// wssdagent's parseBlobConfig on the decode side, so this test fails loudly +// if a field name drifts. +func TestAzureBlobImageProperties_JSONKeys(t *testing.T) { + props := AzureBlobImageProperties{ + CatalogName: "cat", + Audience: "aud", + Version: "v1", + ReleaseName: "rel", + Parts: 4, + Cloud: "AzureCloud", + Endpoint: "https://example.blob.core.windows.net", + } + raw, err := json.Marshal(&props) + require.NoError(t, err) + + var m map[string]any + require.NoError(t, json.Unmarshal(raw, &m)) + + expected := []string{"catalogName", "audience", "version", "releaseName", "parts", "cloud", "endpoint"} + for _, key := range expected { + _, ok := m[key] + assert.True(t, ok, "missing JSON key %q (renamed proto field?)", key) + } + assert.Len(t, m, len(expected), "unexpected extra/missing JSON keys: %v", m) +} diff --git a/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk_test.go b/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk_test.go index b24df9c6..e067da2c 100644 --- a/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk_test.go +++ b/rpc/nodeagent/storage/moc_nodeagent_virtualharddisk_test.go @@ -4,11 +4,14 @@ import ( "encoding/json" "errors" "net/url" + "reflect" "strings" "testing" + wssdcloudcompute "github.com/microsoft/moc/rpc/cloudagent/compute" "github.com/microsoft/moc/pkg/redact" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestRedactedError_VHD(t *testing.T) { @@ -26,3 +29,60 @@ func TestRedactedError_VHD(t *testing.T) { assert.False(t, strings.Contains(err.Error(), uri), err.Error()) } + +// TestAzureBlobImageProperties_JSONKeys locks the exact JSON keys produced by +// the nodeagent AzureBlobImageProperties message. wssdagent's parseBlobConfig +// unmarshals VirtualHardDisk.Source into a struct keyed by "cloud" and +// "endpoint"; mgmtappl / moc-sdk-for-go encode the same shape on the other +// side. Any rename of these proto fields would silently break AGC downloads, +// so this test fails loudly if the wire keys drift. +func TestAzureBlobImageProperties_JSONKeys(t *testing.T) { + props := AzureBlobImageProperties{ + CatalogName: "cat", + Audience: "aud", + Version: "v1", + ReleaseName: "rel", + Parts: 4, + Cloud: "AzureCloud", + Endpoint: "https://example.blob.core.windows.net", + } + raw, err := json.Marshal(&props) + require.NoError(t, err) + + var m map[string]any + require.NoError(t, json.Unmarshal(raw, &m)) + + expected := []string{"catalogName", "audience", "version", "releaseName", "parts", "cloud", "endpoint"} + for _, key := range expected { + _, ok := m[key] + assert.True(t, ok, "missing JSON key %q (renamed proto field?)", key) + } + assert.Len(t, m, len(expected), "unexpected extra/missing JSON keys: %v", m) +} + +// TestAzureBlobImageProperties_CloudagentNodeagentParity guards the invariant +// that the cloudagent and nodeagent AzureBlobImageProperties messages produce +// identical JSON. moc-sdk-for-go encodes the cloudagent flavor into +// GalleryImage.sourcePath; the agent ultimately decodes the same JSON on the +// nodeagent side. Editing only one of the two proto files would silently break +// wire compatibility — this test makes that drift a compile/test-time error. +func TestAzureBlobImageProperties_CloudagentNodeagentParity(t *testing.T) { + caTags := collectJSONTags(reflect.TypeOf(wssdcloudcompute.AzureBlobImageProperties{})) + naTags := collectJSONTags(reflect.TypeOf(AzureBlobImageProperties{})) + assert.Equal(t, caTags, naTags, + "cloudagent and nodeagent AzureBlobImageProperties must have identical Go field names and JSON tags") +} + +// collectJSONTags returns a map of exported Go field name -> JSON tag (first +// segment) for a struct type, skipping protoc-gen-go's internal XXX_ fields. +func collectJSONTags(typ reflect.Type) map[string]string { + out := map[string]string{} + for i := 0; i < typ.NumField(); i++ { + f := typ.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + out[f.Name] = strings.Split(f.Tag.Get("json"), ",")[0] + } + return out +}