github.com/livekit/protocol@v1.39.3/rpc/io.psrpc.go (about) 1 // Code generated by protoc-gen-psrpc v0.6.0, DO NOT EDIT. 2 // source: rpc/io.proto 3 4 package rpc 5 6 import ( 7 "context" 8 9 "github.com/livekit/psrpc" 10 "github.com/livekit/psrpc/pkg/client" 11 "github.com/livekit/psrpc/pkg/info" 12 "github.com/livekit/psrpc/pkg/rand" 13 "github.com/livekit/psrpc/pkg/server" 14 "github.com/livekit/psrpc/version" 15 ) 16 import google_protobuf "google.golang.org/protobuf/types/known/emptypb" 17 import livekit4 "github.com/livekit/protocol/livekit" 18 import livekit5 "github.com/livekit/protocol/livekit" 19 20 var _ = version.PsrpcVersion_0_6 21 22 // ======================= 23 // IOInfo Client Interface 24 // ======================= 25 26 type IOInfoClient interface { 27 // egress 28 CreateEgress(ctx context.Context, req *livekit4.EgressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 29 30 UpdateEgress(ctx context.Context, req *livekit4.EgressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 31 32 GetEgress(ctx context.Context, req *GetEgressRequest, opts ...psrpc.RequestOption) (*livekit4.EgressInfo, error) 33 34 ListEgress(ctx context.Context, req *livekit4.ListEgressRequest, opts ...psrpc.RequestOption) (*livekit4.ListEgressResponse, error) 35 36 UpdateMetrics(ctx context.Context, req *UpdateMetricsRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 37 38 // ingress 39 CreateIngress(ctx context.Context, req *livekit5.IngressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 40 41 GetIngressInfo(ctx context.Context, req *GetIngressInfoRequest, opts ...psrpc.RequestOption) (*GetIngressInfoResponse, error) 42 43 UpdateIngressState(ctx context.Context, req *UpdateIngressStateRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 44 45 // sip 46 GetSIPTrunkAuthentication(ctx context.Context, req *GetSIPTrunkAuthenticationRequest, opts ...psrpc.RequestOption) (*GetSIPTrunkAuthenticationResponse, error) 47 48 EvaluateSIPDispatchRules(ctx context.Context, req *EvaluateSIPDispatchRulesRequest, opts ...psrpc.RequestOption) (*EvaluateSIPDispatchRulesResponse, error) 49 50 UpdateSIPCallState(ctx context.Context, req *UpdateSIPCallStateRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) 51 52 // Close immediately, without waiting for pending RPCs 53 Close() 54 } 55 56 // =========================== 57 // IOInfo ServerImpl Interface 58 // =========================== 59 60 type IOInfoServerImpl interface { 61 // egress 62 CreateEgress(context.Context, *livekit4.EgressInfo) (*google_protobuf.Empty, error) 63 64 UpdateEgress(context.Context, *livekit4.EgressInfo) (*google_protobuf.Empty, error) 65 66 GetEgress(context.Context, *GetEgressRequest) (*livekit4.EgressInfo, error) 67 68 ListEgress(context.Context, *livekit4.ListEgressRequest) (*livekit4.ListEgressResponse, error) 69 70 UpdateMetrics(context.Context, *UpdateMetricsRequest) (*google_protobuf.Empty, error) 71 72 // ingress 73 CreateIngress(context.Context, *livekit5.IngressInfo) (*google_protobuf.Empty, error) 74 75 GetIngressInfo(context.Context, *GetIngressInfoRequest) (*GetIngressInfoResponse, error) 76 77 UpdateIngressState(context.Context, *UpdateIngressStateRequest) (*google_protobuf.Empty, error) 78 79 // sip 80 GetSIPTrunkAuthentication(context.Context, *GetSIPTrunkAuthenticationRequest) (*GetSIPTrunkAuthenticationResponse, error) 81 82 EvaluateSIPDispatchRules(context.Context, *EvaluateSIPDispatchRulesRequest) (*EvaluateSIPDispatchRulesResponse, error) 83 84 UpdateSIPCallState(context.Context, *UpdateSIPCallStateRequest) (*google_protobuf.Empty, error) 85 } 86 87 // ======================= 88 // IOInfo Server Interface 89 // ======================= 90 91 type IOInfoServer interface { 92 93 // Close and wait for pending RPCs to complete 94 Shutdown() 95 96 // Close immediately, without waiting for pending RPCs 97 Kill() 98 } 99 100 // ============= 101 // IOInfo Client 102 // ============= 103 104 type iOInfoClient struct { 105 client *client.RPCClient 106 } 107 108 // NewIOInfoClient creates a psrpc client that implements the IOInfoClient interface. 109 func NewIOInfoClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) (IOInfoClient, error) { 110 sd := &info.ServiceDefinition{ 111 Name: "IOInfo", 112 ID: rand.NewClientID(), 113 } 114 115 sd.RegisterMethod("CreateEgress", false, false, true, true) 116 sd.RegisterMethod("UpdateEgress", false, false, true, true) 117 sd.RegisterMethod("GetEgress", false, false, true, true) 118 sd.RegisterMethod("ListEgress", false, false, true, true) 119 sd.RegisterMethod("UpdateMetrics", false, false, true, true) 120 sd.RegisterMethod("CreateIngress", false, false, true, true) 121 sd.RegisterMethod("GetIngressInfo", false, false, true, true) 122 sd.RegisterMethod("UpdateIngressState", false, false, true, true) 123 sd.RegisterMethod("GetSIPTrunkAuthentication", false, false, true, true) 124 sd.RegisterMethod("EvaluateSIPDispatchRules", false, false, true, true) 125 sd.RegisterMethod("UpdateSIPCallState", false, false, true, true) 126 127 rpcClient, err := client.NewRPCClient(sd, bus, opts...) 128 if err != nil { 129 return nil, err 130 } 131 132 return &iOInfoClient{ 133 client: rpcClient, 134 }, nil 135 } 136 137 func (c *iOInfoClient) CreateEgress(ctx context.Context, req *livekit4.EgressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 138 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "CreateEgress", nil, req, opts...) 139 } 140 141 func (c *iOInfoClient) UpdateEgress(ctx context.Context, req *livekit4.EgressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 142 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "UpdateEgress", nil, req, opts...) 143 } 144 145 func (c *iOInfoClient) GetEgress(ctx context.Context, req *GetEgressRequest, opts ...psrpc.RequestOption) (*livekit4.EgressInfo, error) { 146 return client.RequestSingle[*livekit4.EgressInfo](ctx, c.client, "GetEgress", nil, req, opts...) 147 } 148 149 func (c *iOInfoClient) ListEgress(ctx context.Context, req *livekit4.ListEgressRequest, opts ...psrpc.RequestOption) (*livekit4.ListEgressResponse, error) { 150 return client.RequestSingle[*livekit4.ListEgressResponse](ctx, c.client, "ListEgress", nil, req, opts...) 151 } 152 153 func (c *iOInfoClient) UpdateMetrics(ctx context.Context, req *UpdateMetricsRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 154 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "UpdateMetrics", nil, req, opts...) 155 } 156 157 func (c *iOInfoClient) CreateIngress(ctx context.Context, req *livekit5.IngressInfo, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 158 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "CreateIngress", nil, req, opts...) 159 } 160 161 func (c *iOInfoClient) GetIngressInfo(ctx context.Context, req *GetIngressInfoRequest, opts ...psrpc.RequestOption) (*GetIngressInfoResponse, error) { 162 return client.RequestSingle[*GetIngressInfoResponse](ctx, c.client, "GetIngressInfo", nil, req, opts...) 163 } 164 165 func (c *iOInfoClient) UpdateIngressState(ctx context.Context, req *UpdateIngressStateRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 166 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "UpdateIngressState", nil, req, opts...) 167 } 168 169 func (c *iOInfoClient) GetSIPTrunkAuthentication(ctx context.Context, req *GetSIPTrunkAuthenticationRequest, opts ...psrpc.RequestOption) (*GetSIPTrunkAuthenticationResponse, error) { 170 return client.RequestSingle[*GetSIPTrunkAuthenticationResponse](ctx, c.client, "GetSIPTrunkAuthentication", nil, req, opts...) 171 } 172 173 func (c *iOInfoClient) EvaluateSIPDispatchRules(ctx context.Context, req *EvaluateSIPDispatchRulesRequest, opts ...psrpc.RequestOption) (*EvaluateSIPDispatchRulesResponse, error) { 174 return client.RequestSingle[*EvaluateSIPDispatchRulesResponse](ctx, c.client, "EvaluateSIPDispatchRules", nil, req, opts...) 175 } 176 177 func (c *iOInfoClient) UpdateSIPCallState(ctx context.Context, req *UpdateSIPCallStateRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { 178 return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "UpdateSIPCallState", nil, req, opts...) 179 } 180 181 func (s *iOInfoClient) Close() { 182 s.client.Close() 183 } 184 185 // ============= 186 // IOInfo Server 187 // ============= 188 189 type iOInfoServer struct { 190 svc IOInfoServerImpl 191 rpc *server.RPCServer 192 } 193 194 // NewIOInfoServer builds a RPCServer that will route requests 195 // to the corresponding method in the provided svc implementation. 196 func NewIOInfoServer(svc IOInfoServerImpl, bus psrpc.MessageBus, opts ...psrpc.ServerOption) (IOInfoServer, error) { 197 sd := &info.ServiceDefinition{ 198 Name: "IOInfo", 199 ID: rand.NewServerID(), 200 } 201 202 s := server.NewRPCServer(sd, bus, opts...) 203 204 sd.RegisterMethod("CreateEgress", false, false, true, true) 205 var err error 206 err = server.RegisterHandler(s, "CreateEgress", nil, svc.CreateEgress, nil) 207 if err != nil { 208 s.Close(false) 209 return nil, err 210 } 211 212 sd.RegisterMethod("UpdateEgress", false, false, true, true) 213 err = server.RegisterHandler(s, "UpdateEgress", nil, svc.UpdateEgress, nil) 214 if err != nil { 215 s.Close(false) 216 return nil, err 217 } 218 219 sd.RegisterMethod("GetEgress", false, false, true, true) 220 err = server.RegisterHandler(s, "GetEgress", nil, svc.GetEgress, nil) 221 if err != nil { 222 s.Close(false) 223 return nil, err 224 } 225 226 sd.RegisterMethod("ListEgress", false, false, true, true) 227 err = server.RegisterHandler(s, "ListEgress", nil, svc.ListEgress, nil) 228 if err != nil { 229 s.Close(false) 230 return nil, err 231 } 232 233 sd.RegisterMethod("UpdateMetrics", false, false, true, true) 234 err = server.RegisterHandler(s, "UpdateMetrics", nil, svc.UpdateMetrics, nil) 235 if err != nil { 236 s.Close(false) 237 return nil, err 238 } 239 240 sd.RegisterMethod("CreateIngress", false, false, true, true) 241 err = server.RegisterHandler(s, "CreateIngress", nil, svc.CreateIngress, nil) 242 if err != nil { 243 s.Close(false) 244 return nil, err 245 } 246 247 sd.RegisterMethod("GetIngressInfo", false, false, true, true) 248 err = server.RegisterHandler(s, "GetIngressInfo", nil, svc.GetIngressInfo, nil) 249 if err != nil { 250 s.Close(false) 251 return nil, err 252 } 253 254 sd.RegisterMethod("UpdateIngressState", false, false, true, true) 255 err = server.RegisterHandler(s, "UpdateIngressState", nil, svc.UpdateIngressState, nil) 256 if err != nil { 257 s.Close(false) 258 return nil, err 259 } 260 261 sd.RegisterMethod("GetSIPTrunkAuthentication", false, false, true, true) 262 err = server.RegisterHandler(s, "GetSIPTrunkAuthentication", nil, svc.GetSIPTrunkAuthentication, nil) 263 if err != nil { 264 s.Close(false) 265 return nil, err 266 } 267 268 sd.RegisterMethod("EvaluateSIPDispatchRules", false, false, true, true) 269 err = server.RegisterHandler(s, "EvaluateSIPDispatchRules", nil, svc.EvaluateSIPDispatchRules, nil) 270 if err != nil { 271 s.Close(false) 272 return nil, err 273 } 274 275 sd.RegisterMethod("UpdateSIPCallState", false, false, true, true) 276 err = server.RegisterHandler(s, "UpdateSIPCallState", nil, svc.UpdateSIPCallState, nil) 277 if err != nil { 278 s.Close(false) 279 return nil, err 280 } 281 282 return &iOInfoServer{ 283 svc: svc, 284 rpc: s, 285 }, nil 286 } 287 288 func (s *iOInfoServer) Shutdown() { 289 s.rpc.Close(false) 290 } 291 292 func (s *iOInfoServer) Kill() { 293 s.rpc.Close(true) 294 } 295 296 var psrpcFileDescriptor4 = []byte{ 297 // 1703 bytes of a gzipped FileDescriptorProto 298 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x18, 0xdb, 0x52, 0xe3, 0xc8, 299 0x35, 0xc6, 0xc6, 0xe0, 0x63, 0x83, 0x4d, 0x63, 0x28, 0x61, 0x92, 0x1d, 0xc6, 0x9b, 0xc9, 0x32, 300 0x49, 0x95, 0xc9, 0x92, 0x87, 0x24, 0xbb, 0xb5, 0x5b, 0x0b, 0x8c, 0x67, 0x46, 0x09, 0x33, 0xe3, 301 0x08, 0x78, 0x48, 0x5e, 0x94, 0x46, 0x6a, 0x4c, 0x2f, 0xb2, 0x5a, 0xe9, 0x6e, 0x31, 0xc3, 0x17, 302 0x24, 0x2f, 0xf9, 0x97, 0x7c, 0x41, 0xaa, 0xf2, 0x0d, 0x79, 0xc9, 0x9f, 0xe4, 0x35, 0xd5, 0x17, 303 0xc9, 0x32, 0x96, 0x17, 0xc8, 0x93, 0xd5, 0xe7, 0x7e, 0xeb, 0xd3, 0xe7, 0x18, 0x5a, 0x3c, 0x09, 304 0x0e, 0x28, 0x1b, 0x24, 0x9c, 0x49, 0x86, 0xaa, 0x3c, 0x09, 0x7a, 0xdd, 0x88, 0xde, 0x92, 0x1b, 305 0x2a, 0x7d, 0x32, 0xe6, 0x44, 0x08, 0x83, 0xea, 0x6d, 0x65, 0x50, 0x1a, 0x17, 0xc1, 0x1b, 0x19, 306 0x58, 0xd0, 0xc4, 0x82, 0x50, 0x06, 0xe2, 0x8c, 0x4d, 0x2c, 0x6c, 0x77, 0xcc, 0xd8, 0x38, 0x22, 307 0x07, 0xfa, 0x74, 0x99, 0x5e, 0x1d, 0x90, 0x49, 0x22, 0xef, 0x2c, 0xf2, 0xb3, 0xfb, 0xc8, 0x30, 308 0xe5, 0x58, 0x52, 0x16, 0x1b, 0x7c, 0xff, 0x00, 0x3a, 0x6f, 0x88, 0x1c, 0x6a, 0xb5, 0x1e, 0xf9, 309 0x4b, 0x4a, 0x84, 0x44, 0xbb, 0xd0, 0x30, 0xe6, 0xf9, 0x34, 0x74, 0x2a, 0x7b, 0x95, 0xfd, 0x86, 310 0xb7, 0x6a, 0x00, 0x6e, 0xd8, 0xff, 0x6b, 0x05, 0xba, 0x17, 0x49, 0x88, 0x25, 0x79, 0x47, 0x24, 311 0xa7, 0x41, 0xce, 0xf5, 0x05, 0xd4, 0x68, 0x7c, 0xc5, 0x34, 0x43, 0xf3, 0x70, 0x73, 0x60, 0x2d, 312 0x1d, 0x18, 0xd9, 0x6e, 0x7c, 0xc5, 0x3c, 0x4d, 0x80, 0xfa, 0xb0, 0x86, 0x6f, 0xc7, 0x7e, 0x90, 313 0xa4, 0x7e, 0x2a, 0xf0, 0x98, 0x38, 0xd5, 0xbd, 0xca, 0xfe, 0x92, 0xd7, 0xc4, 0xb7, 0xe3, 0x93, 314 0x24, 0xbd, 0x50, 0x20, 0x45, 0x33, 0xc1, 0x9f, 0x0a, 0x34, 0x35, 0x43, 0x33, 0xc1, 0x9f, 0x32, 315 0x9a, 0xfe, 0x05, 0x6c, 0xbd, 0x21, 0xd2, 0x8d, 0xa7, 0xf2, 0xad, 0x25, 0x3f, 0x01, 0xb0, 0x81, 316 0x9c, 0x3a, 0xd0, 0xb0, 0x10, 0x37, 0x54, 0x68, 0x21, 0x39, 0xc1, 0x13, 0xff, 0x86, 0xdc, 0x39, 317 0x4b, 0x06, 0x6d, 0x20, 0xbf, 0x27, 0x77, 0xfd, 0xbf, 0x2d, 0xc1, 0xf6, 0x7d, 0xb9, 0x22, 0x61, 318 0xb1, 0x20, 0x68, 0x7f, 0xc6, 0xc5, 0x6e, 0xee, 0x62, 0x91, 0xd6, 0xf8, 0xd8, 0x85, 0x65, 0xc9, 319 0x6e, 0x48, 0x6c, 0xc5, 0x9b, 0x03, 0xda, 0x82, 0xfa, 0x47, 0xe1, 0xa7, 0x3c, 0xd2, 0x2e, 0x37, 320 0xbc, 0xe5, 0x8f, 0xe2, 0x82, 0x47, 0xe8, 0x02, 0xd6, 0x23, 0x36, 0x1e, 0xd3, 0x78, 0xec, 0x5f, 321 0x51, 0x12, 0x85, 0xc2, 0xa9, 0xed, 0x55, 0xf7, 0x9b, 0x87, 0x83, 0x01, 0x4f, 0x82, 0x41, 0xb9, 322 0x2d, 0x83, 0x53, 0xc3, 0xf1, 0x5a, 0x33, 0x0c, 0x63, 0xc9, 0xef, 0xbc, 0xb5, 0xa8, 0x08, 0xeb, 323 0x7d, 0x07, 0x68, 0x9e, 0x08, 0x75, 0xa0, 0xaa, 0xdc, 0x36, 0x51, 0x51, 0x9f, 0xca, 0xd6, 0x5b, 324 0x1c, 0xa5, 0x24, 0xb3, 0x55, 0x1f, 0xbe, 0x5a, 0xfa, 0x4d, 0xa5, 0x3f, 0x86, 0x1d, 0x93, 0x6a, 325 0x6b, 0xc0, 0x99, 0xc4, 0x92, 0x3c, 0x32, 0xca, 0xbf, 0x80, 0x65, 0xa1, 0xc8, 0xb5, 0xd4, 0xe6, 326 0xe1, 0xd6, 0xfd, 0x60, 0x19, 0x59, 0x86, 0xa6, 0xff, 0xdf, 0x0a, 0xec, 0xbd, 0x21, 0xf2, 0xcc, 327 0x1d, 0x9d, 0xf3, 0x34, 0xbe, 0x39, 0x4a, 0xe5, 0x35, 0x89, 0x25, 0x0d, 0x74, 0xa5, 0x66, 0x0a, 328 0xfb, 0xd0, 0x14, 0x34, 0xf1, 0x03, 0x1c, 0x45, 0x4a, 0x63, 0x5d, 0x69, 0x3c, 0x5e, 0x72, 0x2a, 329 0x5e, 0x43, 0xd0, 0xe4, 0x04, 0x47, 0x91, 0x1b, 0xa2, 0x6d, 0xa8, 0x5d, 0x71, 0x36, 0x31, 0xae, 330 0x68, 0xa4, 0x3e, 0xa3, 0x67, 0xd0, 0x50, 0xbf, 0xfe, 0x35, 0x13, 0xd2, 0x59, 0xc9, 0x91, 0xab, 331 0x0a, 0xf8, 0x96, 0x09, 0x89, 0x10, 0x2c, 0x49, 0x66, 0xd2, 0xa2, 0x31, 0x4b, 0x92, 0xa1, 0x5d, 332 0x58, 0x91, 0xcc, 0xb0, 0x2c, 0xe7, 0x88, 0xba, 0x64, 0x9a, 0xe1, 0x73, 0x68, 0x0a, 0x1e, 0xf8, 333 0x38, 0x0c, 0x95, 0x37, 0xba, 0x3e, 0x0d, 0x01, 0x08, 0x1e, 0x1c, 0x19, 0x28, 0xda, 0x83, 0x9a, 334 0x32, 0xd7, 0x59, 0xd5, 0x31, 0x68, 0xe9, 0x7c, 0x9e, 0xb9, 0x23, 0x65, 0xac, 0xa7, 0x31, 0xfd, 335 0x7f, 0x54, 0xe0, 0xf9, 0x0f, 0x78, 0x6e, 0x0b, 0xaf, 0x07, 0xab, 0xa9, 0x20, 0x3c, 0xc6, 0x13, 336 0x92, 0x5d, 0xc8, 0xec, 0xac, 0x70, 0x09, 0x16, 0xe2, 0x23, 0xe3, 0xa1, 0xcd, 0x60, 0x7e, 0x46, 337 0x08, 0x6a, 0x21, 0x67, 0x89, 0xf6, 0x6b, 0xd5, 0xd3, 0xdf, 0x68, 0x0f, 0x5a, 0x2a, 0x8c, 0x52, 338 0xa9, 0x53, 0x71, 0xd4, 0x96, 0x7b, 0x20, 0x68, 0xa2, 0x2d, 0x30, 0x17, 0x24, 0xe1, 0xec, 0x7b, 339 0x12, 0x48, 0x85, 0x5f, 0x36, 0x99, 0xb5, 0x10, 0x37, 0xec, 0xff, 0xbb, 0x06, 0xcf, 0x86, 0xaa, 340 0x48, 0xb0, 0x24, 0x67, 0xee, 0xe8, 0x15, 0x15, 0x09, 0x96, 0xc1, 0xb5, 0x97, 0x46, 0x44, 0x2c, 341 0xc8, 0xd5, 0x6a, 0x59, 0xae, 0x7e, 0x09, 0x48, 0xd1, 0x24, 0x98, 0x4b, 0x1a, 0xd0, 0x04, 0xc7, 342 0x32, 0x2f, 0x24, 0x4d, 0xda, 0x11, 0x34, 0x19, 0x4d, 0x91, 0x6e, 0x38, 0x67, 0x3a, 0xcc, 0x99, 343 0xfe, 0x12, 0xd6, 0x95, 0x4e, 0x75, 0x95, 0xe2, 0x74, 0x72, 0x49, 0x78, 0xa1, 0x12, 0xd6, 0x2c, 344 0xe6, 0xbd, 0x46, 0xa0, 0x17, 0xd0, 0xca, 0x48, 0x75, 0x8a, 0x9b, 0x39, 0x61, 0xd3, 0xc2, 0x75, 345 0x9e, 0xbf, 0x00, 0xcd, 0x47, 0xc2, 0x4c, 0xe0, 0xb4, 0x46, 0x5a, 0x06, 0x61, 0xe5, 0x3d, 0xaa, 346 0x20, 0x3a, 0x50, 0x4d, 0x68, 0x6c, 0x63, 0xaa, 0x3e, 0x55, 0x4f, 0x88, 0x99, 0xaf, 0x80, 0x75, 347 0x9d, 0xa4, 0xe5, 0x98, 0x8d, 0x68, 0xac, 0xa4, 0x59, 0xb5, 0xf7, 0x4a, 0x16, 0x0c, 0x58, 0xdb, 348 0x16, 0x42, 0x87, 0x7c, 0x92, 0x1c, 0xfb, 0x58, 0x4a, 0x4e, 0x2f, 0x53, 0x49, 0x84, 0xd3, 0xd0, 349 0xad, 0xe3, 0xb7, 0xba, 0xd4, 0x1e, 0xc8, 0xd2, 0x60, 0xa8, 0x98, 0x8f, 0x72, 0x5e, 0xd3, 0x45, 350 0xda, 0x64, 0x16, 0x9a, 0x17, 0x71, 0x6b, 0x51, 0x11, 0xf7, 0x8e, 0xa1, 0x5b, 0x26, 0xea, 0x49, 351 0xbd, 0xe6, 0x9f, 0x2d, 0xd8, 0x5b, 0x6c, 0xaf, 0xbd, 0x07, 0xbb, 0xd0, 0x50, 0x0f, 0x9f, 0x5f, 352 0xbc, 0x08, 0x0a, 0xf0, 0x5e, 0x5d, 0x84, 0x2f, 0xa1, 0x3b, 0x5b, 0x4b, 0xea, 0x22, 0xc9, 0xac, 353 0xc3, 0x6f, 0x26, 0xc5, 0x52, 0x32, 0x28, 0xf4, 0x12, 0x3a, 0x45, 0x16, 0x2d, 0x56, 0x87, 0xda, 354 0x6b, 0x17, 0xe0, 0x65, 0xd2, 0x27, 0x44, 0xe2, 0x10, 0x4b, 0x6c, 0x4a, 0x7b, 0x46, 0xfa, 0x3b, 355 0x8b, 0x42, 0x1f, 0x61, 0xbb, 0xc8, 0x52, 0x48, 0x52, 0x53, 0x27, 0xe9, 0xbb, 0x07, 0x92, 0x64, 356 0x3b, 0x7d, 0xe1, 0x0e, 0xdc, 0xcf, 0xd5, 0x56, 0x52, 0x86, 0x53, 0xc5, 0xc3, 0x4d, 0x8a, 0x75, 357 0x61, 0xe9, 0xdb, 0x6f, 0x8a, 0xc7, 0x82, 0x55, 0x85, 0xe5, 0x4f, 0x54, 0xad, 0xfc, 0x89, 0x5a, 358 0x2e, 0x3e, 0x51, 0x03, 0xa8, 0x73, 0x22, 0xd2, 0x48, 0xea, 0x2a, 0x5d, 0x3f, 0xdc, 0xce, 0xaa, 359 0x20, 0x37, 0x59, 0x63, 0x3d, 0x4b, 0x35, 0x77, 0x53, 0x1b, 0x73, 0x37, 0xf5, 0x00, 0xba, 0x8a, 360 0x22, 0xb4, 0xfc, 0x3e, 0x4f, 0x23, 0x32, 0xbd, 0xd3, 0x1b, 0x82, 0x26, 0xc5, 0x68, 0xcc, 0x75, 361 0xa5, 0xd6, 0xbd, 0xae, 0x84, 0x4e, 0x61, 0xe5, 0x9a, 0xe0, 0x90, 0x70, 0xe1, 0xac, 0xe9, 0xe8, 362 0x1e, 0x3e, 0x2e, 0xba, 0x6f, 0x0d, 0x93, 0x89, 0x67, 0x26, 0x02, 0x71, 0xd8, 0xb2, 0x9f, 0xbe, 363 0x64, 0xc5, 0xcc, 0xad, 0x6b, 0xd9, 0xdf, 0x3e, 0x49, 0xf6, 0x39, 0xbb, 0x9f, 0xb7, 0xcd, 0xeb, 364 0x79, 0x8c, 0xd2, 0x39, 0x55, 0xa4, 0xd4, 0x66, 0xfe, 0xa0, 0xa7, 0xe8, 0x9c, 0x0a, 0x3c, 0x67, 365 0x33, 0xbe, 0x6d, 0xe2, 0x79, 0x0c, 0x3a, 0x86, 0x36, 0x8d, 0x83, 0x28, 0x0d, 0x49, 0xae, 0x6d, 366 0x53, 0x27, 0x78, 0x27, 0x7f, 0xaf, 0xcf, 0xdc, 0x91, 0xa1, 0xfe, 0x90, 0xa8, 0x37, 0x49, 0x78, 367 0xeb, 0x96, 0x23, 0x93, 0xf1, 0x2d, 0x74, 0x48, 0x8c, 0x2f, 0x55, 0xaf, 0xba, 0x22, 0x58, 0xa6, 368 0x9c, 0x08, 0xa7, 0xbd, 0x57, 0xdd, 0x5f, 0x2f, 0x0c, 0x81, 0x67, 0xee, 0xe8, 0xb5, 0xc1, 0x79, 369 0x6d, 0x4b, 0x6c, 0xcf, 0xda, 0x06, 0x4e, 0x63, 0x3d, 0xfe, 0x48, 0x3a, 0x21, 0x2c, 0x95, 0x4e, 370 0x47, 0xb7, 0x9a, 0x9d, 0x81, 0x19, 0x5e, 0x07, 0xd9, 0xf0, 0x3a, 0x78, 0x65, 0x87, 0x57, 0x6f, 371 0xdd, 0x72, 0x9c, 0x1b, 0x06, 0x34, 0x84, 0x0d, 0x3d, 0x2f, 0xaa, 0xf7, 0x26, 0x9b, 0x70, 0x9d, 372 0x8d, 0x87, 0xa4, 0xb4, 0xd5, 0x38, 0x89, 0xa3, 0x28, 0x03, 0xa0, 0x67, 0xd0, 0xd4, 0xfd, 0x25, 373 0xe1, 0x44, 0x10, 0xe9, 0x74, 0x4d, 0xd5, 0x2a, 0xd0, 0x48, 0x43, 0xd0, 0xd7, 0x96, 0x20, 0x60, 374 0xf1, 0x15, 0x1d, 0x3b, 0x5b, 0x5a, 0x43, 0x2f, 0x77, 0xd3, 0x63, 0x6c, 0x72, 0xa2, 0x51, 0x99, 375 0x0a, 0xcd, 0x6c, 0x40, 0xe8, 0x35, 0x74, 0x26, 0x24, 0xa4, 0xd8, 0x27, 0x71, 0xc0, 0xef, 0x74, 376 0x34, 0x9d, 0x6d, 0x1d, 0xed, 0xdd, 0x62, 0xa0, 0xde, 0x29, 0x9a, 0x61, 0x4e, 0xe2, 0xb5, 0x27, 377 0xb3, 0x80, 0xde, 0x5b, 0xe8, 0x2d, 0xee, 0x09, 0x4f, 0x69, 0xba, 0xbd, 0xaf, 0xa0, 0x55, 0xac, 378 0x91, 0x27, 0xf1, 0xbe, 0x06, 0x67, 0x51, 0x7d, 0x3f, 0x55, 0xce, 0xa2, 0x9a, 0x7d, 0xd2, 0x03, 379 0xf2, 0xf7, 0x4a, 0x36, 0xad, 0xda, 0xc7, 0x69, 0x66, 0x5a, 0xfd, 0x12, 0x1a, 0x66, 0x18, 0x29, 380 0x9b, 0xdf, 0x2d, 0x83, 0x9e, 0xaf, 0x57, 0x03, 0xfb, 0x85, 0xbe, 0x81, 0x35, 0xc9, 0x71, 0x2c, 381 0xae, 0x08, 0x37, 0x6c, 0x66, 0x92, 0x75, 0x8a, 0x6c, 0xe7, 0x96, 0x40, 0xb3, 0xb6, 0x64, 0xe1, 382 0xd4, 0xff, 0x4f, 0x05, 0x56, 0xac, 0x60, 0xf4, 0x63, 0x80, 0xe8, 0x26, 0x9f, 0x86, 0xec, 0xc3, 383 0x15, 0xdd, 0xd8, 0x41, 0x68, 0x17, 0x1a, 0x82, 0xa5, 0x3c, 0x20, 0x3e, 0x4d, 0xb2, 0x11, 0xce, 384 0x00, 0xdc, 0x04, 0xbd, 0x84, 0x95, 0x6c, 0xa4, 0xa8, 0x6a, 0xfd, 0xed, 0xa2, 0xfe, 0x0b, 0x4e, 385 0xbd, 0x0c, 0x8f, 0x3e, 0xb7, 0xc3, 0x6f, 0xad, 0x9c, 0x2e, 0x9b, 0x84, 0xd5, 0xa0, 0xbb, 0x5c, 386 0x4e, 0xa2, 0xa6, 0xde, 0xe7, 0x50, 0xbd, 0xa5, 0xd8, 0xa9, 0xeb, 0xa6, 0x33, 0x47, 0xa1, 0x70, 387 0x3f, 0xff, 0x33, 0x6c, 0xcc, 0xb5, 0x7e, 0xe4, 0x40, 0xf7, 0x74, 0xf8, 0xe6, 0xe8, 0xe4, 0x8f, 388 0xfe, 0xd1, 0xc9, 0xc9, 0x70, 0x74, 0xee, 0x7f, 0xf0, 0xfc, 0x91, 0xfb, 0xbe, 0xf3, 0x23, 0x04, 389 0x50, 0x37, 0xa0, 0x4e, 0x05, 0xb5, 0xa1, 0xe9, 0x0d, 0xff, 0x70, 0x31, 0x3c, 0x3b, 0xd7, 0xc8, 390 0x25, 0x85, 0xf4, 0x86, 0xbf, 0x1b, 0x9e, 0x9c, 0x77, 0xaa, 0x68, 0x15, 0x6a, 0xaf, 0xbc, 0x0f, 391 0xa3, 0x4e, 0xed, 0xf0, 0x5f, 0x75, 0xa8, 0xbb, 0x1f, 0x74, 0x1a, 0xbe, 0x86, 0xd6, 0x09, 0x27, 392 0x58, 0x12, 0xb3, 0x48, 0xa2, 0xb2, 0xcd, 0xb2, 0xb7, 0x3d, 0x77, 0xc9, 0x87, 0x6a, 0x09, 0x56, 393 0xcc, 0xa6, 0x26, 0xfe, 0x1f, 0xe6, 0x5f, 0x43, 0x23, 0xdf, 0x8d, 0xd1, 0x56, 0xb6, 0x8c, 0xcd, 394 0xec, 0xca, 0xbd, 0x32, 0x81, 0x68, 0x08, 0x70, 0x4a, 0x45, 0xc6, 0x39, 0x6d, 0x0f, 0x53, 0x60, 395 0xc6, 0xbe, 0x5b, 0x8a, 0xb3, 0xd3, 0xce, 0x31, 0xac, 0xcd, 0x6c, 0xda, 0x68, 0x47, 0xdb, 0x50, 396 0xb6, 0x7d, 0x2f, 0xf4, 0xe1, 0x1b, 0x58, 0x33, 0xd1, 0xb3, 0x6b, 0x17, 0x2a, 0xdd, 0x5a, 0x17, 397 0xb2, 0xbb, 0xb0, 0x3e, 0xbb, 0x7f, 0xa2, 0x5e, 0xe9, 0x52, 0x9a, 0x79, 0xb3, 0x78, 0x61, 0x45, 398 0xa7, 0x80, 0xe6, 0x97, 0x49, 0xf4, 0x59, 0xc1, 0xa5, 0x92, 0x2d, 0x73, 0xa1, 0x61, 0xdf, 0xc3, 399 0xce, 0xc2, 0xb5, 0x09, 0xbd, 0xc8, 0xec, 0xf8, 0xc1, 0x85, 0xb2, 0xf7, 0xb3, 0x87, 0xc8, 0xac, 400 0xe5, 0x63, 0x70, 0x16, 0x3d, 0xbb, 0xe8, 0xa7, 0x8f, 0x19, 0xb4, 0x7b, 0x2f, 0x1e, 0xf5, 0x76, 401 0x4f, 0x43, 0x54, 0xec, 0x60, 0x33, 0x21, 0x2a, 0x69, 0x6d, 0x8b, 0x42, 0x74, 0xfc, 0xfc, 0x4f, 402 0xcf, 0xc6, 0x54, 0x5e, 0xa7, 0x97, 0x83, 0x80, 0x4d, 0x0e, 0x6c, 0xd6, 0xcd, 0x1f, 0x41, 0x01, 403 0x8b, 0x0e, 0x78, 0x12, 0x5c, 0xd6, 0xf5, 0xe9, 0x57, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x71, 404 0x10, 0x10, 0x02, 0xaa, 0x12, 0x00, 0x00, 405 }