diff --git a/api/client/okta/okta.go b/api/client/okta/okta.go index fde6621a1351a..b2d7cb8727055 100644 --- a/api/client/okta/okta.go +++ b/api/client/okta/okta.go @@ -16,9 +16,11 @@ package okta import ( "context" + "time" "github.com/gravitational/trace" "github.com/gravitational/trace/trail" + "google.golang.org/protobuf/types/known/durationpb" oktapb "github.com/gravitational/teleport/api/gen/proto/go/teleport/okta/v1" "github.com/gravitational/teleport/api/types" @@ -152,15 +154,15 @@ func (c *Client) UpdateOktaAssignment(ctx context.Context, assignment types.Okta return resp, trail.FromGRPC(err) } -// UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the -// status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses -// will be updated if possible. -func (c *Client) UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) { - resp, err := c.grpcClient.UpdateOktaAssignmentActionStatuses(ctx, &oktapb.UpdateOktaAssignmentActionStatusesRequest{ - Name: name, - Status: types.OktaAssignmentActionStatusToProto(status), +// UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed +// since the last transition. +func (c *Client) UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error { + _, err := c.grpcClient.UpdateOktaAssignmentStatus(ctx, &oktapb.UpdateOktaAssignmentStatusRequest{ + Name: name, + Status: types.OktaAssignmentStatusToProto(status), + TimeHasPassed: durationpb.New(timeHasPassed), }) - return resp, trail.FromGRPC(err) + return trail.FromGRPC(err) } // DeleteOktaAssignmentremoves the specified Okta assignment resource. diff --git a/api/constants/constants.go b/api/constants/constants.go index 1d58d56ba69ad..95977dbe71c83 100644 --- a/api/constants/constants.go +++ b/api/constants/constants.go @@ -158,41 +158,29 @@ const ( // SSHRSAType is the string which specifies an "ssh-rsa" formatted keypair SSHRSAType = "ssh-rsa" - // OktaAssignmentActionStatusPending is represents a pending status for an Okta action. - OktaAssignmentActionStatusPending = "pending" + // OktaAssignmentStatusPending is represents a pending status for an Okta assignment. + OktaAssignmentStatusPending = "pending" - // OktaAssignmentActionStatusProcessing is represents an Okta action which is currently being acted on. - OktaAssignmentActionStatusProcessing = "processing" + // OktaAssignmentStatusProcessing is represents an Okta assignment which is currently being acted on. + OktaAssignmentStatusProcessing = "processing" - // OktaAssignmentActionStatusSuccessful is represents a successfully applied Okta action. - OktaAssignmentActionStatusSuccessful = "successful" + // OktaAssignmentStatusSuccessful is represents a successfully applied Okta assignment. + OktaAssignmentStatusSuccessful = "successful" - // OktaAssignmentActionStatusFailed is represents an Okta action which failed to apply. It will be retried. - OktaAssignmentActionStatusFailed = "failed" + // OktaAssignmentStatusFailed is represents an Okta assignment which failed to apply. It will be retried. + OktaAssignmentStatusFailed = "failed" - // OktaAssignmentActionStatusCleanupPending is represents an Okta action which needs to be cleaned up. - OktaAssignmentActionStatusCleanupPending = "cleanup_pending" + // OktaAssignmentStatusPending is represents a unknown status for an Okta assignment. + OktaAssignmentStatusUnknown = "unknown" - // OktaAssignmentActionStatusCleanupProcessing is represents an Okta action which is currently being cleaned up. - OktaAssignmentActionStatusCleanupProcessing = "cleanup_processing" + // OktaAssignmentTargetApplication is an application target of an Okta assignment. + OktaAssignmentTargetApplication = "application" - // OktaAssignmentActionStatusCleanedUp is represents an Okta action which was cleaned up successfully. - OktaAssignmentActionStatusCleanedUp = "cleaned_up" + // OktaAssignmentActionTargetGroup is a group target of an Okta assignment. + OktaAssignmentTargetGroup = "group" - // OktaAssignmentActionStatusCleanupFailed is represents an Okta action which was not cleaned up successfully. It will not be retried. - OktaAssignmentActionStatusCleanupFailed = "cleanup_failed" - - // OktaAssignmentActionStatusPending is represents a unknown status for an Okta action. - OktaAssignmentActionStatusUnknown = "unknown" - - // OktaAssignmentActionTargetApplication is an application target of an Okta assignment action. - OktaAssignmentActionTargetApplication = "application" - - // OktaAssignmentActionTargetGroup is a group target of an Okta assignment action. - OktaAssignmentActionTargetGroup = "group" - - // OktaAssignmentActionTargetUnknown is an unknown target of an Okta assignment action. - OktaAssignmentActionTargetUnknown = "unknown" + // OktaAssignmentTargetUnknown is an unknown target of an Okta assignment. + OktaAssignmentTargetUnknown = "unknown" ) // SystemConnectors lists the names of the system-reserved connectors. diff --git a/api/gen/proto/go/teleport/okta/v1/okta_service.pb.go b/api/gen/proto/go/teleport/okta/v1/okta_service.pb.go index 623310209be48..4327dc1c3a477 100644 --- a/api/gen/proto/go/teleport/okta/v1/okta_service.pb.go +++ b/api/gen/proto/go/teleport/okta/v1/okta_service.pb.go @@ -24,6 +24,7 @@ import ( types "github.com/gravitational/teleport/api/types" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" emptypb "google.golang.org/protobuf/types/known/emptypb" reflect "reflect" sync "sync" @@ -650,21 +651,23 @@ func (x *UpdateOktaAssignmentRequest) GetAssignment() *types.OktaAssignmentV1 { return nil } -// UpdateOktaAssignmentActionStatuses is a request for updating all action statuses in an -// Okta assignment. -type UpdateOktaAssignmentActionStatusesRequest struct { +// UpdateOktaAssignmentStatusRequest is a request for updating an Okta assignment status. +type UpdateOktaAssignmentStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // name is the name of the Okta assignment. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // status is the status to update all actions to. - Status types.OktaAssignmentActionV1_OktaAssignmentActionStatus `protobuf:"varint,2,opt,name=status,proto3,enum=types.OktaAssignmentActionV1_OktaAssignmentActionStatus" json:"status,omitempty"` + // status is the status to update the assignment to. + Status types.OktaAssignmentSpecV1_OktaAssignmentStatus `protobuf:"varint,2,opt,name=status,proto3,enum=types.OktaAssignmentSpecV1_OktaAssignmentStatus" json:"status,omitempty"` + // timeHasPassed is the amount of time that must have passed since the last transition + // in order to set the new transition. + TimeHasPassed *durationpb.Duration `protobuf:"bytes,3,opt,name=time_has_passed,json=timeHasPassed,proto3" json:"time_has_passed,omitempty"` } -func (x *UpdateOktaAssignmentActionStatusesRequest) Reset() { - *x = UpdateOktaAssignmentActionStatusesRequest{} +func (x *UpdateOktaAssignmentStatusRequest) Reset() { + *x = UpdateOktaAssignmentStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_teleport_okta_v1_okta_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -672,13 +675,13 @@ func (x *UpdateOktaAssignmentActionStatusesRequest) Reset() { } } -func (x *UpdateOktaAssignmentActionStatusesRequest) String() string { +func (x *UpdateOktaAssignmentStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateOktaAssignmentActionStatusesRequest) ProtoMessage() {} +func (*UpdateOktaAssignmentStatusRequest) ProtoMessage() {} -func (x *UpdateOktaAssignmentActionStatusesRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateOktaAssignmentStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_teleport_okta_v1_okta_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -690,23 +693,30 @@ func (x *UpdateOktaAssignmentActionStatusesRequest) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use UpdateOktaAssignmentActionStatusesRequest.ProtoReflect.Descriptor instead. -func (*UpdateOktaAssignmentActionStatusesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateOktaAssignmentStatusRequest.ProtoReflect.Descriptor instead. +func (*UpdateOktaAssignmentStatusRequest) Descriptor() ([]byte, []int) { return file_teleport_okta_v1_okta_service_proto_rawDescGZIP(), []int{12} } -func (x *UpdateOktaAssignmentActionStatusesRequest) GetName() string { +func (x *UpdateOktaAssignmentStatusRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *UpdateOktaAssignmentActionStatusesRequest) GetStatus() types.OktaAssignmentActionV1_OktaAssignmentActionStatus { +func (x *UpdateOktaAssignmentStatusRequest) GetStatus() types.OktaAssignmentSpecV1_OktaAssignmentStatus { if x != nil { return x.Status } - return types.OktaAssignmentActionV1_OktaAssignmentActionStatus(0) + return types.OktaAssignmentSpecV1_OktaAssignmentStatus(0) +} + +func (x *UpdateOktaAssignmentStatusRequest) GetTimeHasPassed() *durationpb.Duration { + if x != nil { + return x.TimeHasPassed + } + return nil } // DeleteOktaAssignmentRequest is the request for deleting an Okta assignment. @@ -803,7 +813,9 @@ var file_teleport_okta_v1_okta_service_proto_rawDesc = []byte{ 0x0a, 0x23, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6f, 0x6b, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, - 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, @@ -868,110 +880,112 @@ var file_teleport_okta_v1_okta_service_proto_rawDesc = []byte{ 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x52, 0x0a, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x29, 0x55, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc4, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x31, 0x2e, 0x4f, 0x6b, 0x74, 0x61, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x31, - 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, - 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x32, 0xb1, 0x0a, 0x0a, 0x0b, 0x4f, 0x6b, 0x74, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x72, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x65, - 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, - 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x31, 0x12, 0x5d, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x65, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, - 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x72, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, + 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x56, + 0x31, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, + 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x50, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x22, 0x31, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, + 0x6c, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, 0xa0, 0x0a, 0x0a, 0x0b, 0x4f, 0x6b, 0x74, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x72, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4f, + 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x7a, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x74, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x56, 0x31, 0x12, 0x5d, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x65, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, - 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, + 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x31, 0x12, 0x5d, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, + 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x65, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, + 0x6c, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, 0x74, + 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x72, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x4c, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6f, 0x6b, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x3b, - 0x6f, 0x6b, 0x74, 0x61, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x1a, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6b, 0x74, 0x61, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x5e, 0x0a, 0x14, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x12, 0x69, 0x0a, 0x1a, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x5d, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, + 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x65, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, + 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x6b, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4f, 0x6b, 0x74, 0x61, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x4c, 0x5a, 0x4a, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, + 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6f, 0x6b, 0x74, 0x61, 0x2f, 0x76, + 0x31, 0x3b, 0x6f, 0x6b, 0x74, 0x61, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -988,25 +1002,26 @@ func file_teleport_okta_v1_okta_service_proto_rawDescGZIP() []byte { var file_teleport_okta_v1_okta_service_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_teleport_okta_v1_okta_service_proto_goTypes = []interface{}{ - (*ListOktaImportRulesRequest)(nil), // 0: teleport.okta.v1.ListOktaImportRulesRequest - (*ListOktaImportRulesResponse)(nil), // 1: teleport.okta.v1.ListOktaImportRulesResponse - (*GetOktaImportRuleRequest)(nil), // 2: teleport.okta.v1.GetOktaImportRuleRequest - (*CreateOktaImportRuleRequest)(nil), // 3: teleport.okta.v1.CreateOktaImportRuleRequest - (*UpdateOktaImportRuleRequest)(nil), // 4: teleport.okta.v1.UpdateOktaImportRuleRequest - (*DeleteOktaImportRuleRequest)(nil), // 5: teleport.okta.v1.DeleteOktaImportRuleRequest - (*DeleteAllOktaImportRulesRequest)(nil), // 6: teleport.okta.v1.DeleteAllOktaImportRulesRequest - (*ListOktaAssignmentsRequest)(nil), // 7: teleport.okta.v1.ListOktaAssignmentsRequest - (*ListOktaAssignmentsResponse)(nil), // 8: teleport.okta.v1.ListOktaAssignmentsResponse - (*GetOktaAssignmentRequest)(nil), // 9: teleport.okta.v1.GetOktaAssignmentRequest - (*CreateOktaAssignmentRequest)(nil), // 10: teleport.okta.v1.CreateOktaAssignmentRequest - (*UpdateOktaAssignmentRequest)(nil), // 11: teleport.okta.v1.UpdateOktaAssignmentRequest - (*UpdateOktaAssignmentActionStatusesRequest)(nil), // 12: teleport.okta.v1.UpdateOktaAssignmentActionStatusesRequest - (*DeleteOktaAssignmentRequest)(nil), // 13: teleport.okta.v1.DeleteOktaAssignmentRequest - (*DeleteAllOktaAssignmentsRequest)(nil), // 14: teleport.okta.v1.DeleteAllOktaAssignmentsRequest - (*types.OktaImportRuleV1)(nil), // 15: types.OktaImportRuleV1 - (*types.OktaAssignmentV1)(nil), // 16: types.OktaAssignmentV1 - (types.OktaAssignmentActionV1_OktaAssignmentActionStatus)(0), // 17: types.OktaAssignmentActionV1.OktaAssignmentActionStatus - (*emptypb.Empty)(nil), // 18: google.protobuf.Empty + (*ListOktaImportRulesRequest)(nil), // 0: teleport.okta.v1.ListOktaImportRulesRequest + (*ListOktaImportRulesResponse)(nil), // 1: teleport.okta.v1.ListOktaImportRulesResponse + (*GetOktaImportRuleRequest)(nil), // 2: teleport.okta.v1.GetOktaImportRuleRequest + (*CreateOktaImportRuleRequest)(nil), // 3: teleport.okta.v1.CreateOktaImportRuleRequest + (*UpdateOktaImportRuleRequest)(nil), // 4: teleport.okta.v1.UpdateOktaImportRuleRequest + (*DeleteOktaImportRuleRequest)(nil), // 5: teleport.okta.v1.DeleteOktaImportRuleRequest + (*DeleteAllOktaImportRulesRequest)(nil), // 6: teleport.okta.v1.DeleteAllOktaImportRulesRequest + (*ListOktaAssignmentsRequest)(nil), // 7: teleport.okta.v1.ListOktaAssignmentsRequest + (*ListOktaAssignmentsResponse)(nil), // 8: teleport.okta.v1.ListOktaAssignmentsResponse + (*GetOktaAssignmentRequest)(nil), // 9: teleport.okta.v1.GetOktaAssignmentRequest + (*CreateOktaAssignmentRequest)(nil), // 10: teleport.okta.v1.CreateOktaAssignmentRequest + (*UpdateOktaAssignmentRequest)(nil), // 11: teleport.okta.v1.UpdateOktaAssignmentRequest + (*UpdateOktaAssignmentStatusRequest)(nil), // 12: teleport.okta.v1.UpdateOktaAssignmentStatusRequest + (*DeleteOktaAssignmentRequest)(nil), // 13: teleport.okta.v1.DeleteOktaAssignmentRequest + (*DeleteAllOktaAssignmentsRequest)(nil), // 14: teleport.okta.v1.DeleteAllOktaAssignmentsRequest + (*types.OktaImportRuleV1)(nil), // 15: types.OktaImportRuleV1 + (*types.OktaAssignmentV1)(nil), // 16: types.OktaAssignmentV1 + (types.OktaAssignmentSpecV1_OktaAssignmentStatus)(0), // 17: types.OktaAssignmentSpecV1.OktaAssignmentStatus + (*durationpb.Duration)(nil), // 18: google.protobuf.Duration + (*emptypb.Empty)(nil), // 19: google.protobuf.Empty } var file_teleport_okta_v1_okta_service_proto_depIdxs = []int32{ 15, // 0: teleport.okta.v1.ListOktaImportRulesResponse.import_rules:type_name -> types.OktaImportRuleV1 @@ -1015,38 +1030,39 @@ var file_teleport_okta_v1_okta_service_proto_depIdxs = []int32{ 16, // 3: teleport.okta.v1.ListOktaAssignmentsResponse.assignments:type_name -> types.OktaAssignmentV1 16, // 4: teleport.okta.v1.CreateOktaAssignmentRequest.assignment:type_name -> types.OktaAssignmentV1 16, // 5: teleport.okta.v1.UpdateOktaAssignmentRequest.assignment:type_name -> types.OktaAssignmentV1 - 17, // 6: teleport.okta.v1.UpdateOktaAssignmentActionStatusesRequest.status:type_name -> types.OktaAssignmentActionV1.OktaAssignmentActionStatus - 0, // 7: teleport.okta.v1.OktaService.ListOktaImportRules:input_type -> teleport.okta.v1.ListOktaImportRulesRequest - 2, // 8: teleport.okta.v1.OktaService.GetOktaImportRule:input_type -> teleport.okta.v1.GetOktaImportRuleRequest - 3, // 9: teleport.okta.v1.OktaService.CreateOktaImportRule:input_type -> teleport.okta.v1.CreateOktaImportRuleRequest - 4, // 10: teleport.okta.v1.OktaService.UpdateOktaImportRule:input_type -> teleport.okta.v1.UpdateOktaImportRuleRequest - 5, // 11: teleport.okta.v1.OktaService.DeleteOktaImportRule:input_type -> teleport.okta.v1.DeleteOktaImportRuleRequest - 6, // 12: teleport.okta.v1.OktaService.DeleteAllOktaImportRules:input_type -> teleport.okta.v1.DeleteAllOktaImportRulesRequest - 7, // 13: teleport.okta.v1.OktaService.ListOktaAssignments:input_type -> teleport.okta.v1.ListOktaAssignmentsRequest - 9, // 14: teleport.okta.v1.OktaService.GetOktaAssignment:input_type -> teleport.okta.v1.GetOktaAssignmentRequest - 10, // 15: teleport.okta.v1.OktaService.CreateOktaAssignment:input_type -> teleport.okta.v1.CreateOktaAssignmentRequest - 11, // 16: teleport.okta.v1.OktaService.UpdateOktaAssignment:input_type -> teleport.okta.v1.UpdateOktaAssignmentRequest - 12, // 17: teleport.okta.v1.OktaService.UpdateOktaAssignmentActionStatuses:input_type -> teleport.okta.v1.UpdateOktaAssignmentActionStatusesRequest - 13, // 18: teleport.okta.v1.OktaService.DeleteOktaAssignment:input_type -> teleport.okta.v1.DeleteOktaAssignmentRequest - 14, // 19: teleport.okta.v1.OktaService.DeleteAllOktaAssignments:input_type -> teleport.okta.v1.DeleteAllOktaAssignmentsRequest - 1, // 20: teleport.okta.v1.OktaService.ListOktaImportRules:output_type -> teleport.okta.v1.ListOktaImportRulesResponse - 15, // 21: teleport.okta.v1.OktaService.GetOktaImportRule:output_type -> types.OktaImportRuleV1 - 15, // 22: teleport.okta.v1.OktaService.CreateOktaImportRule:output_type -> types.OktaImportRuleV1 - 15, // 23: teleport.okta.v1.OktaService.UpdateOktaImportRule:output_type -> types.OktaImportRuleV1 - 18, // 24: teleport.okta.v1.OktaService.DeleteOktaImportRule:output_type -> google.protobuf.Empty - 18, // 25: teleport.okta.v1.OktaService.DeleteAllOktaImportRules:output_type -> google.protobuf.Empty - 8, // 26: teleport.okta.v1.OktaService.ListOktaAssignments:output_type -> teleport.okta.v1.ListOktaAssignmentsResponse - 16, // 27: teleport.okta.v1.OktaService.GetOktaAssignment:output_type -> types.OktaAssignmentV1 - 16, // 28: teleport.okta.v1.OktaService.CreateOktaAssignment:output_type -> types.OktaAssignmentV1 - 16, // 29: teleport.okta.v1.OktaService.UpdateOktaAssignment:output_type -> types.OktaAssignmentV1 - 16, // 30: teleport.okta.v1.OktaService.UpdateOktaAssignmentActionStatuses:output_type -> types.OktaAssignmentV1 - 18, // 31: teleport.okta.v1.OktaService.DeleteOktaAssignment:output_type -> google.protobuf.Empty - 18, // 32: teleport.okta.v1.OktaService.DeleteAllOktaAssignments:output_type -> google.protobuf.Empty - 20, // [20:33] is the sub-list for method output_type - 7, // [7:20] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 17, // 6: teleport.okta.v1.UpdateOktaAssignmentStatusRequest.status:type_name -> types.OktaAssignmentSpecV1.OktaAssignmentStatus + 18, // 7: teleport.okta.v1.UpdateOktaAssignmentStatusRequest.time_has_passed:type_name -> google.protobuf.Duration + 0, // 8: teleport.okta.v1.OktaService.ListOktaImportRules:input_type -> teleport.okta.v1.ListOktaImportRulesRequest + 2, // 9: teleport.okta.v1.OktaService.GetOktaImportRule:input_type -> teleport.okta.v1.GetOktaImportRuleRequest + 3, // 10: teleport.okta.v1.OktaService.CreateOktaImportRule:input_type -> teleport.okta.v1.CreateOktaImportRuleRequest + 4, // 11: teleport.okta.v1.OktaService.UpdateOktaImportRule:input_type -> teleport.okta.v1.UpdateOktaImportRuleRequest + 5, // 12: teleport.okta.v1.OktaService.DeleteOktaImportRule:input_type -> teleport.okta.v1.DeleteOktaImportRuleRequest + 6, // 13: teleport.okta.v1.OktaService.DeleteAllOktaImportRules:input_type -> teleport.okta.v1.DeleteAllOktaImportRulesRequest + 7, // 14: teleport.okta.v1.OktaService.ListOktaAssignments:input_type -> teleport.okta.v1.ListOktaAssignmentsRequest + 9, // 15: teleport.okta.v1.OktaService.GetOktaAssignment:input_type -> teleport.okta.v1.GetOktaAssignmentRequest + 10, // 16: teleport.okta.v1.OktaService.CreateOktaAssignment:input_type -> teleport.okta.v1.CreateOktaAssignmentRequest + 11, // 17: teleport.okta.v1.OktaService.UpdateOktaAssignment:input_type -> teleport.okta.v1.UpdateOktaAssignmentRequest + 12, // 18: teleport.okta.v1.OktaService.UpdateOktaAssignmentStatus:input_type -> teleport.okta.v1.UpdateOktaAssignmentStatusRequest + 13, // 19: teleport.okta.v1.OktaService.DeleteOktaAssignment:input_type -> teleport.okta.v1.DeleteOktaAssignmentRequest + 14, // 20: teleport.okta.v1.OktaService.DeleteAllOktaAssignments:input_type -> teleport.okta.v1.DeleteAllOktaAssignmentsRequest + 1, // 21: teleport.okta.v1.OktaService.ListOktaImportRules:output_type -> teleport.okta.v1.ListOktaImportRulesResponse + 15, // 22: teleport.okta.v1.OktaService.GetOktaImportRule:output_type -> types.OktaImportRuleV1 + 15, // 23: teleport.okta.v1.OktaService.CreateOktaImportRule:output_type -> types.OktaImportRuleV1 + 15, // 24: teleport.okta.v1.OktaService.UpdateOktaImportRule:output_type -> types.OktaImportRuleV1 + 19, // 25: teleport.okta.v1.OktaService.DeleteOktaImportRule:output_type -> google.protobuf.Empty + 19, // 26: teleport.okta.v1.OktaService.DeleteAllOktaImportRules:output_type -> google.protobuf.Empty + 8, // 27: teleport.okta.v1.OktaService.ListOktaAssignments:output_type -> teleport.okta.v1.ListOktaAssignmentsResponse + 16, // 28: teleport.okta.v1.OktaService.GetOktaAssignment:output_type -> types.OktaAssignmentV1 + 16, // 29: teleport.okta.v1.OktaService.CreateOktaAssignment:output_type -> types.OktaAssignmentV1 + 16, // 30: teleport.okta.v1.OktaService.UpdateOktaAssignment:output_type -> types.OktaAssignmentV1 + 19, // 31: teleport.okta.v1.OktaService.UpdateOktaAssignmentStatus:output_type -> google.protobuf.Empty + 19, // 32: teleport.okta.v1.OktaService.DeleteOktaAssignment:output_type -> google.protobuf.Empty + 19, // 33: teleport.okta.v1.OktaService.DeleteAllOktaAssignments:output_type -> google.protobuf.Empty + 21, // [21:34] is the sub-list for method output_type + 8, // [8:21] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_teleport_okta_v1_okta_service_proto_init() } @@ -1200,7 +1216,7 @@ func file_teleport_okta_v1_okta_service_proto_init() { } } file_teleport_okta_v1_okta_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateOktaAssignmentActionStatusesRequest); i { + switch v := v.(*UpdateOktaAssignmentStatusRequest); i { case 0: return &v.state case 1: diff --git a/api/gen/proto/go/teleport/okta/v1/okta_service_grpc.pb.go b/api/gen/proto/go/teleport/okta/v1/okta_service_grpc.pb.go index 2c749c4232cba..084a4646a3f05 100644 --- a/api/gen/proto/go/teleport/okta/v1/okta_service_grpc.pb.go +++ b/api/gen/proto/go/teleport/okta/v1/okta_service_grpc.pb.go @@ -35,19 +35,19 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - OktaService_ListOktaImportRules_FullMethodName = "/teleport.okta.v1.OktaService/ListOktaImportRules" - OktaService_GetOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/GetOktaImportRule" - OktaService_CreateOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/CreateOktaImportRule" - OktaService_UpdateOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaImportRule" - OktaService_DeleteOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/DeleteOktaImportRule" - OktaService_DeleteAllOktaImportRules_FullMethodName = "/teleport.okta.v1.OktaService/DeleteAllOktaImportRules" - OktaService_ListOktaAssignments_FullMethodName = "/teleport.okta.v1.OktaService/ListOktaAssignments" - OktaService_GetOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/GetOktaAssignment" - OktaService_CreateOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/CreateOktaAssignment" - OktaService_UpdateOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaAssignment" - OktaService_UpdateOktaAssignmentActionStatuses_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaAssignmentActionStatuses" - OktaService_DeleteOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/DeleteOktaAssignment" - OktaService_DeleteAllOktaAssignments_FullMethodName = "/teleport.okta.v1.OktaService/DeleteAllOktaAssignments" + OktaService_ListOktaImportRules_FullMethodName = "/teleport.okta.v1.OktaService/ListOktaImportRules" + OktaService_GetOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/GetOktaImportRule" + OktaService_CreateOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/CreateOktaImportRule" + OktaService_UpdateOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaImportRule" + OktaService_DeleteOktaImportRule_FullMethodName = "/teleport.okta.v1.OktaService/DeleteOktaImportRule" + OktaService_DeleteAllOktaImportRules_FullMethodName = "/teleport.okta.v1.OktaService/DeleteAllOktaImportRules" + OktaService_ListOktaAssignments_FullMethodName = "/teleport.okta.v1.OktaService/ListOktaAssignments" + OktaService_GetOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/GetOktaAssignment" + OktaService_CreateOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/CreateOktaAssignment" + OktaService_UpdateOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaAssignment" + OktaService_UpdateOktaAssignmentStatus_FullMethodName = "/teleport.okta.v1.OktaService/UpdateOktaAssignmentStatus" + OktaService_DeleteOktaAssignment_FullMethodName = "/teleport.okta.v1.OktaService/DeleteOktaAssignment" + OktaService_DeleteAllOktaAssignments_FullMethodName = "/teleport.okta.v1.OktaService/DeleteAllOktaAssignments" ) // OktaServiceClient is the client API for OktaService service. @@ -74,9 +74,8 @@ type OktaServiceClient interface { CreateOktaAssignment(ctx context.Context, in *CreateOktaAssignmentRequest, opts ...grpc.CallOption) (*types.OktaAssignmentV1, error) // UpdateOktaAssignment updates an existing Okta assignment resource. UpdateOktaAssignment(ctx context.Context, in *UpdateOktaAssignmentRequest, opts ...grpc.CallOption) (*types.OktaAssignmentV1, error) - // UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the - // status is a valid transition. Invalid transitions will be skipped. - UpdateOktaAssignmentActionStatuses(ctx context.Context, in *UpdateOktaAssignmentActionStatusesRequest, opts ...grpc.CallOption) (*types.OktaAssignmentV1, error) + // UpdateOktaAssignmentStatus will update the status for an Okta assignment. + UpdateOktaAssignmentStatus(ctx context.Context, in *UpdateOktaAssignmentStatusRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // DeleteOktaAssignment removes the specified Okta assignment resource. DeleteOktaAssignment(ctx context.Context, in *DeleteOktaAssignmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // DeleteAllOktaAssignments removes all Okta assignments. @@ -181,9 +180,9 @@ func (c *oktaServiceClient) UpdateOktaAssignment(ctx context.Context, in *Update return out, nil } -func (c *oktaServiceClient) UpdateOktaAssignmentActionStatuses(ctx context.Context, in *UpdateOktaAssignmentActionStatusesRequest, opts ...grpc.CallOption) (*types.OktaAssignmentV1, error) { - out := new(types.OktaAssignmentV1) - err := c.cc.Invoke(ctx, OktaService_UpdateOktaAssignmentActionStatuses_FullMethodName, in, out, opts...) +func (c *oktaServiceClient) UpdateOktaAssignmentStatus(ctx context.Context, in *UpdateOktaAssignmentStatusRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, OktaService_UpdateOktaAssignmentStatus_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -232,9 +231,8 @@ type OktaServiceServer interface { CreateOktaAssignment(context.Context, *CreateOktaAssignmentRequest) (*types.OktaAssignmentV1, error) // UpdateOktaAssignment updates an existing Okta assignment resource. UpdateOktaAssignment(context.Context, *UpdateOktaAssignmentRequest) (*types.OktaAssignmentV1, error) - // UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the - // status is a valid transition. Invalid transitions will be skipped. - UpdateOktaAssignmentActionStatuses(context.Context, *UpdateOktaAssignmentActionStatusesRequest) (*types.OktaAssignmentV1, error) + // UpdateOktaAssignmentStatus will update the status for an Okta assignment. + UpdateOktaAssignmentStatus(context.Context, *UpdateOktaAssignmentStatusRequest) (*emptypb.Empty, error) // DeleteOktaAssignment removes the specified Okta assignment resource. DeleteOktaAssignment(context.Context, *DeleteOktaAssignmentRequest) (*emptypb.Empty, error) // DeleteAllOktaAssignments removes all Okta assignments. @@ -276,8 +274,8 @@ func (UnimplementedOktaServiceServer) CreateOktaAssignment(context.Context, *Cre func (UnimplementedOktaServiceServer) UpdateOktaAssignment(context.Context, *UpdateOktaAssignmentRequest) (*types.OktaAssignmentV1, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateOktaAssignment not implemented") } -func (UnimplementedOktaServiceServer) UpdateOktaAssignmentActionStatuses(context.Context, *UpdateOktaAssignmentActionStatusesRequest) (*types.OktaAssignmentV1, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateOktaAssignmentActionStatuses not implemented") +func (UnimplementedOktaServiceServer) UpdateOktaAssignmentStatus(context.Context, *UpdateOktaAssignmentStatusRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateOktaAssignmentStatus not implemented") } func (UnimplementedOktaServiceServer) DeleteOktaAssignment(context.Context, *DeleteOktaAssignmentRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteOktaAssignment not implemented") @@ -478,20 +476,20 @@ func _OktaService_UpdateOktaAssignment_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } -func _OktaService_UpdateOktaAssignmentActionStatuses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateOktaAssignmentActionStatusesRequest) +func _OktaService_UpdateOktaAssignmentStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateOktaAssignmentStatusRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(OktaServiceServer).UpdateOktaAssignmentActionStatuses(ctx, in) + return srv.(OktaServiceServer).UpdateOktaAssignmentStatus(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: OktaService_UpdateOktaAssignmentActionStatuses_FullMethodName, + FullMethod: OktaService_UpdateOktaAssignmentStatus_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OktaServiceServer).UpdateOktaAssignmentActionStatuses(ctx, req.(*UpdateOktaAssignmentActionStatusesRequest)) + return srv.(OktaServiceServer).UpdateOktaAssignmentStatus(ctx, req.(*UpdateOktaAssignmentStatusRequest)) } return interceptor(ctx, in, info, handler) } @@ -580,8 +578,8 @@ var OktaService_ServiceDesc = grpc.ServiceDesc{ Handler: _OktaService_UpdateOktaAssignment_Handler, }, { - MethodName: "UpdateOktaAssignmentActionStatuses", - Handler: _OktaService_UpdateOktaAssignmentActionStatuses_Handler, + MethodName: "UpdateOktaAssignmentStatus", + Handler: _OktaService_UpdateOktaAssignmentStatus_Handler, }, { MethodName: "DeleteOktaAssignment", diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index ac5f42fd40e26..ced3982e9467e 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -5298,56 +5298,49 @@ message OktaAssignmentV1 { message OktaAssignmentSpecV1 { // User is the user that these actions will be applied to. string User = 1 [(gogoproto.jsontag) = "user"]; - // Actions is a list of Okta actions to take on a user. - repeated OktaAssignmentActionV1 Actions = 2 [(gogoproto.jsontag) = "actions"]; + // Targets is a list of Okta targets to take on a user. + repeated OktaAssignmentTargetV1 Targets = 2 [(gogoproto.jsontag) = "targets"]; // CleanupTime is an optional field that notes when the assignment should be cleaned up. // If absent, the assignment will never be cleaned up. google.protobuf.Timestamp CleanupTime = 3 [ + (gogoproto.jsontag) = "cleanup_time", (gogoproto.stdtime) = true, - (gogoproto.nullable) = true + (gogoproto.nullable) = false ]; -} -// OktaAssignmentActionV1 is a Okta assignment action. -message OktaAssignmentActionV1 { - // OktaAssignmentStatus represents the status of an action in an Okta assignment. - enum OktaAssignmentActionStatus { + // Status is the status of the assignment. + OktaAssignmentStatus status = 4 [(gogoproto.jsontag) = "status"]; + + // OktaAssignmentStatus represents the status of an Okta assignment. + enum OktaAssignmentStatus { // UNKNOWN indicates the status is not set. UNKNOWN = 0; // PENDING indicates the action has not yet been applied. PENDING = 1; + // PROCESSSING indicates that the assignment is being applied. + PROCESSING = 2; // SUCCESSFUL indicates the action was applied successfully. - SUCCESSFUL = 2; + SUCCESSFUL = 3; // FAILED indicates the action was not applied successfully. It will be retried. - FAILED = 3; - // CLEANED_UP indicates the action was cleaned up successfully. - CLEANED_UP = 4; - // CLEANUP_FAILED indicates the action was not cleaned up successfully. It will not be retried. - CLEANUP_FAILED = 5; - // PROCESSSING indicates that the assignment is being applied. - PROCESSING = 6; - // CLEANUP_PENDING indicates the action needs to be cleaned up. - CLEANUP_PENDING = 7; - // CLEANUP_PROCESSING indicates the action is being cleaned up. - CLEANUP_PROCESSING = 8; + FAILED = 4; } - // Status is the status of the action. - OktaAssignmentActionStatus status = 1 [(gogoproto.jsontag) = "status"]; - // Target is the target of the assignment action. - OktaAssignmentActionTargetV1 target = 2 [(gogoproto.jsontag) = "target"]; // LastTransition is an optional field that notes when the last state transition // occurred for this action. If absent, this object has never transitioned. - google.protobuf.Timestamp LastTransition = 3 [ + google.protobuf.Timestamp LastTransition = 5 [ + (gogoproto.jsontag) = "last_transition", (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; + + // Finalized is set when the assignment has been properly cleaned up. + bool Finalized = 6 [(gogoproto.jsontag) = "finalized"]; } -// OktaAssignmentActionTargetV1 is the target of an Okta assignment action. -message OktaAssignmentActionTargetV1 { - // OktaAssignmentActionTargetType is the type of Okta object that an action is targeting. - enum OktaAssignmentActionTargetType { +// OktaAssignmentTargetV1 is a target of an Okta assignment. +message OktaAssignmentTargetV1 { + // OktaAssignmentTargetType is the type of Okta object that an assignment is targeting. + enum OktaAssignmentTargetType { // UNKNOWN indicates the target is unknown. UNKNOWN = 0; // APPLICATION indicates the target is an application. @@ -5356,8 +5349,8 @@ message OktaAssignmentActionTargetV1 { GROUP = 2; } - // Type is the type of Okta resource this assignment action is targeting. - OktaAssignmentActionTargetType type = 1 [(gogoproto.jsontag) = "type"]; + // Type is the type of Okta resource this assignment is targeting. + OktaAssignmentTargetType type = 1 [(gogoproto.jsontag) = "type"]; // ID is the ID of the Okta resource that's being targeted. string id = 2 [(gogoproto.jsontag) = "id"]; } diff --git a/api/proto/teleport/okta/v1/okta_service.proto b/api/proto/teleport/okta/v1/okta_service.proto index d47cd0d428575..3598b1121cea2 100644 --- a/api/proto/teleport/okta/v1/okta_service.proto +++ b/api/proto/teleport/okta/v1/okta_service.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package teleport.okta.v1; +import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "teleport/legacy/types/types.proto"; @@ -44,9 +45,8 @@ service OktaService { rpc CreateOktaAssignment(CreateOktaAssignmentRequest) returns (types.OktaAssignmentV1); // UpdateOktaAssignment updates an existing Okta assignment resource. rpc UpdateOktaAssignment(UpdateOktaAssignmentRequest) returns (types.OktaAssignmentV1); - // UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the - // status is a valid transition. Invalid transitions will be skipped. - rpc UpdateOktaAssignmentActionStatuses(UpdateOktaAssignmentActionStatusesRequest) returns (types.OktaAssignmentV1); + // UpdateOktaAssignmentStatus will update the status for an Okta assignment. + rpc UpdateOktaAssignmentStatus(UpdateOktaAssignmentStatusRequest) returns (google.protobuf.Empty); // DeleteOktaAssignment removes the specified Okta assignment resource. rpc DeleteOktaAssignment(DeleteOktaAssignmentRequest) returns (google.protobuf.Empty); // DeleteAllOktaAssignments removes all Okta assignments. @@ -134,13 +134,15 @@ message UpdateOktaAssignmentRequest { types.OktaAssignmentV1 assignment = 1; } -// UpdateOktaAssignmentActionStatuses is a request for updating all action statuses in an -// Okta assignment. -message UpdateOktaAssignmentActionStatusesRequest { +// UpdateOktaAssignmentStatusRequest is a request for updating an Okta assignment status. +message UpdateOktaAssignmentStatusRequest { // name is the name of the Okta assignment. string name = 1; - // status is the status to update all actions to. - types.OktaAssignmentActionV1.OktaAssignmentActionStatus status = 2; + // status is the status to update the assignment to. + types.OktaAssignmentSpecV1.OktaAssignmentStatus status = 2; + // timeHasPassed is the amount of time that must have passed since the last transition + // in order to set the new transition. + google.protobuf.Duration time_has_passed = 3; } // DeleteOktaAssignmentRequest is the request for deleting an Okta assignment. diff --git a/api/types/okta.go b/api/types/okta.go index ee9abd4e7f9ff..803b3dc2f8e97 100644 --- a/api/types/okta.go +++ b/api/types/okta.go @@ -181,10 +181,24 @@ type OktaAssignment interface { SetMetadata(metadata Metadata) // GetUser will return the user that the Okta assignment actions applies to. GetUser() string - // GetActions will return the list of actions that will be performed as part of this assignment. - GetActions() []OktaAssignmentAction + // GetTargets will return the list of targets that will be assigned as part of this assignment. + GetTargets() []OktaAssignmentTarget // GetCleanupTime will return the optional time that the assignment should be cleaned up. - GetCleanupTime() *time.Time + GetCleanupTime() time.Time + // SetCleanupTime will set the cleanup time. + SetCleanupTime(time.Time) + // GetStatus gets the status of the assignment. + GetStatus() string + // SetStatus sets the status of the eassignment. Only allows valid transitions. + SetStatus(status string) error + // SetLastTransition sets the last transition time. + SetLastTransition(time.Time) + // GetLastTransition returns the time that the action last transitioned. + GetLastTransition() time.Time + // IsFinalized returns the finalized state. + IsFinalized() bool + // SetFinalized sets the finalized state + SetFinalized(bool) // Copy returns a copy of this Okta assignment resource. Copy() OktaAssignment } @@ -213,22 +227,114 @@ func (o *OktaAssignmentV1) GetUser() string { return o.Spec.User } -// GetActions returns the actions associated with the Okta assignment. -func (o *OktaAssignmentV1) GetActions() []OktaAssignmentAction { - actions := make([]OktaAssignmentAction, len(o.Spec.Actions)) +// GetTargets returns the targets associated with the Okta assignment. +func (o *OktaAssignmentV1) GetTargets() []OktaAssignmentTarget { + targets := make([]OktaAssignmentTarget, len(o.Spec.Targets)) - for i, action := range o.Spec.Actions { - actions[i] = action + for i, target := range o.Spec.Targets { + targets[i] = target } - return actions + return targets } // GetCleanupTime will return the optional time that the assignment should be cleaned up. -func (o *OktaAssignmentV1) GetCleanupTime() *time.Time { +func (o *OktaAssignmentV1) GetCleanupTime() time.Time { return o.Spec.CleanupTime } +// SetCleanupTime will set the cleanup time. +func (o *OktaAssignmentV1) SetCleanupTime(cleanupTime time.Time) { + o.Spec.CleanupTime = cleanupTime.UTC() +} + +// GetStatus gets the status of the assignment. +func (o *OktaAssignmentV1) GetStatus() string { + switch o.Spec.Status { + case OktaAssignmentSpecV1_PENDING: + return constants.OktaAssignmentStatusPending + case OktaAssignmentSpecV1_PROCESSING: + return constants.OktaAssignmentStatusProcessing + case OktaAssignmentSpecV1_SUCCESSFUL: + return constants.OktaAssignmentStatusSuccessful + case OktaAssignmentSpecV1_FAILED: + return constants.OktaAssignmentStatusFailed + default: + return constants.OktaAssignmentStatusUnknown + } +} + +// SetStatus sets the status of the eassignment. Only allows valid transitions. +// +// Valid transitions are: +// * PENDING -> (PROCESSING) +// * PROCESSING -> (SUCCESSFUL, FAILED, PROCESSING) +// * SUCCESSFUL -> (PROCESSING) +// * FAILED -> (PROCESSING) +func (o *OktaAssignmentV1) SetStatus(status string) error { + invalidTransition := false + switch o.Spec.Status { + case OktaAssignmentSpecV1_PENDING: + switch status { + case constants.OktaAssignmentStatusProcessing: + default: + invalidTransition = true + } + case OktaAssignmentSpecV1_PROCESSING: + switch status { + case constants.OktaAssignmentStatusProcessing: + case constants.OktaAssignmentStatusSuccessful: + case constants.OktaAssignmentStatusFailed: + default: + invalidTransition = true + } + case OktaAssignmentSpecV1_SUCCESSFUL: + switch status { + case constants.OktaAssignmentStatusProcessing: + default: + invalidTransition = true + } + case OktaAssignmentSpecV1_FAILED: + switch status { + case constants.OktaAssignmentStatusProcessing: + default: + invalidTransition = true + } + case OktaAssignmentSpecV1_UNKNOWN: + // All transitions are allowed from UNKNOWN. + default: + invalidTransition = true + } + + if invalidTransition { + return trace.BadParameter("invalid transition: %s -> %s", o.GetStatus(), status) + } + + o.Spec.Status = OktaAssignmentStatusToProto(status) + + return nil +} + +// SetLastTransition sets the last transition time. +func (o *OktaAssignmentV1) SetLastTransition(time time.Time) { + o.Spec.LastTransition = time.UTC() +} + +// GetLastTransition returns the optional time that the action last transitioned. +func (o *OktaAssignmentV1) GetLastTransition() time.Time { + return o.Spec.LastTransition +} + +// IsFinalized returns the finalized state. +func (o *OktaAssignmentV1) IsFinalized() bool { + return o.Spec.Finalized +} + +// SetFinalized sets the finalized state +func (o *OktaAssignmentV1) SetFinalized(finalized bool) { + o.Spec.Finalized = finalized +} + // Copy returns a copy of this Okta assignment resource. func (o *OktaAssignmentV1) Copy() OktaAssignment { return proto.Clone(o).(*OktaAssignmentV1) @@ -264,192 +370,40 @@ func (o *OktaAssignmentV1) CheckAndSetDefaults() error { return trace.BadParameter("user must not be empty") } - if len(o.Spec.Actions) == 0 { - return trace.BadParameter("actions is empty") - } - - if o.Spec.CleanupTime != nil { - utcTime := o.Spec.CleanupTime.UTC() - o.Spec.CleanupTime = &utcTime + if len(o.Spec.Targets) == 0 { + return trace.BadParameter("targets is empty") } - for _, action := range o.Spec.Actions { - action.LastTransition = action.LastTransition.UTC() - } + // Make sure the times are UTC so that Copy() works properly. + o.Spec.CleanupTime = o.Spec.CleanupTime.UTC() + o.Spec.LastTransition = o.Spec.LastTransition.UTC() return nil } -// OktaAssignmentAction is an individual action to apply to an Okta assignment. -type OktaAssignmentAction interface { - // GetStatus returns the current status of the action. - GetStatus() string - // SetStatus sets the status of the action. Only allows valid transitions. - // - // Valid transitions are: - // * PENDING -> (PROCESSING, CLEANUP_PENDING) - // * PROCESSING -> (SUCCESSFUL, FAILED, CLEANUP_PENDING) - // * SUCCESSFUL -> (CLEANUP_PENDING, CLEANUP_PROCESSING) - // * FAILED -> (PENDING, CLEANUP_PENDING, CLEANUP_PROCESSING) - // * CLEANUP_PENDING -> CLEANUP_PROCESSING - // * CLEANUP_PROCESSING -> (CLEANUP_FAILED, CLEANED_UP) - SetStatus(string) error - // GetTargetType returns the target type of the action. +// OktaAssignmentTarget is an target for an Okta assignment. +type OktaAssignmentTarget interface { + // GetTargetType returns the target type. GetTargetType() string - // GetID returns the ID of the action target. + // GetID returns the ID of the target. GetID() string - // SetLastTransition sets the last transition time. - SetLastTransition(time time.Time) - // GetLastTransition returns the optional time that the action last transitioned. - GetLastTransition() time.Time -} - -// GetStatus returns the current status of the action. -func (o *OktaAssignmentActionV1) GetStatus() string { - switch o.Status { - case OktaAssignmentActionV1_PENDING: - return constants.OktaAssignmentActionStatusPending - case OktaAssignmentActionV1_PROCESSING: - return constants.OktaAssignmentActionStatusProcessing - case OktaAssignmentActionV1_SUCCESSFUL: - return constants.OktaAssignmentActionStatusSuccessful - case OktaAssignmentActionV1_FAILED: - return constants.OktaAssignmentActionStatusFailed - case OktaAssignmentActionV1_CLEANUP_PENDING: - return constants.OktaAssignmentActionStatusCleanupPending - case OktaAssignmentActionV1_CLEANUP_PROCESSING: - return constants.OktaAssignmentActionStatusCleanupProcessing - case OktaAssignmentActionV1_CLEANED_UP: - return constants.OktaAssignmentActionStatusCleanedUp - case OktaAssignmentActionV1_CLEANUP_FAILED: - return constants.OktaAssignmentActionStatusCleanupFailed - default: - return constants.OktaAssignmentActionStatusUnknown - } -} - -// SetStatus sets the status of the action. Only allows valid transitions. -// -// Valid transitions are: -// * PENDING -> (PROCESSING, CLEANUP_PENDING) -// * PROCESSING -> (SUCCESSFUL, FAILED, CLEANUP_PENDING) -// * SUCCESSFUL -> (CLEANUP_PENDING, CLEANUP_PROCESSING) -// * FAILED -> (PROCESSING, CLEANUP_PENDING, CLEANUP_PROCESSING) -// * CLEANUP_PENDING -> CLEANUP_PROCESSING -// * CLEANUP_PROCESSING -> (CLEANUP_FAILED, CLEANED_UP) -func (o *OktaAssignmentActionV1) SetStatus(status string) error { - invalidTransition := false - switch o.Status { - case OktaAssignmentActionV1_PENDING: - switch status { - case constants.OktaAssignmentActionStatusProcessing: - case constants.OktaAssignmentActionStatusCleanupPending: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_PROCESSING: - switch status { - case constants.OktaAssignmentActionStatusSuccessful: - case constants.OktaAssignmentActionStatusFailed: - case constants.OktaAssignmentActionStatusCleanupPending: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_SUCCESSFUL: - switch status { - case constants.OktaAssignmentActionStatusCleanupPending: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_FAILED: - switch status { - case constants.OktaAssignmentActionStatusPending: - case constants.OktaAssignmentActionStatusCleanupPending: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_CLEANUP_PENDING: - switch status { - case constants.OktaAssignmentActionStatusCleanupProcessing: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_CLEANUP_PROCESSING: - switch status { - case constants.OktaAssignmentActionStatusCleanedUp: - case constants.OktaAssignmentActionStatusCleanupFailed: - default: - invalidTransition = true - } - case OktaAssignmentActionV1_CLEANED_UP: - invalidTransition = true - case OktaAssignmentActionV1_CLEANUP_FAILED: - invalidTransition = true - case OktaAssignmentActionV1_UNKNOWN: - // All transitions are allowed from UNKNOWN. - default: - invalidTransition = true - } - - if invalidTransition { - return trace.BadParameter("invalid transition: %s -> %s", o.GetStatus(), status) - } - - o.Status = OktaAssignmentActionStatusToProto(status) - - return nil } -// OktaAssignmentActionStatusToProto will convert the internal notion of an Okta status into the Okta status -// message understood by protobuf. -func OktaAssignmentActionStatusToProto(status string) OktaAssignmentActionV1_OktaAssignmentActionStatus { - switch status { - case constants.OktaAssignmentActionStatusPending: - return OktaAssignmentActionV1_PENDING - case constants.OktaAssignmentActionStatusProcessing: - return OktaAssignmentActionV1_PROCESSING - case constants.OktaAssignmentActionStatusSuccessful: - return OktaAssignmentActionV1_SUCCESSFUL - case constants.OktaAssignmentActionStatusFailed: - return OktaAssignmentActionV1_FAILED - case constants.OktaAssignmentActionStatusCleanupPending: - return OktaAssignmentActionV1_CLEANUP_PENDING - case constants.OktaAssignmentActionStatusCleanupProcessing: - return OktaAssignmentActionV1_CLEANUP_PROCESSING - case constants.OktaAssignmentActionStatusCleanedUp: - return OktaAssignmentActionV1_CLEANED_UP - case constants.OktaAssignmentActionStatusCleanupFailed: - return OktaAssignmentActionV1_CLEANUP_FAILED - default: - return OktaAssignmentActionV1_UNKNOWN - } -} - -// GetTargetType returns the target type of the action. -func (o *OktaAssignmentActionV1) GetTargetType() string { - switch o.Target.Type { - case OktaAssignmentActionTargetV1_APPLICATION: - return constants.OktaAssignmentActionTargetApplication - case OktaAssignmentActionTargetV1_GROUP: - return constants.OktaAssignmentActionTargetGroup +// GetTargetType returns the target type. +func (o *OktaAssignmentTargetV1) GetTargetType() string { + switch o.Type { + case OktaAssignmentTargetV1_APPLICATION: + return constants.OktaAssignmentTargetApplication + case OktaAssignmentTargetV1_GROUP: + return constants.OktaAssignmentTargetGroup default: - return constants.OktaAssignmentActionTargetUnknown + return constants.OktaAssignmentTargetUnknown } } // GetID returns the ID of the action target. -func (o *OktaAssignmentActionV1) GetID() string { - return o.Target.Id -} - -// SetLastTransition sets the last transition time. -func (o *OktaAssignmentActionV1) SetLastTransition(time time.Time) { - o.LastTransition = time.UTC() -} - -// GetLastTransition returns the optional time that the action last transitioned. -func (o *OktaAssignmentActionV1) GetLastTransition() time.Time { - return o.LastTransition +func (o *OktaAssignmentTargetV1) GetID() string { + return o.Id } // OktaAssignments is a list of OktaAssignment resources. @@ -481,3 +435,37 @@ func (o OktaAssignments) Less(i, j int) bool { return o[i].GetName() < o[j].GetN // Swap swaps two Okta assignments. func (o OktaAssignments) Swap(i, j int) { o[i], o[j] = o[j], o[i] } + +// OktaAssignmentStatusToProto will convert the internal notion of an Okta status into the Okta status +// message understood by protobuf. +func OktaAssignmentStatusToProto(status string) OktaAssignmentSpecV1_OktaAssignmentStatus { + switch status { + case constants.OktaAssignmentStatusPending: + return OktaAssignmentSpecV1_PENDING + case constants.OktaAssignmentStatusProcessing: + return OktaAssignmentSpecV1_PROCESSING + case constants.OktaAssignmentStatusSuccessful: + return OktaAssignmentSpecV1_SUCCESSFUL + case constants.OktaAssignmentStatusFailed: + return OktaAssignmentSpecV1_FAILED + default: + return OktaAssignmentSpecV1_UNKNOWN + } +} + +// OktaAssignmentStatusProtoToString will convert the Okta status known to protobuf into the internal notion +// of an Okta status. +func OktaAssignmentStatusProtoToString(status OktaAssignmentSpecV1_OktaAssignmentStatus) string { + switch status { + case OktaAssignmentSpecV1_PENDING: + return constants.OktaAssignmentStatusPending + case OktaAssignmentSpecV1_PROCESSING: + return constants.OktaAssignmentStatusProcessing + case OktaAssignmentSpecV1_SUCCESSFUL: + return constants.OktaAssignmentStatusSuccessful + case OktaAssignmentSpecV1_FAILED: + return constants.OktaAssignmentStatusFailed + default: + return constants.OktaAssignmentStatusUnknown + } +} diff --git a/api/types/okta_test.go b/api/types/okta_test.go index b168c34479a32..904f6792da214 100644 --- a/api/types/okta_test.go +++ b/api/types/okta_test.go @@ -32,95 +32,36 @@ func TestOktaAssignments_SetStatus(t *testing.T) { nextStatus string invalid bool }{ + // PENDING transitions - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusProcessing}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusCleanupPending}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusPending, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, + {startStatus: constants.OktaAssignmentStatusPending, nextStatus: constants.OktaAssignmentStatusPending, invalid: true}, + {startStatus: constants.OktaAssignmentStatusPending, nextStatus: constants.OktaAssignmentStatusProcessing}, + {startStatus: constants.OktaAssignmentStatusPending, nextStatus: constants.OktaAssignmentStatusSuccessful, invalid: true}, + {startStatus: constants.OktaAssignmentStatusPending, nextStatus: constants.OktaAssignmentStatusFailed, invalid: true}, // PROCESSING transitions - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusSuccessful}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusFailed}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupPending}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, + {startStatus: constants.OktaAssignmentStatusProcessing, nextStatus: constants.OktaAssignmentStatusPending, invalid: true}, + {startStatus: constants.OktaAssignmentStatusProcessing, nextStatus: constants.OktaAssignmentStatusProcessing}, + {startStatus: constants.OktaAssignmentStatusProcessing, nextStatus: constants.OktaAssignmentStatusSuccessful}, + {startStatus: constants.OktaAssignmentStatusProcessing, nextStatus: constants.OktaAssignmentStatusFailed}, // SUCCESSFUL transitions - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusCleanupPending}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusSuccessful, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, + {startStatus: constants.OktaAssignmentStatusSuccessful, nextStatus: constants.OktaAssignmentStatusPending, invalid: true}, + {startStatus: constants.OktaAssignmentStatusSuccessful, nextStatus: constants.OktaAssignmentStatusProcessing}, + {startStatus: constants.OktaAssignmentStatusSuccessful, nextStatus: constants.OktaAssignmentStatusSuccessful, invalid: true}, + {startStatus: constants.OktaAssignmentStatusSuccessful, nextStatus: constants.OktaAssignmentStatusFailed, invalid: true}, // FAILED transitions - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusPending}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupPending}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, - - // CLEANUP_PENDING transitions - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusCleanupPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupPending, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, - - // CLEANUP_PROCESSING transitions - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanedUp}, - {startStatus: constants.OktaAssignmentActionStatusCleanupProcessing, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed}, - - // CLEANED_UP transitions - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusCleanupPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanedUp, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, - - // CLEANUP_FAILED transitions - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusSuccessful, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusFailed, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupPending, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusCleanedUp, invalid: true}, - {startStatus: constants.OktaAssignmentActionStatusCleanupFailed, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed, invalid: true}, + {startStatus: constants.OktaAssignmentStatusFailed, nextStatus: constants.OktaAssignmentStatusPending, invalid: true}, + {startStatus: constants.OktaAssignmentStatusFailed, nextStatus: constants.OktaAssignmentStatusProcessing}, + {startStatus: constants.OktaAssignmentStatusFailed, nextStatus: constants.OktaAssignmentStatusSuccessful, invalid: true}, + {startStatus: constants.OktaAssignmentStatusFailed, nextStatus: constants.OktaAssignmentStatusFailed, invalid: true}, // UNKNOWN transitions - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusPending}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusProcessing}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusSuccessful}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusFailed}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusCleanupPending}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusCleanupProcessing}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusCleanedUp}, - {startStatus: constants.OktaAssignmentActionStatusUnknown, nextStatus: constants.OktaAssignmentActionStatusCleanupFailed}, + {startStatus: constants.OktaAssignmentStatusUnknown, nextStatus: constants.OktaAssignmentStatusPending}, + {startStatus: constants.OktaAssignmentStatusUnknown, nextStatus: constants.OktaAssignmentStatusProcessing}, + {startStatus: constants.OktaAssignmentStatusUnknown, nextStatus: constants.OktaAssignmentStatusSuccessful}, + {startStatus: constants.OktaAssignmentStatusUnknown, nextStatus: constants.OktaAssignmentStatusFailed}, } for _, test := range tests { @@ -132,22 +73,17 @@ func TestOktaAssignments_SetStatus(t *testing.T) { errAssertionFunc = require.NoError } - action := newOktaAssignmentAction(t, test.startStatus) - errAssertionFunc(t, action.SetStatus(test.nextStatus)) + assignment := newOktaAssignment(t, test.startStatus) + errAssertionFunc(t, assignment.SetStatus(test.nextStatus)) }) } } -func newOktaAssignmentAction(t *testing.T, status string) OktaAssignmentAction { - action := &OktaAssignmentActionV1{ - Target: &OktaAssignmentActionTargetV1{ - Type: OktaAssignmentActionTargetV1_APPLICATION, - Id: "dummy", - }, - } +func newOktaAssignment(t *testing.T, status string) OktaAssignment { + assignment := &OktaAssignmentV1{} - require.NoError(t, action.SetStatus(status)) - return action + require.NoError(t, assignment.SetStatus(status)) + return assignment } func invalidTransition(startStatus, nextStatus string) require.ErrorAssertionFunc { diff --git a/api/types/types.pb.go b/api/types/types.pb.go index c680923fd0dc4..5266c8c605ccd 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -678,92 +678,76 @@ func (ConnectionDiagnosticTrace_StatusType) EnumDescriptor() ([]byte, []int) { return fileDescriptor_9198ee693835762e, []int{220, 1} } -// OktaAssignmentStatus represents the status of an action in an Okta assignment. -type OktaAssignmentActionV1_OktaAssignmentActionStatus int32 +// OktaAssignmentStatus represents the status of an Okta assignment. +type OktaAssignmentSpecV1_OktaAssignmentStatus int32 const ( // UNKNOWN indicates the status is not set. - OktaAssignmentActionV1_UNKNOWN OktaAssignmentActionV1_OktaAssignmentActionStatus = 0 + OktaAssignmentSpecV1_UNKNOWN OktaAssignmentSpecV1_OktaAssignmentStatus = 0 // PENDING indicates the action has not yet been applied. - OktaAssignmentActionV1_PENDING OktaAssignmentActionV1_OktaAssignmentActionStatus = 1 + OktaAssignmentSpecV1_PENDING OktaAssignmentSpecV1_OktaAssignmentStatus = 1 + // PROCESSSING indicates that the assignment is being applied. + OktaAssignmentSpecV1_PROCESSING OktaAssignmentSpecV1_OktaAssignmentStatus = 2 // SUCCESSFUL indicates the action was applied successfully. - OktaAssignmentActionV1_SUCCESSFUL OktaAssignmentActionV1_OktaAssignmentActionStatus = 2 + OktaAssignmentSpecV1_SUCCESSFUL OktaAssignmentSpecV1_OktaAssignmentStatus = 3 // FAILED indicates the action was not applied successfully. It will be retried. - OktaAssignmentActionV1_FAILED OktaAssignmentActionV1_OktaAssignmentActionStatus = 3 - // CLEANED_UP indicates the action was cleaned up successfully. - OktaAssignmentActionV1_CLEANED_UP OktaAssignmentActionV1_OktaAssignmentActionStatus = 4 - // CLEANUP_FAILED indicates the action was not cleaned up successfully. It will not be retried. - OktaAssignmentActionV1_CLEANUP_FAILED OktaAssignmentActionV1_OktaAssignmentActionStatus = 5 - // PROCESSSING indicates that the assignment is being applied. - OktaAssignmentActionV1_PROCESSING OktaAssignmentActionV1_OktaAssignmentActionStatus = 6 - // CLEANUP_PENDING indicates the action needs to be cleaned up. - OktaAssignmentActionV1_CLEANUP_PENDING OktaAssignmentActionV1_OktaAssignmentActionStatus = 7 - // CLEANUP_PROCESSING indicates the action is being cleaned up. - OktaAssignmentActionV1_CLEANUP_PROCESSING OktaAssignmentActionV1_OktaAssignmentActionStatus = 8 + OktaAssignmentSpecV1_FAILED OktaAssignmentSpecV1_OktaAssignmentStatus = 4 ) -var OktaAssignmentActionV1_OktaAssignmentActionStatus_name = map[int32]string{ +var OktaAssignmentSpecV1_OktaAssignmentStatus_name = map[int32]string{ 0: "UNKNOWN", 1: "PENDING", - 2: "SUCCESSFUL", - 3: "FAILED", - 4: "CLEANED_UP", - 5: "CLEANUP_FAILED", - 6: "PROCESSING", - 7: "CLEANUP_PENDING", - 8: "CLEANUP_PROCESSING", + 2: "PROCESSING", + 3: "SUCCESSFUL", + 4: "FAILED", } -var OktaAssignmentActionV1_OktaAssignmentActionStatus_value = map[string]int32{ - "UNKNOWN": 0, - "PENDING": 1, - "SUCCESSFUL": 2, - "FAILED": 3, - "CLEANED_UP": 4, - "CLEANUP_FAILED": 5, - "PROCESSING": 6, - "CLEANUP_PENDING": 7, - "CLEANUP_PROCESSING": 8, +var OktaAssignmentSpecV1_OktaAssignmentStatus_value = map[string]int32{ + "UNKNOWN": 0, + "PENDING": 1, + "PROCESSING": 2, + "SUCCESSFUL": 3, + "FAILED": 4, } -func (x OktaAssignmentActionV1_OktaAssignmentActionStatus) String() string { - return proto.EnumName(OktaAssignmentActionV1_OktaAssignmentActionStatus_name, int32(x)) +func (x OktaAssignmentSpecV1_OktaAssignmentStatus) String() string { + return proto.EnumName(OktaAssignmentSpecV1_OktaAssignmentStatus_name, int32(x)) } -func (OktaAssignmentActionV1_OktaAssignmentActionStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{258, 0} +func (OktaAssignmentSpecV1_OktaAssignmentStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{257, 0} } -// OktaAssignmentActionTargetType is the type of Okta object that an action is targeting. -type OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType int32 +// OktaAssignmentTargetType is the type of Okta object that an assignment is targeting. +type OktaAssignmentTargetV1_OktaAssignmentTargetType int32 const ( // UNKNOWN indicates the target is unknown. - OktaAssignmentActionTargetV1_UNKNOWN OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType = 0 + OktaAssignmentTargetV1_UNKNOWN OktaAssignmentTargetV1_OktaAssignmentTargetType = 0 // APPLICATION indicates the target is an application. - OktaAssignmentActionTargetV1_APPLICATION OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType = 1 + OktaAssignmentTargetV1_APPLICATION OktaAssignmentTargetV1_OktaAssignmentTargetType = 1 // GROUP indicates the target is a group. - OktaAssignmentActionTargetV1_GROUP OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType = 2 + OktaAssignmentTargetV1_GROUP OktaAssignmentTargetV1_OktaAssignmentTargetType = 2 ) -var OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType_name = map[int32]string{ +var OktaAssignmentTargetV1_OktaAssignmentTargetType_name = map[int32]string{ 0: "UNKNOWN", 1: "APPLICATION", 2: "GROUP", } -var OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType_value = map[string]int32{ +var OktaAssignmentTargetV1_OktaAssignmentTargetType_value = map[string]int32{ "UNKNOWN": 0, "APPLICATION": 1, "GROUP": 2, } -func (x OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType) String() string { - return proto.EnumName(OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType_name, int32(x)) +func (x OktaAssignmentTargetV1_OktaAssignmentTargetType) String() string { + return proto.EnumName(OktaAssignmentTargetV1_OktaAssignmentTargetType_name, int32(x)) } -func (OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{259, 0} +func (OktaAssignmentTargetV1_OktaAssignmentTargetType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{258, 0} } type KeepAlive struct { @@ -14064,14 +14048,21 @@ var xxx_messageInfo_OktaAssignmentV1 proto.InternalMessageInfo type OktaAssignmentSpecV1 struct { // User is the user that these actions will be applied to. User string `protobuf:"bytes,1,opt,name=User,proto3" json:"user"` - // Actions is a list of Okta actions to take on a user. - Actions []*OktaAssignmentActionV1 `protobuf:"bytes,2,rep,name=Actions,proto3" json:"actions"` + // Targets is a list of Okta targets to take on a user. + Targets []*OktaAssignmentTargetV1 `protobuf:"bytes,2,rep,name=Targets,proto3" json:"targets"` // CleanupTime is an optional field that notes when the assignment should be cleaned up. // If absent, the assignment will never be cleaned up. - CleanupTime *time.Time `protobuf:"bytes,3,opt,name=CleanupTime,proto3,stdtime" json:"CleanupTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CleanupTime time.Time `protobuf:"bytes,3,opt,name=CleanupTime,proto3,stdtime" json:"cleanup_time"` + // Status is the status of the assignment. + Status OktaAssignmentSpecV1_OktaAssignmentStatus `protobuf:"varint,4,opt,name=status,proto3,enum=types.OktaAssignmentSpecV1_OktaAssignmentStatus" json:"status"` + // LastTransition is an optional field that notes when the last state transition + // occurred for this action. If absent, this object has never transitioned. + LastTransition time.Time `protobuf:"bytes,5,opt,name=LastTransition,proto3,stdtime" json:"last_transition"` + // Finalized is set when the assignment has been properly cleaned up. + Finalized bool `protobuf:"varint,6,opt,name=Finalized,proto3" json:"finalized"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *OktaAssignmentSpecV1) Reset() { *m = OktaAssignmentSpecV1{} } @@ -14107,57 +14098,10 @@ func (m *OktaAssignmentSpecV1) XXX_DiscardUnknown() { var xxx_messageInfo_OktaAssignmentSpecV1 proto.InternalMessageInfo -// OktaAssignmentActionV1 is a Okta assignment action. -type OktaAssignmentActionV1 struct { - // Status is the status of the action. - Status OktaAssignmentActionV1_OktaAssignmentActionStatus `protobuf:"varint,1,opt,name=status,proto3,enum=types.OktaAssignmentActionV1_OktaAssignmentActionStatus" json:"status"` - // Target is the target of the assignment action. - Target *OktaAssignmentActionTargetV1 `protobuf:"bytes,2,opt,name=target,proto3" json:"target"` - // LastTransition is an optional field that notes when the last state transition - // occurred for this action. If absent, this object has never transitioned. - LastTransition time.Time `protobuf:"bytes,3,opt,name=LastTransition,proto3,stdtime" json:"LastTransition"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OktaAssignmentActionV1) Reset() { *m = OktaAssignmentActionV1{} } -func (m *OktaAssignmentActionV1) String() string { return proto.CompactTextString(m) } -func (*OktaAssignmentActionV1) ProtoMessage() {} -func (*OktaAssignmentActionV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{258} -} -func (m *OktaAssignmentActionV1) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OktaAssignmentActionV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OktaAssignmentActionV1.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OktaAssignmentActionV1) XXX_Merge(src proto.Message) { - xxx_messageInfo_OktaAssignmentActionV1.Merge(m, src) -} -func (m *OktaAssignmentActionV1) XXX_Size() int { - return m.Size() -} -func (m *OktaAssignmentActionV1) XXX_DiscardUnknown() { - xxx_messageInfo_OktaAssignmentActionV1.DiscardUnknown(m) -} - -var xxx_messageInfo_OktaAssignmentActionV1 proto.InternalMessageInfo - -// OktaAssignmentActionTargetV1 is the target of an Okta assignment action. -type OktaAssignmentActionTargetV1 struct { - // Type is the type of Okta resource this assignment action is targeting. - Type OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType `protobuf:"varint,1,opt,name=type,proto3,enum=types.OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType" json:"type"` +// OktaAssignmentTargetV1 is a target of an Okta assignment. +type OktaAssignmentTargetV1 struct { + // Type is the type of Okta resource this assignment is targeting. + Type OktaAssignmentTargetV1_OktaAssignmentTargetType `protobuf:"varint,1,opt,name=type,proto3,enum=types.OktaAssignmentTargetV1_OktaAssignmentTargetType" json:"type"` // ID is the ID of the Okta resource that's being targeted. Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -14165,18 +14109,18 @@ type OktaAssignmentActionTargetV1 struct { XXX_sizecache int32 `json:"-"` } -func (m *OktaAssignmentActionTargetV1) Reset() { *m = OktaAssignmentActionTargetV1{} } -func (m *OktaAssignmentActionTargetV1) String() string { return proto.CompactTextString(m) } -func (*OktaAssignmentActionTargetV1) ProtoMessage() {} -func (*OktaAssignmentActionTargetV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{259} +func (m *OktaAssignmentTargetV1) Reset() { *m = OktaAssignmentTargetV1{} } +func (m *OktaAssignmentTargetV1) String() string { return proto.CompactTextString(m) } +func (*OktaAssignmentTargetV1) ProtoMessage() {} +func (*OktaAssignmentTargetV1) Descriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{258} } -func (m *OktaAssignmentActionTargetV1) XXX_Unmarshal(b []byte) error { +func (m *OktaAssignmentTargetV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *OktaAssignmentActionTargetV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *OktaAssignmentTargetV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_OktaAssignmentActionTargetV1.Marshal(b, m, deterministic) + return xxx_messageInfo_OktaAssignmentTargetV1.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -14186,17 +14130,17 @@ func (m *OktaAssignmentActionTargetV1) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *OktaAssignmentActionTargetV1) XXX_Merge(src proto.Message) { - xxx_messageInfo_OktaAssignmentActionTargetV1.Merge(m, src) +func (m *OktaAssignmentTargetV1) XXX_Merge(src proto.Message) { + xxx_messageInfo_OktaAssignmentTargetV1.Merge(m, src) } -func (m *OktaAssignmentActionTargetV1) XXX_Size() int { +func (m *OktaAssignmentTargetV1) XXX_Size() int { return m.Size() } -func (m *OktaAssignmentActionTargetV1) XXX_DiscardUnknown() { - xxx_messageInfo_OktaAssignmentActionTargetV1.DiscardUnknown(m) +func (m *OktaAssignmentTargetV1) XXX_DiscardUnknown() { + xxx_messageInfo_OktaAssignmentTargetV1.DiscardUnknown(m) } -var xxx_messageInfo_OktaAssignmentActionTargetV1 proto.InternalMessageInfo +var xxx_messageInfo_OktaAssignmentTargetV1 proto.InternalMessageInfo // IntegrationV1 represents a connection between Teleport and some other 3rd party system. // This connection allows API access to that service from Teleport. @@ -14214,7 +14158,7 @@ type IntegrationV1 struct { func (m *IntegrationV1) Reset() { *m = IntegrationV1{} } func (*IntegrationV1) ProtoMessage() {} func (*IntegrationV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{260} + return fileDescriptor_9198ee693835762e, []int{259} } func (m *IntegrationV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14258,7 +14202,7 @@ func (m *IntegrationSpecV1) Reset() { *m = IntegrationSpecV1{} } func (m *IntegrationSpecV1) String() string { return proto.CompactTextString(m) } func (*IntegrationSpecV1) ProtoMessage() {} func (*IntegrationSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{261} + return fileDescriptor_9198ee693835762e, []int{260} } func (m *IntegrationSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14334,7 +14278,7 @@ func (m *AWSOIDCIntegrationSpecV1) Reset() { *m = AWSOIDCIntegrationSpec func (m *AWSOIDCIntegrationSpecV1) String() string { return proto.CompactTextString(m) } func (*AWSOIDCIntegrationSpecV1) ProtoMessage() {} func (*AWSOIDCIntegrationSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{262} + return fileDescriptor_9198ee693835762e, []int{261} } func (m *AWSOIDCIntegrationSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14386,7 +14330,7 @@ func (m *HeadlessAuthentication) Reset() { *m = HeadlessAuthentication{} func (m *HeadlessAuthentication) String() string { return proto.CompactTextString(m) } func (*HeadlessAuthentication) ProtoMessage() {} func (*HeadlessAuthentication) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{263} + return fileDescriptor_9198ee693835762e, []int{262} } func (m *HeadlessAuthentication) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14443,7 +14387,7 @@ func (m *WatchKind) Reset() { *m = WatchKind{} } func (m *WatchKind) String() string { return proto.CompactTextString(m) } func (*WatchKind) ProtoMessage() {} func (*WatchKind) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{264} + return fileDescriptor_9198ee693835762e, []int{263} } func (m *WatchKind) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14493,7 +14437,7 @@ func (m *WatchStatusV1) Reset() { *m = WatchStatusV1{} } func (m *WatchStatusV1) String() string { return proto.CompactTextString(m) } func (*WatchStatusV1) ProtoMessage() {} func (*WatchStatusV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{265} + return fileDescriptor_9198ee693835762e, []int{264} } func (m *WatchStatusV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14534,7 +14478,7 @@ func (m *WatchStatusSpecV1) Reset() { *m = WatchStatusSpecV1{} } func (m *WatchStatusSpecV1) String() string { return proto.CompactTextString(m) } func (*WatchStatusSpecV1) ProtoMessage() {} func (*WatchStatusSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{266} + return fileDescriptor_9198ee693835762e, []int{265} } func (m *WatchStatusSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14582,8 +14526,8 @@ func init() { proto.RegisterEnum("types.ClusterAuditConfigSpecV2_FIPSEndpointState", ClusterAuditConfigSpecV2_FIPSEndpointState_name, ClusterAuditConfigSpecV2_FIPSEndpointState_value) proto.RegisterEnum("types.ConnectionDiagnosticTrace_TraceType", ConnectionDiagnosticTrace_TraceType_name, ConnectionDiagnosticTrace_TraceType_value) proto.RegisterEnum("types.ConnectionDiagnosticTrace_StatusType", ConnectionDiagnosticTrace_StatusType_name, ConnectionDiagnosticTrace_StatusType_value) - proto.RegisterEnum("types.OktaAssignmentActionV1_OktaAssignmentActionStatus", OktaAssignmentActionV1_OktaAssignmentActionStatus_name, OktaAssignmentActionV1_OktaAssignmentActionStatus_value) - proto.RegisterEnum("types.OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType", OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType_name, OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType_value) + proto.RegisterEnum("types.OktaAssignmentSpecV1_OktaAssignmentStatus", OktaAssignmentSpecV1_OktaAssignmentStatus_name, OktaAssignmentSpecV1_OktaAssignmentStatus_value) + proto.RegisterEnum("types.OktaAssignmentTargetV1_OktaAssignmentTargetType", OktaAssignmentTargetV1_OktaAssignmentTargetType_name, OktaAssignmentTargetV1_OktaAssignmentTargetType_value) proto.RegisterType((*KeepAlive)(nil), "types.KeepAlive") proto.RegisterType((*Metadata)(nil), "types.Metadata") proto.RegisterMapType((map[string]string)(nil), "types.Metadata.LabelsEntry") @@ -14865,8 +14809,7 @@ func init() { proto.RegisterType((*OktaImportRuleMatchV1)(nil), "types.OktaImportRuleMatchV1") proto.RegisterType((*OktaAssignmentV1)(nil), "types.OktaAssignmentV1") proto.RegisterType((*OktaAssignmentSpecV1)(nil), "types.OktaAssignmentSpecV1") - proto.RegisterType((*OktaAssignmentActionV1)(nil), "types.OktaAssignmentActionV1") - proto.RegisterType((*OktaAssignmentActionTargetV1)(nil), "types.OktaAssignmentActionTargetV1") + proto.RegisterType((*OktaAssignmentTargetV1)(nil), "types.OktaAssignmentTargetV1") proto.RegisterType((*IntegrationV1)(nil), "types.IntegrationV1") proto.RegisterType((*IntegrationSpecV1)(nil), "types.IntegrationSpecV1") proto.RegisterType((*AWSOIDCIntegrationSpecV1)(nil), "types.AWSOIDCIntegrationSpecV1") @@ -14880,1254 +14823,1252 @@ func init() { func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) } var fileDescriptor_9198ee693835762e = []byte{ - // 19944 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6d, 0x90, 0x1c, 0x49, - 0x76, 0x18, 0x86, 0xea, 0x9e, 0x8f, 0x9e, 0x37, 0x5f, 0x3d, 0x39, 0x03, 0x60, 0x80, 0xfd, 0x18, - 0x6c, 0xed, 0x2e, 0x16, 0xc0, 0xee, 0x02, 0x87, 0xc1, 0x2d, 0xee, 0xf6, 0xf6, 0xb3, 0xa7, 0xbb, - 0x81, 0xe9, 0xc5, 0x7c, 0xf4, 0x56, 0xcf, 0xc7, 0xed, 0x7d, 0xb0, 0xae, 0xa6, 0x3b, 0x67, 0xa6, - 0x0e, 0xdd, 0x5d, 0xcd, 0xaa, 0x6a, 0x00, 0x73, 0x24, 0x83, 0xa4, 0x24, 0xea, 0x4c, 0x53, 0xe4, - 0x91, 0x32, 0xbf, 0x24, 0x51, 0x26, 0x83, 0x21, 0xd9, 0xb4, 0x2c, 0x32, 0x14, 0xe4, 0x0f, 0xca, - 0x61, 0x5b, 0x36, 0x6d, 0x07, 0x83, 0xb6, 0x43, 0x16, 0x7f, 0xd8, 0xe1, 0xf0, 0xc9, 0x31, 0x36, - 0x49, 0xdb, 0xe1, 0xc0, 0x0f, 0x85, 0x1d, 0x8c, 0x70, 0x84, 0x4e, 0xa6, 0xc3, 0x91, 0x2f, 0x33, - 0xab, 0x32, 0xab, 0xab, 0x7b, 0x7a, 0x16, 0xd8, 0xa0, 0xb0, 0xf6, 0x1f, 0x60, 0xfa, 0xe5, 0x7b, - 0x2f, 0xb3, 0x32, 0x5f, 0x66, 0xbe, 0xf7, 0xf2, 0xe5, 0x4b, 0x78, 0x29, 0xa4, 0x4d, 0xda, 0xf1, - 0xfc, 0xf0, 0x46, 0x93, 0x1e, 0x38, 0xf5, 0xa3, 0x1b, 0xe1, 0x51, 0x87, 0x06, 0xfc, 0xdf, 0xeb, - 0x1d, 0xdf, 0x0b, 0x3d, 0x32, 0x8a, 0x3f, 0x2e, 0x2e, 0x1c, 0x78, 0x07, 0x1e, 0x42, 0x6e, 0xb0, - 0xbf, 0x78, 0xe1, 0xc5, 0xa5, 0x03, 0xcf, 0x3b, 0x68, 0xd2, 0x1b, 0xf8, 0x6b, 0xaf, 0xbb, 0x7f, - 0x23, 0x74, 0x5b, 0x34, 0x08, 0x9d, 0x56, 0x47, 0x20, 0x5c, 0x8d, 0x2a, 0x70, 0xc2, 0x90, 0x95, - 0x84, 0xae, 0xd7, 0xbe, 0xf1, 0xe0, 0xa6, 0xfa, 0x53, 0xa0, 0xbe, 0x99, 0xde, 0x96, 0x87, 0xbe, - 0xd3, 0xe9, 0x50, 0x3f, 0xfe, 0x83, 0xa3, 0x9b, 0xbf, 0x9f, 0x85, 0x89, 0x7b, 0x94, 0x76, 0x0a, - 0x4d, 0xf7, 0x01, 0x25, 0x2f, 0xc3, 0xc8, 0x86, 0xd3, 0xa2, 0x8b, 0xc6, 0x25, 0xe3, 0xca, 0xc4, - 0xca, 0xec, 0xe3, 0xe3, 0xa5, 0xc9, 0x80, 0xfa, 0x0f, 0xa8, 0x6f, 0xb7, 0x9d, 0x16, 0xb5, 0xb0, - 0x90, 0xbc, 0x0e, 0x13, 0xec, 0xff, 0xa0, 0xe3, 0xd4, 0xe9, 0x62, 0x06, 0x31, 0xa7, 0x1f, 0x1f, - 0x2f, 0x4d, 0xb4, 0x25, 0xd0, 0x8a, 0xcb, 0xc9, 0x65, 0x18, 0x5f, 0xa3, 0x4e, 0x40, 0x2b, 0xa5, - 0xc5, 0xec, 0x25, 0xe3, 0x4a, 0x76, 0x65, 0xea, 0xf1, 0xf1, 0x52, 0xae, 0xc9, 0x40, 0xb6, 0xdb, - 0xb0, 0x64, 0x21, 0xa9, 0xc0, 0x78, 0xf9, 0x51, 0xc7, 0xf5, 0x69, 0xb0, 0x38, 0x72, 0xc9, 0xb8, - 0x32, 0xb9, 0x7c, 0xf1, 0x3a, 0xef, 0x94, 0xeb, 0xb2, 0x53, 0xae, 0x6f, 0xc9, 0x4e, 0x59, 0x99, - 0xff, 0xa3, 0xe3, 0xa5, 0x33, 0x8f, 0x8f, 0x97, 0xc6, 0x29, 0x27, 0xf9, 0xf9, 0xff, 0x69, 0xc9, - 0xb0, 0x24, 0x3d, 0x79, 0x17, 0x46, 0xb6, 0x8e, 0x3a, 0x74, 0x71, 0xe2, 0x92, 0x71, 0x65, 0x66, - 0xf9, 0xc5, 0xeb, 0x7c, 0x18, 0xa2, 0x8f, 0x8c, 0xff, 0x62, 0x58, 0x2b, 0xb9, 0xc7, 0xc7, 0x4b, - 0x23, 0x0c, 0xc5, 0x42, 0x2a, 0xf2, 0x26, 0x8c, 0xad, 0x7a, 0x41, 0x58, 0x29, 0x2d, 0x02, 0x7e, - 0xda, 0xd9, 0xc7, 0xc7, 0x4b, 0x73, 0x87, 0x5e, 0x10, 0xda, 0x6e, 0xe3, 0x0d, 0xaf, 0xe5, 0x86, - 0xb4, 0xd5, 0x09, 0x8f, 0x2c, 0x81, 0x64, 0x3e, 0x82, 0x69, 0x8d, 0x1f, 0x99, 0x84, 0xf1, 0xed, - 0x8d, 0x7b, 0x1b, 0x9b, 0xbb, 0x1b, 0xf9, 0x33, 0x24, 0x07, 0x23, 0x1b, 0x9b, 0xa5, 0x72, 0xde, - 0x20, 0xe3, 0x90, 0x2d, 0x54, 0xab, 0xf9, 0x0c, 0x99, 0x82, 0x5c, 0xa9, 0xb0, 0x55, 0x58, 0x29, - 0xd4, 0xca, 0xf9, 0x2c, 0x99, 0x87, 0xd9, 0xdd, 0xca, 0x46, 0x69, 0x73, 0xb7, 0x66, 0x97, 0xca, - 0xb5, 0x7b, 0x5b, 0x9b, 0xd5, 0xfc, 0x08, 0x99, 0x01, 0xb8, 0xb7, 0xbd, 0x52, 0xb6, 0x36, 0xca, - 0x5b, 0xe5, 0x5a, 0x7e, 0x94, 0x2c, 0x40, 0x5e, 0x92, 0xd8, 0xb5, 0xb2, 0xb5, 0x53, 0x29, 0x96, - 0xf3, 0x63, 0xe6, 0x77, 0xb3, 0x90, 0x5b, 0xa7, 0xa1, 0xd3, 0x70, 0x42, 0x87, 0x3c, 0xaf, 0x0d, - 0x1c, 0x7e, 0x93, 0x32, 0x62, 0x2f, 0xf7, 0x8e, 0xd8, 0xe8, 0xe3, 0xe3, 0x25, 0xe3, 0x4d, 0x75, - 0xa4, 0xde, 0x81, 0xc9, 0x12, 0x0d, 0xea, 0xbe, 0xdb, 0x61, 0xd2, 0x84, 0xa3, 0x35, 0xb1, 0x72, - 0xe1, 0xf1, 0xf1, 0xd2, 0xd9, 0x46, 0x0c, 0x56, 0x7a, 0x40, 0xc5, 0x26, 0x15, 0x18, 0x5b, 0x73, - 0xf6, 0x68, 0x33, 0x58, 0x1c, 0xbd, 0x94, 0xbd, 0x32, 0xb9, 0xfc, 0x9c, 0xe8, 0x75, 0xd9, 0xc0, - 0xeb, 0xbc, 0xb4, 0xdc, 0x0e, 0xfd, 0xa3, 0x95, 0x85, 0xc7, 0xc7, 0x4b, 0xf9, 0x26, 0x02, 0xd4, - 0x1e, 0xe5, 0x28, 0xa4, 0x16, 0x4b, 0xc2, 0xd8, 0x89, 0x92, 0xf0, 0xc2, 0x1f, 0x1d, 0x2f, 0x19, - 0x6c, 0x84, 0x84, 0x24, 0xc4, 0xfc, 0x74, 0x99, 0xb8, 0x04, 0x99, 0x4a, 0x69, 0x71, 0x1c, 0x25, - 0x30, 0xff, 0xf8, 0x78, 0x69, 0x4a, 0x1b, 0xcc, 0x4c, 0xa5, 0x74, 0xf1, 0x6d, 0x98, 0x54, 0xda, - 0x48, 0xf2, 0x90, 0xbd, 0x4f, 0x8f, 0x78, 0x7f, 0x5a, 0xec, 0x4f, 0xb2, 0x00, 0xa3, 0x0f, 0x9c, - 0x66, 0x57, 0x74, 0xa0, 0xc5, 0x7f, 0x7c, 0x25, 0xf3, 0x65, 0xc3, 0xfc, 0x9b, 0x23, 0x90, 0xb3, - 0x3c, 0x3e, 0x0b, 0xc9, 0x55, 0x18, 0xad, 0x85, 0x4e, 0x28, 0x87, 0x62, 0xfe, 0xf1, 0xf1, 0xd2, - 0x2c, 0x9b, 0xa1, 0x54, 0xa9, 0x8f, 0x63, 0x30, 0xd4, 0xea, 0xa1, 0x13, 0xc8, 0x21, 0x41, 0xd4, - 0x0e, 0x03, 0xa8, 0xa8, 0x88, 0x41, 0x2e, 0xc3, 0xc8, 0xba, 0xd7, 0xa0, 0x62, 0x54, 0xc8, 0xe3, - 0xe3, 0xa5, 0x99, 0x96, 0xd7, 0x50, 0x11, 0xb1, 0x9c, 0xbc, 0x01, 0x13, 0xc5, 0xae, 0xef, 0xd3, - 0x36, 0x13, 0xe0, 0x11, 0x44, 0x9e, 0x79, 0x7c, 0xbc, 0x04, 0x75, 0x0e, 0x64, 0x53, 0x2e, 0x46, - 0x60, 0x5d, 0x5d, 0x0b, 0x1d, 0x3f, 0xa4, 0x8d, 0xc5, 0xd1, 0xa1, 0xba, 0x9a, 0x4d, 0xba, 0xb9, - 0x80, 0x93, 0x24, 0xbb, 0x5a, 0x70, 0x22, 0xab, 0x30, 0x79, 0xd7, 0x77, 0xea, 0xb4, 0x4a, 0x7d, - 0xd7, 0x6b, 0xe0, 0x18, 0x66, 0x57, 0x2e, 0x3f, 0x3e, 0x5e, 0x3a, 0x77, 0xc0, 0xc0, 0x76, 0x07, - 0xe1, 0x31, 0xf5, 0x0f, 0x8e, 0x97, 0x72, 0xa5, 0xae, 0x8f, 0xbd, 0x67, 0xa9, 0xa4, 0xe4, 0x5b, - 0x6c, 0x48, 0x82, 0x10, 0xbb, 0x96, 0x36, 0x70, 0xf4, 0x06, 0x37, 0xd1, 0x14, 0x4d, 0x3c, 0xd7, - 0x74, 0x82, 0xd0, 0xf6, 0x39, 0x5d, 0xa2, 0x9d, 0x2a, 0x4b, 0xb2, 0x09, 0xb9, 0x5a, 0xfd, 0x90, - 0x36, 0xba, 0x4d, 0xba, 0x98, 0x43, 0xf6, 0xe7, 0x85, 0xe0, 0xca, 0xf1, 0x94, 0xc5, 0x2b, 0x17, - 0x05, 0x6f, 0x12, 0x08, 0x88, 0xd2, 0xf7, 0x11, 0x93, 0xaf, 0xe4, 0x7e, 0xf5, 0x37, 0x96, 0xce, - 0xfc, 0xc4, 0xff, 0x78, 0xe9, 0x8c, 0xf9, 0xfb, 0x19, 0xc8, 0x27, 0x99, 0x90, 0x7d, 0x98, 0xde, - 0xee, 0x34, 0x9c, 0x90, 0x16, 0x9b, 0x2e, 0x6d, 0x87, 0x01, 0x0a, 0xc9, 0xe0, 0x6f, 0x7a, 0x45, - 0xd4, 0xbb, 0xd8, 0x45, 0x42, 0xbb, 0xce, 0x29, 0x13, 0x5f, 0xa5, 0xb3, 0x8d, 0xeb, 0xa9, 0xe1, - 0xea, 0x1d, 0xa0, 0x84, 0x9d, 0xae, 0x1e, 0xbe, 0xee, 0xf7, 0xa9, 0x47, 0xb0, 0x15, 0x02, 0xd4, - 0x6e, 0xec, 0x1d, 0xa1, 0x64, 0x0e, 0x2f, 0x40, 0x8c, 0x24, 0x45, 0x80, 0x18, 0xd8, 0xfc, 0x5f, - 0x0c, 0x98, 0xb1, 0x68, 0xe0, 0x75, 0xfd, 0x3a, 0x5d, 0xa5, 0x4e, 0x83, 0xfa, 0x4c, 0xfc, 0xef, - 0xb9, 0xed, 0x86, 0x98, 0x53, 0x28, 0xfe, 0xf7, 0xdd, 0xb6, 0x3a, 0x85, 0xb1, 0x9c, 0x7c, 0x01, - 0xc6, 0x6b, 0xdd, 0x3d, 0x44, 0xe5, 0x73, 0xea, 0x1c, 0x8e, 0x58, 0x77, 0xcf, 0x4e, 0xa0, 0x4b, - 0x34, 0x72, 0x03, 0xc6, 0x77, 0xa8, 0x1f, 0xc4, 0x2b, 0x1e, 0xae, 0xf7, 0x0f, 0x38, 0x48, 0x25, - 0x10, 0x58, 0xe4, 0x6e, 0xbc, 0xea, 0x8a, 0x9d, 0x6a, 0x36, 0xb1, 0xd6, 0xc5, 0xa2, 0xd2, 0x12, - 0x10, 0x55, 0x54, 0x24, 0x96, 0xf9, 0x0b, 0x19, 0xc8, 0x97, 0x9c, 0xd0, 0xd9, 0x73, 0x02, 0xd1, - 0x9f, 0x3b, 0xb7, 0xd8, 0x3a, 0xae, 0x7c, 0x28, 0xae, 0xe3, 0xac, 0xe5, 0x9f, 0xfa, 0xf3, 0x5e, - 0x4d, 0x7e, 0xde, 0x24, 0xdb, 0x36, 0xc5, 0xe7, 0xc5, 0x1f, 0xf5, 0xde, 0xc9, 0x1f, 0x95, 0x17, - 0x1f, 0x95, 0x93, 0x1f, 0x15, 0x7f, 0x0a, 0x79, 0x0f, 0x46, 0x6a, 0x1d, 0x5a, 0x17, 0x8b, 0x88, - 0x5c, 0xfb, 0xf5, 0x8f, 0x63, 0x08, 0x3b, 0xb7, 0x56, 0xa6, 0x04, 0x9b, 0x91, 0xa0, 0x43, 0xeb, - 0x16, 0x92, 0x29, 0x93, 0xe6, 0xbf, 0x1c, 0x83, 0x85, 0x34, 0x32, 0xf2, 0x9e, 0xbe, 0x39, 0xf1, - 0xee, 0x79, 0xae, 0xef, 0xe6, 0xb4, 0x68, 0xe8, 0xdb, 0xd3, 0x35, 0xc8, 0x55, 0x99, 0x40, 0xd6, - 0xbd, 0xa6, 0xe8, 0x39, 0xb6, 0x2a, 0xe6, 0x3a, 0x12, 0x66, 0x58, 0x51, 0x39, 0x79, 0x0e, 0xb2, - 0xdb, 0x56, 0x45, 0x74, 0xd7, 0xc4, 0xe3, 0xe3, 0xa5, 0x6c, 0xd7, 0x77, 0x17, 0x0d, 0x8b, 0x41, - 0xc9, 0x0d, 0x18, 0x2b, 0x16, 0x8a, 0xd4, 0x0f, 0xb1, 0x9b, 0xa6, 0x56, 0xce, 0x33, 0x69, 0xa9, - 0x3b, 0x76, 0x9d, 0xfa, 0xa1, 0x56, 0xbd, 0x40, 0x23, 0xaf, 0x43, 0xb6, 0xb0, 0x5b, 0x13, 0x3d, - 0x03, 0xa2, 0x67, 0x0a, 0xbb, 0xb5, 0x95, 0x69, 0xd1, 0x11, 0x59, 0xe7, 0x61, 0xc0, 0xb8, 0x17, - 0x76, 0x6b, 0xea, 0x68, 0x8d, 0x0d, 0x18, 0xad, 0x2b, 0x90, 0x63, 0xda, 0x07, 0xdb, 0xe0, 0x71, - 0x51, 0x9c, 0xe0, 0x4a, 0xd5, 0xa1, 0x80, 0x59, 0x51, 0x29, 0x79, 0x39, 0x52, 0x66, 0x72, 0x31, - 0x3f, 0xa1, 0xcc, 0x48, 0x15, 0x86, 0x3c, 0x82, 0xe9, 0xd2, 0x51, 0xdb, 0x69, 0xb9, 0x75, 0xb1, - 0x85, 0x4f, 0xe0, 0x16, 0x7e, 0x7d, 0xc0, 0x30, 0x5e, 0xd7, 0x08, 0xf8, 0xae, 0x2e, 0x17, 0xdf, - 0xc5, 0x06, 0x2f, 0xb3, 0x93, 0x3b, 0xfc, 0xa2, 0x61, 0xe9, 0x15, 0xb1, 0xb9, 0x24, 0x97, 0x48, - 0xd4, 0xb6, 0x62, 0xb1, 0x93, 0xe0, 0x78, 0x2e, 0xf9, 0x02, 0xa2, 0xce, 0xa5, 0x68, 0xd3, 0x7d, - 0x0f, 0xb2, 0x77, 0x8b, 0xd5, 0xc5, 0x49, 0xe4, 0x41, 0x04, 0x8f, 0xbb, 0xc5, 0x6a, 0xb1, 0xe9, - 0x75, 0x1b, 0xb5, 0x8f, 0xd7, 0x56, 0xce, 0x0b, 0x36, 0xd3, 0x07, 0xf5, 0x8e, 0xd6, 0x22, 0x46, - 0x47, 0xca, 0x90, 0x93, 0x5f, 0xb9, 0x38, 0x85, 0x3c, 0xe6, 0x12, 0x1f, 0xbf, 0x73, 0x8b, 0xcf, - 0xb5, 0x86, 0xf8, 0xad, 0xb6, 0x42, 0xe2, 0x90, 0x5b, 0x28, 0x65, 0x8f, 0x8e, 0x2a, 0xa5, 0x60, - 0x71, 0xfa, 0x52, 0xf6, 0xca, 0x04, 0x8a, 0xc7, 0x7c, 0x87, 0xc1, 0x6c, 0xb7, 0xa1, 0x2a, 0x3b, - 0x11, 0xe2, 0xc5, 0x5d, 0x20, 0xbd, 0x9d, 0x99, 0xa2, 0x7e, 0xbc, 0xae, 0xaa, 0x1f, 0x93, 0xcb, - 0x67, 0x45, 0x03, 0x8b, 0x5e, 0xab, 0xe5, 0xb4, 0x1b, 0x48, 0xbb, 0xb3, 0xac, 0x6a, 0x25, 0x05, - 0x98, 0x89, 0x5b, 0xbf, 0xe6, 0x06, 0x21, 0xb9, 0x01, 0x13, 0x12, 0xc2, 0x76, 0x9e, 0x6c, 0xea, - 0x77, 0x5a, 0x31, 0x8e, 0xf9, 0x87, 0x19, 0x80, 0xb8, 0xe4, 0x19, 0x5d, 0x9c, 0xbe, 0xa4, 0x2d, - 0x4e, 0x67, 0x93, 0x52, 0xdd, 0x77, 0x59, 0x22, 0x1f, 0xc0, 0x18, 0xd3, 0xd3, 0xba, 0x52, 0x0f, - 0x3d, 0x9f, 0x24, 0xc5, 0xc2, 0x9d, 0x5b, 0x2b, 0x33, 0x82, 0x78, 0x2c, 0x40, 0x88, 0x25, 0xc8, - 0x94, 0x75, 0xed, 0x77, 0x47, 0xe3, 0xc1, 0x10, 0x2b, 0xda, 0x15, 0x65, 0x49, 0x32, 0xe2, 0x49, - 0x2c, 0x97, 0x24, 0x65, 0x41, 0xba, 0xc0, 0x17, 0x24, 0xde, 0xa9, 0xe3, 0x62, 0x41, 0x4a, 0x2e, - 0x47, 0xbc, 0x03, 0x4f, 0x5c, 0x8e, 0x3a, 0xc9, 0xb9, 0x3e, 0x82, 0x62, 0x70, 0x25, 0xb5, 0x57, - 0xd2, 0x66, 0xf9, 0xa5, 0x93, 0x66, 0x79, 0x72, 0x8e, 0xdf, 0xea, 0xb7, 0x00, 0x9e, 0x95, 0x53, - 0xd2, 0x79, 0xa8, 0x92, 0xe3, 0x42, 0xf8, 0x0e, 0x9f, 0xcf, 0x63, 0x7d, 0xe7, 0xf3, 0xd9, 0xd4, - 0xf9, 0xcc, 0x67, 0xf3, 0x3b, 0x30, 0x5a, 0xf8, 0x4e, 0xd7, 0xa7, 0x42, 0x61, 0x9c, 0x92, 0x75, - 0x32, 0x58, 0xb4, 0x10, 0xcc, 0x3a, 0xec, 0xa7, 0xaa, 0x68, 0x63, 0x39, 0xab, 0x79, 0x6b, 0xad, - 0x26, 0x94, 0x41, 0x92, 0xe8, 0x96, 0xad, 0x35, 0xa5, 0xd9, 0xa1, 0xf6, 0xd5, 0x8c, 0x8a, 0xdc, - 0x80, 0x4c, 0xa1, 0x84, 0x76, 0xe7, 0xe4, 0xf2, 0x84, 0xac, 0xb6, 0xb4, 0xb2, 0x20, 0x48, 0xa6, - 0x1c, 0xcd, 0xe8, 0x28, 0x94, 0xc8, 0x0a, 0x8c, 0xae, 0x1f, 0xd5, 0x3e, 0x5e, 0x13, 0xab, 0xdf, - 0xbc, 0x94, 0x6b, 0x06, 0xdb, 0xc4, 0xad, 0x2b, 0x88, 0x5b, 0xdc, 0x3a, 0x0a, 0x7e, 0xb8, 0xa9, - 0xb6, 0x18, 0xd1, 0x3e, 0xbb, 0x05, 0xe4, 0xef, 0xa9, 0x0a, 0x8a, 0x90, 0x75, 0x66, 0x1e, 0x0b, - 0x89, 0x33, 0x62, 0x75, 0xa9, 0x47, 0xe2, 0x22, 0x79, 0xbb, 0xca, 0x47, 0x3f, 0xd3, 0x33, 0xfa, - 0x93, 0xca, 0xf6, 0xc7, 0xc7, 0x3c, 0xea, 0x8b, 0xec, 0xa7, 0xee, 0x0b, 0xf2, 0x01, 0x4c, 0xad, - 0x3b, 0x6d, 0xe7, 0x80, 0x36, 0xb6, 0x03, 0xa6, 0xf6, 0x8e, 0xe0, 0x2a, 0xcc, 0xf4, 0x84, 0xf3, - 0x2d, 0x0e, 0xb7, 0xbb, 0x81, 0xa6, 0xd5, 0x5a, 0x1a, 0x01, 0xb9, 0x29, 0x65, 0x67, 0x34, 0x45, - 0x76, 0xe4, 0x96, 0x3d, 0x8a, 0xb2, 0x23, 0x24, 0xc6, 0xfc, 0xd5, 0x31, 0xfc, 0x46, 0xf2, 0x06, - 0x8c, 0x59, 0xf4, 0x20, 0xd6, 0x4e, 0xd0, 0xca, 0xf5, 0x11, 0xa2, 0x76, 0x0c, 0xc7, 0xc1, 0xad, - 0x8f, 0x36, 0x82, 0x43, 0x77, 0x3f, 0x14, 0xbd, 0x13, 0x6d, 0x7d, 0x02, 0xac, 0x6c, 0x7d, 0x02, - 0xa2, 0x6d, 0x7d, 0x02, 0xc6, 0xe6, 0x97, 0x55, 0xaa, 0x89, 0x4e, 0x93, 0x3d, 0x6c, 0x95, 0x14, - 0x41, 0xf5, 0xb5, 0x9d, 0x87, 0x61, 0x93, 0xdb, 0x30, 0x51, 0xa8, 0xd7, 0xbd, 0xae, 0x62, 0x26, - 0x2e, 0x3e, 0x3e, 0x5e, 0x5a, 0x70, 0x38, 0x50, 0x77, 0x75, 0xc4, 0xa8, 0xa4, 0x06, 0x93, 0x65, - 0x66, 0x5b, 0xb9, 0x45, 0xa7, 0x7e, 0x28, 0x3b, 0x49, 0xce, 0x12, 0xa5, 0x24, 0xd2, 0xf5, 0xcf, - 0x52, 0x04, 0xd6, 0x19, 0x50, 0xf5, 0x1d, 0x28, 0xb8, 0x64, 0x0b, 0x26, 0x6b, 0xb4, 0xee, 0xd3, - 0xb0, 0x16, 0x7a, 0x3e, 0x4d, 0x4c, 0x7a, 0xa5, 0x64, 0xe5, 0x45, 0x69, 0xde, 0x05, 0x08, 0xb4, - 0x03, 0x06, 0x55, 0xb9, 0x2a, 0xc8, 0x5c, 0x4f, 0x6f, 0x79, 0xfe, 0x51, 0x69, 0x45, 0x2c, 0x04, - 0xf1, 0xae, 0xc1, 0xc1, 0xaa, 0x9e, 0xce, 0x20, 0x8d, 0x3d, 0x5d, 0x4f, 0xe7, 0x58, 0x38, 0x52, - 0xa5, 0x1a, 0xee, 0xd7, 0x62, 0x59, 0x98, 0x8d, 0x7b, 0x19, 0xc1, 0xca, 0x48, 0x35, 0x02, 0xdc, - 0xed, 0xb5, 0x91, 0x12, 0x58, 0xa4, 0x03, 0x44, 0x8e, 0x1a, 0xd7, 0xa5, 0x9a, 0x34, 0x08, 0xc4, - 0x6a, 0x71, 0x21, 0x31, 0xf8, 0x31, 0xc2, 0xca, 0xab, 0x82, 0xf9, 0x0b, 0x52, 0x0c, 0x84, 0x69, - 0xc6, 0x0a, 0x95, 0x7a, 0x52, 0x78, 0x93, 0xb7, 0x01, 0xca, 0x8f, 0x42, 0xea, 0xb7, 0x9d, 0x66, - 0xe4, 0xcf, 0x42, 0x8f, 0x0e, 0x15, 0x50, 0x7d, 0xa0, 0x15, 0x64, 0x52, 0x84, 0xe9, 0x42, 0x10, - 0x74, 0x5b, 0xd4, 0xf2, 0x9a, 0xb4, 0x60, 0x6d, 0xa0, 0x6e, 0x35, 0xb1, 0xf2, 0xc2, 0xe3, 0xe3, - 0xa5, 0x0b, 0x0e, 0x16, 0xd8, 0xbe, 0xd7, 0xa4, 0xb6, 0xe3, 0xab, 0xd2, 0xad, 0xd3, 0x98, 0x3f, - 0xa2, 0x8d, 0x2c, 0x93, 0xba, 0x7b, 0xf4, 0xa8, 0xea, 0xd3, 0x7d, 0xf7, 0x91, 0x98, 0x24, 0x28, - 0x75, 0xf7, 0xe9, 0x91, 0xdd, 0x41, 0xa8, 0x2a, 0x75, 0x11, 0x2a, 0xf9, 0x22, 0xe4, 0xee, 0xad, - 0xd7, 0xee, 0xd1, 0xa3, 0x4a, 0x49, 0xec, 0x82, 0x9c, 0xac, 0x15, 0xd8, 0x8c, 0x54, 0xfb, 0x86, - 0x08, 0xd3, 0x5c, 0x89, 0x67, 0x18, 0xab, 0xb9, 0xd8, 0xec, 0x06, 0x21, 0xf5, 0x2b, 0x25, 0xb5, - 0xe6, 0x3a, 0x07, 0x26, 0xe4, 0x3d, 0x42, 0x35, 0xff, 0xb9, 0x81, 0xb3, 0x8b, 0x75, 0x64, 0xa5, - 0xcd, 0xcc, 0xd6, 0x3a, 0x8d, 0x18, 0x60, 0x47, 0xba, 0x02, 0x9a, 0xe8, 0xc8, 0x18, 0x59, 0xaf, - 0x3a, 0x33, 0x74, 0xd5, 0xac, 0x4a, 0x69, 0x04, 0x0b, 0xdf, 0xa9, 0xa8, 0xd2, 0x17, 0xd0, 0x44, - 0x95, 0x31, 0x32, 0xb9, 0x0c, 0xe3, 0x95, 0xc2, 0x7a, 0xa1, 0x1b, 0x1e, 0xe2, 0xdc, 0xce, 0x71, - 0xcd, 0xc2, 0x75, 0x5a, 0xb6, 0xd3, 0x0d, 0x0f, 0x2d, 0x59, 0x68, 0xfe, 0x81, 0x11, 0x8b, 0x36, - 0x33, 0xb1, 0x15, 0x0f, 0x22, 0x9a, 0xd8, 0xcc, 0x84, 0x50, 0x4d, 0x6c, 0xf4, 0x25, 0x5a, 0x40, - 0x8a, 0xdd, 0x20, 0xf4, 0x5a, 0xe5, 0x76, 0xa3, 0xe3, 0xb9, 0xed, 0x10, 0xa9, 0xf8, 0x87, 0x99, - 0x8f, 0x8f, 0x97, 0x5e, 0xac, 0x63, 0xa9, 0x4d, 0x45, 0xb1, 0x9d, 0xe0, 0x92, 0x42, 0xfd, 0x04, - 0xdf, 0x6a, 0xfe, 0x57, 0x19, 0x6d, 0x49, 0x62, 0xcd, 0xb3, 0x68, 0xa7, 0xe9, 0xd6, 0xd1, 0x30, - 0xb8, 0xeb, 0x7b, 0xdd, 0x4e, 0x34, 0x62, 0xd8, 0x3c, 0x3f, 0x2e, 0xb5, 0x0f, 0x58, 0xb1, 0xce, - 0x3b, 0x85, 0x9a, 0x7c, 0x08, 0x53, 0x6c, 0x77, 0x10, 0x3f, 0x83, 0xc5, 0x0c, 0xee, 0x2a, 0xcf, - 0xa3, 0xb3, 0x24, 0xa0, 0x7e, 0xc4, 0x46, 0xdb, 0x56, 0x54, 0x0a, 0xd2, 0x80, 0xc5, 0x2d, 0xdf, - 0x69, 0x07, 0x6e, 0x58, 0x6e, 0xd7, 0xfd, 0x23, 0xdc, 0xcd, 0xca, 0x6d, 0x67, 0xaf, 0x49, 0x1b, - 0xf8, 0xb9, 0xb9, 0x95, 0x2b, 0x8f, 0x8f, 0x97, 0x5e, 0x09, 0x39, 0x8e, 0x4d, 0x23, 0x24, 0x9b, - 0x72, 0x2c, 0x85, 0x73, 0x5f, 0x4e, 0x6c, 0xf7, 0x93, 0xdd, 0x8a, 0x0e, 0xf0, 0x91, 0xc8, 0x4a, - 0x3e, 0x1f, 0x8d, 0x06, 0x5b, 0x66, 0xd4, 0x66, 0xaa, 0x04, 0xe6, 0xff, 0x65, 0xc4, 0x8b, 0x26, - 0x79, 0x17, 0x26, 0x85, 0x34, 0x2a, 0x72, 0x71, 0x91, 0x2d, 0xbf, 0x52, 0x74, 0x13, 0x23, 0xab, - 0xa2, 0x33, 0x6b, 0xa0, 0x50, 0x5c, 0x53, 0x64, 0x03, 0xad, 0x01, 0xa7, 0xde, 0x4c, 0x52, 0x49, - 0x34, 0x26, 0x04, 0x5b, 0x6b, 0x35, 0xbd, 0x57, 0x50, 0x08, 0xc2, 0x66, 0x90, 0xd2, 0x0d, 0x0a, - 0xf2, 0x93, 0x7f, 0xf8, 0x7f, 0x6f, 0xa4, 0xad, 0xcd, 0x64, 0x05, 0xa6, 0x77, 0x3d, 0xff, 0x3e, - 0x8e, 0xaf, 0xd2, 0x09, 0x38, 0xf2, 0x0f, 0x65, 0x41, 0xf2, 0x83, 0x74, 0x12, 0xb5, 0x6d, 0x4a, - 0x6f, 0xe8, 0x6d, 0x4b, 0x70, 0xd0, 0x08, 0xd8, 0x38, 0x44, 0x1c, 0xa3, 0xd9, 0x81, 0xe3, 0x10, - 0x37, 0x41, 0x13, 0x61, 0x15, 0xdd, 0xfc, 0x09, 0x03, 0x26, 0x15, 0xc5, 0x99, 0x2d, 0x47, 0x55, - 0xdf, 0xfb, 0x36, 0xad, 0x87, 0xfa, 0x4a, 0xd8, 0xe1, 0xc0, 0xc4, 0x72, 0x14, 0xa1, 0x26, 0x56, - 0xc0, 0xcc, 0x29, 0x56, 0x40, 0xf3, 0xff, 0x34, 0x84, 0x52, 0x35, 0xf4, 0x1a, 0xa3, 0xaf, 0x07, - 0x99, 0xd3, 0xac, 0x7d, 0x1f, 0xc2, 0xa8, 0x45, 0x1b, 0x6e, 0x20, 0x14, 0xa2, 0x39, 0x55, 0x81, - 0xc3, 0x82, 0x58, 0x87, 0xf4, 0xd9, 0x4f, 0x55, 0x87, 0xc4, 0x72, 0xb6, 0xf3, 0x55, 0x82, 0x3b, - 0x4d, 0xfa, 0xc8, 0xe5, 0x92, 0x20, 0xd6, 0x50, 0xdc, 0xf9, 0xdc, 0xc0, 0xde, 0x67, 0x25, 0x62, - 0x0b, 0x56, 0x47, 0x5d, 0xa3, 0x31, 0x3f, 0x01, 0x88, 0xab, 0x24, 0xf7, 0x20, 0x2f, 0xe6, 0x86, - 0xdb, 0x3e, 0xa8, 0x7a, 0x4d, 0xb7, 0x2e, 0x34, 0xf3, 0x95, 0xa5, 0xc7, 0xc7, 0x4b, 0xcf, 0xd5, - 0xa3, 0x32, 0xbb, 0x83, 0x85, 0x0a, 0xdf, 0x1e, 0x42, 0xf3, 0xdf, 0xcd, 0x30, 0x2b, 0x83, 0xf5, - 0xd1, 0x3d, 0x7a, 0x14, 0x3a, 0x7b, 0x77, 0xdc, 0x26, 0x55, 0xb7, 0xa4, 0xfb, 0x08, 0xb5, 0xf7, - 0x5d, 0xcd, 0x45, 0xad, 0x20, 0x93, 0x5b, 0x90, 0xbb, 0xe7, 0xef, 0xbd, 0x85, 0x84, 0x99, 0xc8, - 0x6e, 0x9c, 0xbf, 0xef, 0xef, 0xbd, 0x95, 0x24, 0x8b, 0x10, 0x89, 0x09, 0x63, 0x25, 0xaf, 0xe5, - 0xb8, 0xd2, 0x56, 0x07, 0x66, 0xf0, 0x36, 0x10, 0x62, 0x89, 0x12, 0x66, 0xa9, 0xd6, 0xaa, 0x1b, - 0x62, 0xfa, 0xa1, 0xa5, 0x1a, 0x74, 0xda, 0x16, 0x83, 0xb1, 0x3a, 0xd7, 0x4a, 0x85, 0x2a, 0x5a, - 0x0e, 0xa3, 0x71, 0x9d, 0xcd, 0x86, 0xd3, 0x49, 0xda, 0x0e, 0x11, 0x22, 0x79, 0x0f, 0x26, 0xef, - 0x95, 0x8a, 0xab, 0x5e, 0xc0, 0xa7, 0xce, 0x58, 0x3c, 0x75, 0xee, 0x37, 0xea, 0x36, 0xfa, 0xb1, - 0x92, 0x6b, 0x90, 0x82, 0x6f, 0xfe, 0xb6, 0x01, 0x93, 0x8a, 0xe9, 0x46, 0xbe, 0x28, 0x0e, 0x51, - 0x0c, 0x3c, 0x18, 0x3c, 0xd7, 0x6b, 0xdc, 0xb1, 0x52, 0xee, 0xd7, 0x68, 0x79, 0x0d, 0x2a, 0x8e, - 0x54, 0x62, 0x8b, 0x27, 0x33, 0x8c, 0xc5, 0xf3, 0x36, 0x00, 0x97, 0x01, 0x6c, 0xb2, 0xb2, 0x97, - 0x29, 0x07, 0xa9, 0xea, 0xb8, 0xc4, 0xc8, 0xa6, 0x05, 0x53, 0xaa, 0xb5, 0xc3, 0x96, 0x1f, 0xe1, - 0x18, 0x16, 0x5e, 0x12, 0x65, 0xf9, 0x11, 0xdc, 0x7a, 0x1d, 0xd5, 0x3a, 0x89, 0xf9, 0x57, 0x8c, - 0x78, 0xe2, 0xee, 0xdc, 0x24, 0xef, 0xc0, 0x18, 0x77, 0xa9, 0x8b, 0x93, 0x87, 0xb3, 0x91, 0xde, - 0xa9, 0xfa, 0xdb, 0xb9, 0x3b, 0xe4, 0x8f, 0xf9, 0xd1, 0xda, 0x19, 0x4b, 0x90, 0x44, 0x9e, 0x14, - 0xdd, 0x80, 0x94, 0xdc, 0xd1, 0x67, 0x70, 0x33, 0xcd, 0x93, 0x62, 0xfe, 0xdb, 0x59, 0x98, 0xd1, - 0xd1, 0x54, 0xbf, 0xbb, 0x31, 0x94, 0xdf, 0xfd, 0x43, 0xc8, 0xb1, 0x2f, 0x73, 0xeb, 0x54, 0x6e, - 0xc0, 0xaf, 0xa0, 0x7f, 0x49, 0xc0, 0x04, 0x49, 0xd8, 0x39, 0xfa, 0xc1, 0xf1, 0x12, 0xd4, 0x8e, - 0x82, 0x90, 0xb6, 0x98, 0x1a, 0x6a, 0x45, 0x54, 0x64, 0x59, 0x71, 0x9b, 0x66, 0xe3, 0x3d, 0x49, - 0xba, 0x4d, 0x55, 0x09, 0x8c, 0x1c, 0xa8, 0x6f, 0xc2, 0x18, 0x53, 0x95, 0x22, 0x2b, 0x09, 0x5b, - 0xc9, 0xb4, 0xa8, 0xc4, 0x69, 0x30, 0x47, 0x22, 0xbb, 0x90, 0x5b, 0x73, 0x82, 0xb0, 0x46, 0x69, - 0x7b, 0x88, 0x13, 0xb5, 0x25, 0xd1, 0x55, 0xf3, 0x78, 0x5c, 0x15, 0x50, 0xda, 0x4e, 0x1c, 0x89, - 0x44, 0xcc, 0xc8, 0x37, 0x01, 0x8a, 0x5e, 0x3b, 0xf4, 0xbd, 0xe6, 0x9a, 0x77, 0xb0, 0x38, 0x86, - 0x4e, 0x9b, 0x17, 0x13, 0x03, 0x10, 0x23, 0x70, 0x57, 0x4d, 0x64, 0x83, 0xd5, 0x79, 0x81, 0xdd, - 0xf4, 0x0e, 0x54, 0xc9, 0x8b, 0xf1, 0xcd, 0x1f, 0x64, 0xe0, 0x7c, 0x1f, 0x36, 0x6c, 0xd1, 0xc6, - 0x4d, 0x55, 0x59, 0xb4, 0x13, 0x7b, 0x29, 0x3f, 0x38, 0xe7, 0x47, 0xac, 0x4c, 0x36, 0x46, 0xd2, - 0x8f, 0x58, 0xc9, 0x47, 0x30, 0xc2, 0x3e, 0x7e, 0x88, 0xa3, 0x22, 0x69, 0x50, 0xcd, 0x84, 0xae, - 0x3a, 0x30, 0xd8, 0x29, 0xc8, 0x83, 0x7c, 0x11, 0xb2, 0x5b, 0x5b, 0x6b, 0x38, 0x2a, 0x59, 0x54, - 0xec, 0xa6, 0xc3, 0xb0, 0xa9, 0x1d, 0x2a, 0x4e, 0x33, 0xda, 0xeb, 0xd1, 0xc9, 0x22, 0x43, 0x27, - 0x5f, 0x4d, 0x1c, 0x53, 0x5f, 0x1b, 0xdc, 0x85, 0xc3, 0x9f, 0x5a, 0x3f, 0xc9, 0xf1, 0xb1, 0x1f, - 0x4f, 0x8e, 0x3b, 0x6e, 0x33, 0xa4, 0x3e, 0xb9, 0xc8, 0x65, 0x3d, 0xb6, 0x56, 0xac, 0xe8, 0x37, - 0x59, 0x8c, 0x27, 0x0e, 0xe7, 0x14, 0xcd, 0x90, 0x6b, 0xca, 0x0c, 0xc9, 0xe2, 0x0c, 0x99, 0xe9, - 0x37, 0x17, 0xcc, 0x9f, 0xcc, 0xc8, 0x2a, 0x76, 0x96, 0x9f, 0x51, 0xbf, 0xee, 0x5b, 0x9a, 0x5f, - 0x77, 0x3e, 0xf2, 0x17, 0x44, 0xa7, 0x14, 0xcb, 0x27, 0x1c, 0x36, 0xbd, 0x0d, 0x53, 0xb2, 0x0b, - 0xd0, 0x3d, 0x7e, 0x15, 0xc6, 0xe5, 0x71, 0x29, 0x77, 0x8e, 0xcf, 0x6a, 0x3c, 0x77, 0x96, 0x2d, - 0x59, 0x6e, 0xfe, 0xed, 0x51, 0x49, 0xcb, 0x6b, 0x62, 0x5d, 0x58, 0x68, 0x34, 0x7c, 0xb5, 0x0b, - 0x9d, 0x46, 0xc3, 0xb7, 0x10, 0xca, 0xf6, 0x84, 0x6a, 0x77, 0xaf, 0xe9, 0xd6, 0x11, 0x47, 0xd1, - 0x67, 0x3a, 0x08, 0xb5, 0x19, 0xaa, 0x3a, 0x33, 0x63, 0x64, 0xed, 0xac, 0x27, 0x3b, 0xf0, 0xac, - 0xe7, 0x87, 0x60, 0xa2, 0xd8, 0x6a, 0x68, 0x6e, 0x5d, 0x33, 0xa5, 0x53, 0xae, 0x47, 0x48, 0x5c, - 0xac, 0x9f, 0x17, 0x7d, 0xb4, 0x50, 0x6f, 0x35, 0x7a, 0x9d, 0xb9, 0x31, 0x4b, 0xed, 0xb0, 0x66, - 0xf4, 0x49, 0x0e, 0x6b, 0x6e, 0xc3, 0xc4, 0x76, 0x40, 0xb7, 0xba, 0xed, 0x36, 0x6d, 0xe2, 0x9e, - 0x9e, 0xe3, 0x2a, 0x68, 0x37, 0xa0, 0x76, 0x88, 0x50, 0xb5, 0x01, 0x11, 0xaa, 0x2a, 0x56, 0xe3, - 0x03, 0xc4, 0xea, 0x8b, 0x30, 0x52, 0xe8, 0x74, 0xe4, 0x29, 0x56, 0xe4, 0x73, 0xec, 0x74, 0x70, - 0x06, 0xcf, 0x38, 0x9d, 0x8e, 0x7e, 0x26, 0x85, 0xd8, 0x78, 0x76, 0x43, 0xa9, 0x8f, 0x03, 0x34, - 0x19, 0xeb, 0x27, 0x1d, 0x4a, 0xfd, 0xe4, 0xf0, 0x44, 0x88, 0xda, 0x81, 0xcf, 0xd4, 0xb0, 0x07, - 0x3e, 0x35, 0x98, 0xd1, 0x87, 0xe0, 0x29, 0xf8, 0x6a, 0x3f, 0x1a, 0xc9, 0xe5, 0xf2, 0x13, 0x1f, - 0x8d, 0xe4, 0x20, 0x3f, 0x69, 0x7e, 0x37, 0x03, 0x93, 0x85, 0x4e, 0xe7, 0x19, 0x3f, 0x53, 0xfe, - 0xb2, 0x36, 0xbd, 0xcf, 0xc5, 0xc3, 0x78, 0x8a, 0xe3, 0xe4, 0xdf, 0xc9, 0xc0, 0x6c, 0x82, 0x42, - 0x6d, 0xbd, 0x31, 0xe4, 0x19, 0x6b, 0x66, 0xc8, 0x33, 0xd6, 0x6c, 0xff, 0x33, 0x56, 0x75, 0xf2, - 0x8c, 0x3c, 0xc9, 0xe4, 0x79, 0x0d, 0xb2, 0x85, 0x4e, 0x27, 0xe9, 0x9e, 0xee, 0x74, 0x76, 0x6e, - 0x71, 0x85, 0xdb, 0xe9, 0x74, 0x2c, 0x86, 0xa1, 0xc9, 0xe6, 0xd8, 0x90, 0xb2, 0x69, 0xbe, 0x09, - 0x13, 0xc8, 0x0b, 0xd7, 0xc3, 0x4b, 0x62, 0x22, 0xf1, 0xc5, 0x50, 0xab, 0x8b, 0x4f, 0x1a, 0xf3, - 0x5f, 0x31, 0xcb, 0x8e, 0xfd, 0x7e, 0x46, 0x65, 0x6c, 0x59, 0x93, 0xb1, 0xbc, 0x22, 0x63, 0xc3, - 0x48, 0xd7, 0x2f, 0x8c, 0x60, 0x6f, 0x09, 0xb9, 0x12, 0xa7, 0x74, 0x46, 0xca, 0x29, 0xdd, 0x13, - 0x2c, 0xff, 0xf7, 0x93, 0xe7, 0x75, 0x59, 0x1c, 0x8c, 0x97, 0x93, 0x4d, 0x7d, 0x2a, 0x47, 0x75, - 0xab, 0x40, 0x2a, 0xed, 0x80, 0xd6, 0xbb, 0x3e, 0xad, 0xdd, 0x77, 0x3b, 0x3b, 0xd4, 0x77, 0xf7, - 0x8f, 0x84, 0xf9, 0x8b, 0x2b, 0xb4, 0x2b, 0x4a, 0xed, 0xe0, 0xbe, 0xdb, 0x61, 0xb6, 0x87, 0xbb, - 0x7f, 0x64, 0xa5, 0xd0, 0x90, 0x0f, 0x60, 0xdc, 0xa2, 0x0f, 0x7d, 0x37, 0x94, 0x67, 0x04, 0x33, - 0x91, 0x9d, 0x81, 0x50, 0xae, 0x47, 0xfb, 0xfc, 0x87, 0x3a, 0xfe, 0xa2, 0x9c, 0x2c, 0xf3, 0x73, - 0x23, 0x7e, 0x16, 0x30, 0x1d, 0x7f, 0x6d, 0x61, 0xb7, 0xb6, 0x32, 0xd7, 0xe7, 0xd0, 0xf0, 0x2a, - 0x8c, 0xa2, 0x9b, 0x43, 0xec, 0x0e, 0x18, 0x4e, 0x57, 0x67, 0x00, 0xd5, 0xc6, 0x47, 0x8c, 0xcf, - 0xee, 0xcc, 0xec, 0x17, 0x47, 0x71, 0x7e, 0x9e, 0x10, 0x8f, 0x39, 0xe0, 0x44, 0x57, 0x97, 0x95, - 0xec, 0x69, 0x64, 0x65, 0x07, 0xa6, 0x6a, 0x6c, 0x95, 0xd0, 0x8f, 0x76, 0x9f, 0x8f, 0x3b, 0xef, - 0xba, 0x5a, 0x3c, 0x48, 0xa9, 0xd5, 0xf8, 0x10, 0x3b, 0x29, 0x83, 0x5c, 0x77, 0x7e, 0x41, 0x61, - 0x9c, 0x22, 0x7d, 0xd1, 0x72, 0x56, 0xe7, 0x9d, 0x75, 0x6a, 0xb9, 0x1b, 0x7b, 0x32, 0xb9, 0x1b, - 0xff, 0x54, 0x72, 0x97, 0x08, 0x82, 0xcd, 0x9d, 0x26, 0x08, 0xf6, 0xe2, 0x07, 0x30, 0xd7, 0xd3, - 0xc3, 0xa7, 0xb1, 0x04, 0x3e, 0x3b, 0xb1, 0xfc, 0x31, 0x50, 0x66, 0x56, 0xce, 0xa2, 0x0d, 0xd7, - 0xa7, 0xf5, 0x10, 0x57, 0x76, 0xb1, 0x18, 0xfb, 0x02, 0x96, 0x38, 0x63, 0x44, 0x18, 0x79, 0x1f, - 0xc6, 0xb9, 0x0b, 0x80, 0x9b, 0xde, 0xf1, 0x8c, 0x14, 0xee, 0x02, 0x1e, 0x23, 0xcd, 0x31, 0xd4, - 0x5e, 0x15, 0x44, 0xe6, 0x5d, 0xe9, 0x75, 0x38, 0x61, 0x5e, 0x2c, 0xc1, 0xe8, 0x4e, 0xdc, 0x33, - 0x18, 0x7c, 0xc5, 0x3f, 0xc2, 0xe2, 0x70, 0xf3, 0x67, 0x0c, 0x98, 0xd1, 0xbf, 0x92, 0x5c, 0x87, - 0x31, 0x11, 0x69, 0x6a, 0xa0, 0x2d, 0xc8, 0xbe, 0x66, 0x8c, 0xc7, 0x98, 0x6a, 0x91, 0xa5, 0x02, - 0x8b, 0xed, 0x2c, 0x82, 0x83, 0x70, 0x23, 0xe0, 0xce, 0x22, 0x84, 0xd4, 0x92, 0x65, 0xc4, 0x84, - 0x31, 0x8b, 0x06, 0xdd, 0x66, 0xa8, 0xba, 0xbb, 0x7c, 0x84, 0x58, 0xa2, 0xc4, 0x2c, 0xc2, 0x18, - 0x5f, 0x92, 0x12, 0x07, 0x6d, 0xc6, 0x29, 0x0e, 0xda, 0xcc, 0x63, 0x03, 0xa0, 0x56, 0x5b, 0xbd, - 0x47, 0x8f, 0xaa, 0x8e, 0xeb, 0xa3, 0x7f, 0x16, 0xa7, 0xf4, 0x3d, 0x31, 0xe4, 0x53, 0xc2, 0x3f, - 0xcb, 0xa7, 0xff, 0x7d, 0x7a, 0xa4, 0xf9, 0x67, 0x25, 0x2a, 0xae, 0x1b, 0xbe, 0xfb, 0xc0, 0x09, - 0x29, 0x23, 0xcc, 0x20, 0x21, 0x5f, 0x37, 0x38, 0x34, 0x41, 0xa9, 0x20, 0x93, 0x6f, 0xc2, 0x4c, - 0xfc, 0x0b, 0x4d, 0xfd, 0x2c, 0x3a, 0xc8, 0xa4, 0x58, 0xe9, 0x85, 0x2b, 0x2f, 0x3e, 0x3e, 0x5e, - 0xba, 0xa8, 0x70, 0x4d, 0x7a, 0xd6, 0x13, 0xcc, 0xcc, 0xdf, 0x34, 0xd0, 0xb1, 0x2f, 0x3f, 0xf0, - 0x32, 0x8c, 0x44, 0xe1, 0x03, 0x53, 0xdc, 0x9d, 0x90, 0xf0, 0xa4, 0x61, 0x39, 0x79, 0x19, 0xb2, - 0xf1, 0x97, 0xe0, 0x92, 0xaf, 0x7f, 0x01, 0x2b, 0x25, 0x77, 0x61, 0x7c, 0xa8, 0x36, 0xa3, 0x88, - 0xa7, 0xb4, 0x55, 0x52, 0xe3, 0x28, 0x7c, 0xb4, 0xbb, 0xf5, 0xf9, 0x1d, 0x85, 0xef, 0x65, 0x60, - 0x96, 0xf5, 0x6b, 0xa1, 0x1b, 0x1e, 0x7a, 0xbe, 0x1b, 0x1e, 0x3d, 0xb3, 0x76, 0xff, 0xbb, 0x9a, - 0xd2, 0x76, 0x51, 0xae, 0x7d, 0xea, 0xb7, 0x0d, 0x65, 0xfe, 0xff, 0xe1, 0x28, 0xcc, 0xa7, 0x50, - 0x91, 0x37, 0x34, 0x7f, 0xd7, 0xa2, 0xbc, 0x1e, 0xf2, 0x83, 0xe3, 0xa5, 0x29, 0x89, 0xbe, 0x15, - 0x5f, 0x17, 0x59, 0xd6, 0x4f, 0xc9, 0x78, 0x4f, 0xa1, 0xfb, 0x4b, 0x3d, 0x25, 0xd3, 0xcf, 0xc6, - 0xae, 0xc2, 0xa8, 0xe5, 0x35, 0x29, 0xdf, 0x48, 0x85, 0xa2, 0xe2, 0x33, 0x80, 0x76, 0x18, 0xc1, - 0x00, 0x64, 0x15, 0xc6, 0xd9, 0x1f, 0xeb, 0x4e, 0x47, 0x38, 0xfd, 0x48, 0x64, 0x36, 0x20, 0xb4, - 0xe3, 0xb6, 0x0f, 0x54, 0xcb, 0xa1, 0x49, 0xed, 0x96, 0xd3, 0xd1, 0x76, 0x36, 0x8e, 0xa8, 0x59, - 0x20, 0xb9, 0xfe, 0x16, 0x88, 0x71, 0xa2, 0x05, 0xd2, 0x00, 0xa8, 0xb9, 0x07, 0x6d, 0xb7, 0x7d, - 0x50, 0x68, 0x1e, 0x88, 0x4b, 0x36, 0x57, 0xfb, 0x8f, 0xc2, 0xf5, 0x18, 0x19, 0x05, 0x97, 0xfb, - 0xc2, 0x39, 0xcc, 0x76, 0x9a, 0x9a, 0x47, 0x32, 0x46, 0x25, 0x1b, 0x00, 0x85, 0x7a, 0xe8, 0x3e, - 0x60, 0x02, 0x1c, 0x88, 0xc0, 0x4e, 0xd9, 0xe0, 0x62, 0xe1, 0x1e, 0x3d, 0xaa, 0xd1, 0x30, 0xf6, - 0x70, 0x3a, 0x88, 0xca, 0xe6, 0x81, 0xda, 0x87, 0x0a, 0x07, 0xd2, 0x81, 0xb3, 0x85, 0x46, 0xc3, - 0x65, 0x5f, 0xe0, 0x34, 0xb7, 0x7c, 0x36, 0x18, 0x0d, 0x64, 0x3d, 0x95, 0xce, 0xfa, 0xaa, 0x60, - 0xfd, 0x92, 0x13, 0x51, 0xd9, 0x21, 0x27, 0x4b, 0x56, 0x93, 0xce, 0xd8, 0xdc, 0x84, 0x19, 0xfd, - 0xd3, 0xf5, 0xab, 0x41, 0x53, 0x90, 0xb3, 0x6a, 0x05, 0xbb, 0xb6, 0x5a, 0xb8, 0x99, 0x37, 0x48, - 0x1e, 0xa6, 0xc4, 0xaf, 0x65, 0x7b, 0xf9, 0xad, 0xdb, 0xf9, 0x8c, 0x06, 0x79, 0xeb, 0xe6, 0x72, - 0x3e, 0xfb, 0xd1, 0x48, 0x2e, 0x9b, 0x1f, 0xf9, 0x68, 0x24, 0x37, 0x92, 0x1f, 0xfd, 0x68, 0x24, - 0x37, 0x9e, 0xcf, 0x09, 0x7b, 0xff, 0x77, 0x0d, 0xc8, 0xc9, 0x76, 0x93, 0xdb, 0x90, 0xad, 0xd5, - 0x56, 0x13, 0xd1, 0x9d, 0xf1, 0xfe, 0xc2, 0x57, 0xd2, 0x20, 0x38, 0x54, 0x57, 0xd2, 0x5a, 0x6d, - 0x95, 0xd1, 0x6d, 0xad, 0xd5, 0xc4, 0xf6, 0x2e, 0xe9, 0xe2, 0x65, 0x9b, 0xd3, 0xa5, 0x84, 0xbc, - 0xdd, 0x86, 0xec, 0x47, 0xbb, 0x5b, 0xc2, 0x2c, 0x91, 0x74, 0xf1, 0x4a, 0xca, 0xe9, 0xbe, 0xfd, - 0x50, 0x5d, 0xdf, 0x19, 0x81, 0x69, 0xc1, 0xa4, 0x22, 0xc2, 0x7c, 0xbb, 0x6d, 0x79, 0xd1, 0xb5, - 0x19, 0xb1, 0xdd, 0x32, 0x88, 0x25, 0x4a, 0x98, 0x76, 0xb0, 0xe6, 0xd5, 0x9d, 0xa6, 0xd8, 0xb7, - 0x51, 0x3b, 0x68, 0x32, 0x80, 0xc5, 0xe1, 0xe6, 0x1f, 0x18, 0x90, 0xaf, 0xfa, 0xde, 0x03, 0x97, - 0x2d, 0x33, 0x5b, 0xde, 0x7d, 0xda, 0xde, 0xb9, 0x49, 0xde, 0x94, 0x93, 0xcd, 0x88, 0x8c, 0xe0, - 0x51, 0x9c, 0x6c, 0x09, 0xdf, 0xa8, 0x98, 0x70, 0xca, 0xed, 0xa3, 0xcc, 0xf0, 0x37, 0x1a, 0x4e, - 0xb8, 0x7d, 0xb4, 0x04, 0xa3, 0xd8, 0x1c, 0x25, 0xa8, 0x7c, 0x34, 0x64, 0x00, 0x8b, 0xc3, 0x55, - 0xa3, 0x32, 0xd3, 0xf3, 0x0d, 0xcb, 0x9f, 0xab, 0x5b, 0x01, 0xfa, 0xc7, 0x0d, 0xb5, 0x52, 0x7f, - 0x02, 0x0b, 0xc9, 0x2e, 0x41, 0x07, 0x45, 0x01, 0x66, 0x75, 0xb8, 0xf4, 0x55, 0x9c, 0x4f, 0xad, - 0x6b, 0x67, 0xd9, 0x4a, 0xe2, 0x9b, 0x7f, 0x6a, 0xc0, 0x04, 0xfe, 0x69, 0x75, 0x9b, 0x78, 0xee, - 0x5c, 0xd8, 0xad, 0x89, 0x70, 0x37, 0x55, 0x8d, 0x73, 0x1e, 0x06, 0xb6, 0x88, 0x8d, 0xd3, 0xd6, - 0x97, 0x08, 0x59, 0x90, 0xf2, 0xe0, 0x3e, 0x79, 0x40, 0x15, 0x91, 0xf2, 0x28, 0xc0, 0x20, 0x41, - 0x2a, 0x90, 0x31, 0x54, 0x62, 0xb7, 0xc6, 0xc4, 0x4f, 0x3d, 0x96, 0x42, 0x3a, 0xaf, 0xa9, 0x87, - 0x4a, 0x70, 0x34, 0x3c, 0x95, 0xda, 0xad, 0x15, 0xac, 0x0d, 0xed, 0x54, 0x8a, 0xb5, 0x51, 0x8b, - 0xc6, 0x12, 0x48, 0xe6, 0xff, 0x36, 0x9e, 0xec, 0x40, 0xb1, 0xd5, 0x9d, 0x72, 0x6e, 0xbc, 0x03, - 0xa3, 0x85, 0x66, 0xd3, 0x7b, 0x28, 0x56, 0x09, 0xe9, 0x2f, 0x89, 0xfa, 0x8f, 0xef, 0x64, 0x0e, - 0x43, 0xd1, 0x02, 0x6b, 0x19, 0x80, 0x14, 0x61, 0xa2, 0xb0, 0x5b, 0xab, 0x54, 0x4a, 0x5b, 0x5b, - 0x6b, 0xe2, 0x2a, 0xe8, 0xab, 0xb2, 0x7f, 0x5c, 0xb7, 0x61, 0x27, 0x8f, 0x6f, 0x62, 0xcd, 0x3d, - 0xa6, 0x23, 0xef, 0x01, 0x7c, 0xe4, 0xb9, 0xed, 0x75, 0x1a, 0x1e, 0x7a, 0x0d, 0xf1, 0xf1, 0x2f, - 0x3c, 0x3e, 0x5e, 0x9a, 0xfc, 0xb6, 0xe7, 0xb6, 0xed, 0x16, 0x82, 0x59, 0xdb, 0x63, 0x24, 0x4b, - 0xf9, 0x9b, 0xf5, 0xf4, 0x8a, 0xc7, 0xcf, 0x92, 0x47, 0xe3, 0x9e, 0xde, 0xf3, 0x7a, 0x8e, 0x91, - 0x25, 0x1a, 0x69, 0xc1, 0x6c, 0xad, 0x7b, 0x70, 0x40, 0xd9, 0xaa, 0x2e, 0xac, 0xdf, 0x31, 0x61, - 0x73, 0x45, 0x17, 0x69, 0xb9, 0x25, 0xc2, 0xec, 0x93, 0x60, 0xe5, 0x0d, 0x26, 0xc8, 0xdf, 0x3f, - 0x5e, 0x12, 0xc7, 0x42, 0x4c, 0x49, 0x0b, 0x24, 0x7d, 0xaf, 0xff, 0x25, 0xc9, 0x9b, 0x6c, 0xc2, - 0xd8, 0x5d, 0x37, 0x5c, 0xed, 0xee, 0x09, 0xf3, 0xf5, 0xa5, 0x01, 0x93, 0x86, 0x23, 0x72, 0x0b, - 0xfe, 0xc0, 0x0d, 0x0f, 0xbb, 0x6a, 0xf8, 0xa2, 0x60, 0x43, 0x76, 0x21, 0x57, 0x74, 0xfd, 0x7a, - 0x93, 0x16, 0x2b, 0x62, 0xd7, 0x7f, 0x79, 0x00, 0x4b, 0x89, 0xca, 0xfb, 0xa5, 0x8e, 0xbf, 0xea, - 0xae, 0xaa, 0x05, 0x48, 0x0c, 0xf2, 0x6f, 0x19, 0xf0, 0x5c, 0xd4, 0xfa, 0xc2, 0x01, 0x6d, 0x87, - 0xeb, 0x4e, 0x58, 0x3f, 0xa4, 0x7e, 0x74, 0x87, 0x64, 0x40, 0x2f, 0x7d, 0xa5, 0xa7, 0x97, 0xae, - 0xc4, 0xbd, 0xe4, 0x30, 0x66, 0x76, 0x8b, 0x73, 0xeb, 0xed, 0xb3, 0x41, 0xb5, 0x12, 0x1b, 0xe0, - 0x5e, 0x77, 0x8f, 0xfa, 0x6d, 0x1a, 0xd2, 0x40, 0x04, 0x55, 0xbf, 0x3a, 0xe0, 0x83, 0x63, 0x64, - 0x11, 0x52, 0x18, 0xfd, 0xd6, 0x42, 0x27, 0x22, 0x28, 0xb9, 0x27, 0xe3, 0x83, 0xb9, 0x46, 0x72, - 0x69, 0x00, 0x6f, 0x1e, 0x33, 0x3c, 0x3f, 0x20, 0xd6, 0x9c, 0x8f, 0xf6, 0x9a, 0xb3, 0x27, 0x94, - 0x90, 0x13, 0x46, 0x7b, 0xcd, 0x89, 0x47, 0xbb, 0xe9, 0x24, 0x47, 0x7b, 0xcd, 0xd9, 0x33, 0xff, - 0xc5, 0x08, 0x5c, 0xec, 0x2f, 0x2a, 0xe4, 0x63, 0x39, 0x7f, 0xf9, 0x2a, 0x79, 0xf9, 0x44, 0xe1, - 0xba, 0x7e, 0xe2, 0xac, 0xfe, 0x2a, 0x2c, 0x94, 0xdb, 0x21, 0xf5, 0x3b, 0xbe, 0x2b, 0x6f, 0x08, - 0xad, 0x7a, 0x81, 0x0c, 0x95, 0x78, 0xe5, 0xf1, 0xf1, 0xd2, 0x25, 0x1a, 0x95, 0x8b, 0xa8, 0x19, - 0x0c, 0xdc, 0x50, 0x58, 0xa5, 0x72, 0xb8, 0xf8, 0x9b, 0x59, 0x18, 0xc1, 0x45, 0xf9, 0x65, 0xc8, - 0xd6, 0xba, 0x7b, 0x62, 0x35, 0xe6, 0xea, 0x8b, 0x26, 0xea, 0xac, 0x94, 0x7c, 0x19, 0xc0, 0xa2, - 0x1d, 0x2f, 0x70, 0x43, 0xcf, 0x3f, 0x52, 0xc3, 0x2c, 0xfd, 0x08, 0xaa, 0x07, 0x0c, 0x49, 0x28, - 0x59, 0x85, 0xd9, 0xf8, 0xd7, 0xe6, 0xc3, 0x36, 0x95, 0x5e, 0x37, 0xb4, 0xb0, 0x62, 0x72, 0xdb, - 0x63, 0x65, 0xea, 0xe4, 0x4d, 0x90, 0x91, 0x65, 0xc8, 0xed, 0x7a, 0xfe, 0xfd, 0x7d, 0xd6, 0xc3, - 0x23, 0xf1, 0xf2, 0xf2, 0x50, 0xc0, 0xd4, 0x69, 0x24, 0xf1, 0xc8, 0x3b, 0x30, 0x59, 0x6e, 0x3f, - 0x70, 0x7d, 0xaf, 0xdd, 0xa2, 0x6d, 0x19, 0x19, 0xc3, 0x3d, 0x07, 0x31, 0x58, 0x0b, 0x9c, 0x8e, - 0xc1, 0xcc, 0x8e, 0x28, 0xd4, 0x43, 0xcf, 0x17, 0x81, 0x31, 0x7c, 0x9c, 0x18, 0x40, 0x1b, 0x27, - 0x06, 0x60, 0x9d, 0x68, 0xd1, 0x7d, 0xe1, 0x19, 0xc5, 0x4e, 0xf4, 0xe9, 0xbe, 0x16, 0x15, 0x4e, - 0xf7, 0xd9, 0xf2, 0x68, 0xd1, 0x7d, 0x34, 0x7e, 0x72, 0x71, 0xfb, 0x7d, 0xba, 0xdf, 0x63, 0x36, - 0x0b, 0x34, 0xf3, 0xb7, 0xfa, 0x0b, 0xdc, 0x9a, 0x73, 0x5a, 0x81, 0x5b, 0x73, 0x86, 0x10, 0xb8, - 0x37, 0xa2, 0x30, 0xa4, 0x4c, 0x1c, 0x65, 0xcf, 0xc3, 0x90, 0xd4, 0x09, 0xc1, 0x71, 0x2e, 0xfe, - 0x1b, 0xa7, 0x12, 0x22, 0xd1, 0x49, 0x99, 0x61, 0x3b, 0x29, 0x3b, 0x54, 0x27, 0x91, 0x15, 0x98, - 0x8e, 0x6e, 0xd9, 0x57, 0x1d, 0x11, 0x94, 0x2b, 0xc2, 0x78, 0xa2, 0x9c, 0x09, 0x76, 0xc7, 0x09, - 0x55, 0xa5, 0x5c, 0x27, 0x21, 0xef, 0xc2, 0xa4, 0x88, 0xc5, 0x43, 0x0e, 0xa3, 0x71, 0x10, 0xa0, - 0x0c, 0xdc, 0x4b, 0xd0, 0xab, 0xe8, 0xa4, 0x0c, 0x33, 0x55, 0xb7, 0x43, 0x9b, 0x6e, 0x9b, 0xd6, - 0x30, 0xcc, 0x47, 0x48, 0x0c, 0xc6, 0xb4, 0x75, 0x44, 0x89, 0xcd, 0x23, 0x80, 0x34, 0x1f, 0x82, - 0x46, 0x94, 0x14, 0xd6, 0xf1, 0xd3, 0x08, 0xab, 0xf9, 0xbb, 0x19, 0x78, 0x7e, 0xd0, 0x9e, 0x43, - 0x6a, 0xba, 0xb0, 0x5c, 0x19, 0x62, 0x9f, 0x3a, 0x59, 0x5c, 0xca, 0x30, 0xb3, 0xe9, 0x1f, 0x38, - 0x6d, 0xf7, 0x3b, 0xa8, 0x4b, 0x44, 0xd1, 0x84, 0xf8, 0xe5, 0x9e, 0x52, 0xa2, 0x3b, 0xe8, 0x12, - 0x44, 0x17, 0x1f, 0x08, 0x31, 0xfa, 0xb4, 0xd1, 0x93, 0xb7, 0x61, 0xa2, 0xe8, 0xb5, 0x43, 0xfa, - 0x28, 0x4c, 0x04, 0x81, 0x73, 0x60, 0x32, 0x08, 0x5c, 0xa2, 0x9a, 0x7f, 0x68, 0xc0, 0x8b, 0x83, - 0xf7, 0x2d, 0xb2, 0xad, 0x77, 0xdb, 0xb5, 0xa1, 0x76, 0xbb, 0x13, 0x3b, 0xee, 0xe2, 0xba, 0xf8, - 0xe2, 0x32, 0xcc, 0x88, 0xa0, 0x11, 0x5d, 0x2d, 0xc6, 0x0e, 0x14, 0xc1, 0x57, 0x29, 0xaa, 0x71, - 0x82, 0xc8, 0xfc, 0x0b, 0x03, 0x2e, 0xf4, 0xdd, 0x24, 0x49, 0x55, 0xff, 0x86, 0x57, 0x4f, 0xda, - 0x55, 0x4f, 0x6e, 0xfe, 0xcf, 0x1a, 0xa2, 0xfd, 0xef, 0xc3, 0x54, 0xad, 0xbb, 0x97, 0xbc, 0x39, - 0x8c, 0x33, 0x27, 0x50, 0xe0, 0xda, 0xe1, 0x87, 0x02, 0x67, 0xdf, 0x2f, 0x63, 0xe3, 0x30, 0x9a, - 0x5b, 0xea, 0xf6, 0xf8, 0xfd, 0x51, 0x38, 0x2a, 0x46, 0xdb, 0xaa, 0x3a, 0x43, 0x82, 0xc8, 0xfc, - 0xd9, 0x0c, 0xcc, 0xf0, 0xb3, 0x01, 0x6e, 0x78, 0x3c, 0xb3, 0x46, 0xdd, 0x3b, 0x9a, 0x51, 0x27, - 0xaf, 0xad, 0xa8, 0x9f, 0x36, 0x94, 0x49, 0x77, 0x08, 0xa4, 0x97, 0x86, 0x58, 0xf2, 0x04, 0x6b, - 0x18, 0x6b, 0xee, 0x66, 0x7c, 0xc3, 0x09, 0x33, 0xe0, 0xd4, 0x6d, 0x34, 0xa9, 0x03, 0x4b, 0xe3, - 0x61, 0xfe, 0x4c, 0x06, 0xa6, 0x15, 0xe7, 0xdb, 0x33, 0xdb, 0xf1, 0x5f, 0xd1, 0x3a, 0x7e, 0x51, - 0xfa, 0xab, 0xe2, 0x2f, 0x1b, 0xaa, 0xdf, 0xbb, 0x30, 0xd7, 0x43, 0x92, 0xf4, 0x61, 0x1a, 0xc3, - 0xf8, 0x30, 0xdf, 0xe8, 0xbd, 0xd6, 0xc2, 0x13, 0x8d, 0x44, 0xd7, 0x5a, 0xd4, 0x7b, 0x34, 0xdf, - 0xcb, 0xc0, 0x82, 0xf8, 0x55, 0xe8, 0x36, 0xdc, 0xb0, 0xe8, 0xb5, 0xf7, 0xdd, 0x83, 0x67, 0x76, - 0x2c, 0x0a, 0xda, 0x58, 0x2c, 0xe9, 0x63, 0xa1, 0x7c, 0x60, 0xff, 0x21, 0x31, 0xff, 0x1a, 0xc0, - 0x62, 0x3f, 0x82, 0xa1, 0x43, 0x2e, 0xe3, 0x2b, 0x87, 0x99, 0x21, 0xae, 0x1c, 0xae, 0x41, 0x1e, - 0xab, 0xaa, 0xd1, 0x80, 0x75, 0x42, 0x10, 0x67, 0x39, 0xb8, 0xf4, 0xf8, 0x78, 0xe9, 0x79, 0x87, - 0x95, 0xd9, 0x81, 0x28, 0xb4, 0xbb, 0xbe, 0x6a, 0xf8, 0xf5, 0x50, 0x92, 0xdf, 0x34, 0x60, 0x06, - 0x81, 0xe5, 0x07, 0xb4, 0x1d, 0x22, 0xb3, 0x11, 0x11, 0xaa, 0x13, 0xd9, 0x7c, 0xb5, 0xd0, 0x77, - 0xdb, 0x07, 0xc2, 0xe8, 0xdb, 0x13, 0x46, 0xdf, 0xbb, 0xdc, 0x58, 0xbd, 0x5e, 0xf7, 0x5a, 0x37, - 0x0e, 0x7c, 0xe7, 0x81, 0xcb, 0xfd, 0xca, 0x4e, 0xf3, 0x46, 0x9c, 0xe4, 0xaa, 0xe3, 0x26, 0xd2, - 0x56, 0x09, 0x56, 0x68, 0x50, 0xf3, 0x86, 0x52, 0xac, 0x36, 0xd1, 0xcc, 0x44, 0x8b, 0xc8, 0xd7, - 0xe0, 0x3c, 0xbf, 0x23, 0xc2, 0xb6, 0x54, 0xb7, 0xdd, 0xf5, 0xba, 0xc1, 0x8a, 0x53, 0xbf, 0xcf, - 0x96, 0x71, 0x7e, 0xbc, 0x8c, 0x5f, 0x5e, 0x8f, 0x0a, 0xed, 0x3d, 0x5e, 0xaa, 0xb0, 0xec, 0xc7, - 0x80, 0xac, 0xc2, 0x1c, 0x2f, 0x2a, 0x74, 0x43, 0xaf, 0x56, 0x77, 0x9a, 0x6e, 0xfb, 0x00, 0x75, - 0xa2, 0x1c, 0xdf, 0x5e, 0x9c, 0x6e, 0xe8, 0xd9, 0x01, 0x87, 0x2b, 0xfc, 0x7a, 0x89, 0x48, 0x85, - 0x99, 0x20, 0x4e, 0x63, 0xdd, 0x79, 0x54, 0x74, 0x3a, 0x4e, 0xdd, 0x0d, 0xf9, 0x45, 0xc3, 0x2c, - 0xbf, 0x1d, 0xe0, 0x53, 0xa7, 0x61, 0xb7, 0x9c, 0x47, 0x76, 0x5d, 0x14, 0xea, 0x36, 0x88, 0x46, - 0x17, 0xb1, 0x72, 0xdb, 0x11, 0xab, 0x89, 0x24, 0x2b, 0xb7, 0xdd, 0x9f, 0x55, 0x4c, 0x27, 0x59, - 0x6d, 0x39, 0xfe, 0x01, 0x0d, 0xf9, 0xb1, 0x2c, 0x33, 0xa8, 0x0d, 0x85, 0x55, 0x88, 0x65, 0x36, - 0x1e, 0xd1, 0x26, 0x59, 0x29, 0x74, 0x4c, 0xf2, 0x76, 0x7d, 0x37, 0xa4, 0xea, 0x17, 0x4e, 0x62, - 0xb3, 0xb0, 0xff, 0xf1, 0x60, 0xba, 0xdf, 0x27, 0xf6, 0x50, 0xc6, 0xdc, 0x94, 0x8f, 0x9c, 0xea, - 0xe1, 0x96, 0xfe, 0x95, 0x3d, 0x94, 0x11, 0x37, 0xf5, 0x3b, 0xa7, 0xf1, 0x3b, 0x15, 0x6e, 0x7d, - 0x3e, 0xb4, 0x87, 0x92, 0x6c, 0xb0, 0x4e, 0x0b, 0x69, 0x9b, 0x49, 0xb4, 0x38, 0x96, 0x9e, 0xc1, - 0xa6, 0xbd, 0x22, 0xce, 0x56, 0xf2, 0xbe, 0x2c, 0xb6, 0x53, 0x0e, 0xa9, 0x93, 0xc4, 0xe4, 0x47, - 0x61, 0x76, 0x3b, 0xa0, 0x77, 0x2a, 0xd5, 0x9a, 0xbc, 0x13, 0xb4, 0x38, 0x8b, 0x27, 0x2e, 0x37, - 0x4f, 0x58, 0x74, 0xae, 0xab, 0x34, 0x98, 0x6e, 0x8a, 0x8f, 0x5b, 0x37, 0xa0, 0xf6, 0xbe, 0xdb, - 0x09, 0xa2, 0xfb, 0x79, 0xea, 0xb8, 0x25, 0xaa, 0x32, 0x57, 0x61, 0xae, 0x87, 0x0d, 0x99, 0x01, - 0x60, 0x40, 0x7b, 0x7b, 0xa3, 0x56, 0xde, 0xca, 0x9f, 0x21, 0x79, 0x98, 0xc2, 0xdf, 0xe5, 0x8d, - 0xc2, 0xca, 0x5a, 0xb9, 0x94, 0x37, 0xc8, 0x1c, 0x4c, 0x23, 0xa4, 0x54, 0xa9, 0x71, 0x50, 0xe6, - 0xa3, 0x91, 0xdc, 0x68, 0x7e, 0xcc, 0xca, 0xf3, 0xa9, 0x1b, 0xb2, 0x09, 0x80, 0x7b, 0x8a, 0xf9, - 0xb7, 0x32, 0x70, 0x41, 0x6e, 0x2b, 0x34, 0x64, 0xa6, 0xb2, 0xdb, 0x3e, 0x78, 0xc6, 0x77, 0x87, - 0x3b, 0xda, 0xee, 0xf0, 0x4a, 0x62, 0xa7, 0x4e, 0x7c, 0xe5, 0x80, 0x2d, 0xe2, 0x97, 0xc7, 0xe1, - 0x85, 0x81, 0x54, 0xe4, 0x63, 0xb6, 0x9b, 0xbb, 0xb4, 0x1d, 0x56, 0x1a, 0x4d, 0xba, 0xe5, 0xb6, - 0xa8, 0xd7, 0x0d, 0x45, 0x18, 0xc4, 0xcb, 0x8f, 0x8f, 0x97, 0xe6, 0x79, 0xae, 0x28, 0xdb, 0x6d, - 0x34, 0xa9, 0x1d, 0xf2, 0x62, 0x4d, 0xdc, 0x7a, 0xa9, 0x19, 0xcb, 0x28, 0x9f, 0x5d, 0xa5, 0x1d, - 0x52, 0xff, 0x81, 0xc3, 0x53, 0xe6, 0x08, 0x96, 0xf7, 0x29, 0xed, 0xd8, 0x0e, 0x2b, 0xb5, 0x5d, - 0x51, 0xac, 0xb3, 0xec, 0xa1, 0x26, 0x77, 0x14, 0x96, 0x45, 0x66, 0x0d, 0xac, 0x3b, 0x8f, 0x84, - 0x07, 0x58, 0x5c, 0xff, 0x8d, 0x58, 0xf2, 0xdb, 0xe7, 0x2d, 0xe7, 0x91, 0xd5, 0x4b, 0x42, 0xbe, - 0x09, 0x67, 0xc5, 0x06, 0x24, 0xc2, 0xf4, 0xe5, 0x17, 0xf3, 0x4b, 0x00, 0xaf, 0x3d, 0x3e, 0x5e, - 0x3a, 0x2f, 0xb6, 0x2f, 0x5b, 0x5e, 0x79, 0x48, 0xfb, 0xea, 0x74, 0x2e, 0x64, 0x8b, 0x6d, 0xc8, - 0x89, 0xee, 0x58, 0xa7, 0x41, 0xe0, 0x1c, 0x48, 0x6f, 0x31, 0x8f, 0x45, 0x52, 0x3a, 0xd3, 0x6e, - 0xf1, 0x72, 0xab, 0x2f, 0x25, 0x59, 0x85, 0x99, 0x5d, 0xba, 0xa7, 0x8e, 0xcf, 0x58, 0xb4, 0x54, - 0xe5, 0x1f, 0xd2, 0xbd, 0xfe, 0x83, 0x93, 0xa0, 0x23, 0x2e, 0xcc, 0x61, 0x9c, 0xe6, 0x9a, 0x1b, - 0x84, 0xb4, 0x4d, 0x7d, 0xbc, 0xca, 0x34, 0x8e, 0x8b, 0xc1, 0x62, 0xac, 0x21, 0xeb, 0xe5, 0x2b, - 0x2f, 0x3d, 0x3e, 0x5e, 0x7a, 0x81, 0xc7, 0x7c, 0x36, 0x05, 0xdc, 0x4e, 0x24, 0x8e, 0xeb, 0xe5, - 0x4a, 0xbe, 0x05, 0xb3, 0x96, 0xd7, 0x0d, 0xdd, 0xf6, 0x41, 0x2d, 0xf4, 0x9d, 0x90, 0x1e, 0xf0, - 0x0d, 0x29, 0xbe, 0x33, 0x95, 0x28, 0x15, 0xbe, 0x32, 0x0e, 0xb4, 0x03, 0x01, 0xd5, 0x76, 0x04, - 0x9d, 0x80, 0xfc, 0x10, 0xcc, 0xf0, 0xa8, 0xee, 0xa8, 0x82, 0x09, 0x2d, 0xc7, 0x8a, 0x5e, 0xb8, - 0x73, 0x93, 0xdb, 0x5b, 0x3c, 0x3a, 0x3c, 0xad, 0x82, 0x04, 0x37, 0xf2, 0x75, 0xd1, 0x59, 0x55, - 0xb7, 0x7d, 0x10, 0x89, 0x31, 0x60, 0xcf, 0xbf, 0x19, 0x77, 0x49, 0x87, 0x35, 0x57, 0x8a, 0x71, - 0x9f, 0xd3, 0x87, 0x5e, 0x3e, 0xe6, 0xb1, 0x01, 0xf9, 0x64, 0x03, 0xc9, 0x57, 0x61, 0x82, 0x3b, - 0xa4, 0x69, 0x70, 0x28, 0x2e, 0x57, 0xc9, 0x0b, 0x3a, 0x11, 0x5c, 0x27, 0x12, 0x29, 0x17, 0xb8, - 0xbb, 0x9b, 0xaa, 0x47, 0xb2, 0xab, 0x67, 0xac, 0x98, 0x19, 0x69, 0xc0, 0x14, 0x6f, 0x03, 0xc5, - 0x6b, 0x80, 0xe2, 0x5c, 0xf2, 0x25, 0x75, 0xcc, 0x45, 0x51, 0x82, 0x3f, 0xde, 0x94, 0x13, 0x5f, - 0xca, 0x11, 0xb4, 0x2a, 0x34, 0xae, 0x2b, 0x00, 0x39, 0x49, 0x68, 0x5e, 0x80, 0xf3, 0x7d, 0xda, - 0x6c, 0x3e, 0x40, 0x87, 0x5f, 0x9f, 0x1a, 0xc9, 0x57, 0x61, 0x01, 0x09, 0x8b, 0x5e, 0xbb, 0x4d, - 0xeb, 0x21, 0x4e, 0x32, 0xe9, 0x33, 0xc8, 0x72, 0x77, 0x30, 0xff, 0xde, 0x7a, 0x84, 0x60, 0x27, - 0x5d, 0x07, 0xa9, 0x1c, 0xcc, 0x5f, 0xc9, 0xc0, 0xa2, 0x98, 0xb7, 0x16, 0xad, 0x7b, 0x7e, 0xe3, - 0xd9, 0xdf, 0x27, 0xca, 0xda, 0x3e, 0xf1, 0x72, 0x74, 0x57, 0x23, 0xed, 0x23, 0x07, 0x6c, 0x13, - 0xbf, 0x63, 0xc0, 0xf3, 0x83, 0x88, 0x58, 0xef, 0x44, 0xd7, 0x1e, 0x27, 0x7a, 0xae, 0x37, 0x76, - 0x60, 0x1e, 0x07, 0xb4, 0x78, 0x48, 0xeb, 0xf7, 0x83, 0x55, 0x2f, 0x08, 0x31, 0x2c, 0x22, 0xa3, - 0x85, 0x44, 0xaf, 0x78, 0x1e, 0x3f, 0xbb, 0xc1, 0x03, 0x2e, 0xe3, 0xfb, 0xc7, 0x4b, 0xc0, 0x40, - 0xfc, 0xa2, 0xa2, 0xf0, 0x42, 0x3e, 0x3a, 0xb2, 0xeb, 0xc8, 0x83, 0x5f, 0xcc, 0xbc, 0x4f, 0x8f, - 0x02, 0x2b, 0x8d, 0x35, 0x1e, 0x71, 0x17, 0xba, 0xe1, 0x61, 0xd5, 0xa7, 0xfb, 0xd4, 0xa7, 0xed, - 0x3a, 0xfd, 0x9c, 0x1d, 0x71, 0xeb, 0x1f, 0x37, 0x94, 0x5d, 0xfe, 0x7f, 0x4f, 0xc0, 0x42, 0x1a, - 0x19, 0xeb, 0x17, 0xc5, 0x14, 0x4c, 0x26, 0xab, 0xfd, 0xab, 0x06, 0x4c, 0xd5, 0x68, 0xdd, 0x6b, - 0x37, 0xee, 0xa0, 0xe3, 0x5f, 0xf4, 0x8e, 0xcd, 0xb7, 0x42, 0x06, 0xb7, 0xf7, 0x13, 0x27, 0x02, - 0x3f, 0x38, 0x5e, 0xfa, 0x70, 0x38, 0x0b, 0xac, 0xee, 0xe1, 0xad, 0xb4, 0x10, 0x93, 0xb0, 0x44, - 0x55, 0x60, 0xec, 0x93, 0x56, 0x29, 0x59, 0x81, 0x69, 0x31, 0x5d, 0x3d, 0xf5, 0xd6, 0x2b, 0x3a, - 0xb8, 0xeb, 0xb2, 0xa0, 0xe7, 0x9a, 0xbc, 0x46, 0x42, 0x6e, 0x41, 0x76, 0x7b, 0xf9, 0x8e, 0x18, - 0x03, 0x79, 0x69, 0x67, 0x7b, 0xf9, 0x0e, 0x3a, 0x79, 0x98, 0xe2, 0x3c, 0xdd, 0x5d, 0xd6, 0x7c, - 0xf1, 0xdb, 0xcb, 0x77, 0xc8, 0x8f, 0xc3, 0xd9, 0x92, 0x1b, 0x88, 0x2a, 0x78, 0xb0, 0x45, 0x03, - 0x83, 0x0b, 0xc7, 0xfa, 0x48, 0xef, 0x97, 0x52, 0xa5, 0xf7, 0xa5, 0x46, 0xc4, 0xc4, 0xe6, 0x91, - 0x1c, 0x8d, 0xe4, 0xed, 0xde, 0xf4, 0x7a, 0xc8, 0xb7, 0x61, 0x06, 0xfd, 0x8d, 0x18, 0x7f, 0x82, - 0x09, 0x37, 0xc6, 0xfb, 0xd4, 0xfc, 0x85, 0xd4, 0x9a, 0x2f, 0xa2, 0xfb, 0xd2, 0xc6, 0x28, 0x16, - 0x4c, 0xce, 0xa1, 0xd9, 0xb2, 0x1a, 0x67, 0xf2, 0x11, 0xcc, 0x0a, 0xa5, 0x62, 0x73, 0x7f, 0xeb, - 0x90, 0x96, 0x9c, 0x23, 0x71, 0x4a, 0x83, 0x76, 0x8a, 0xd0, 0x44, 0x6c, 0x6f, 0xdf, 0x0e, 0x0f, - 0xa9, 0xdd, 0x70, 0xb4, 0xed, 0x37, 0x41, 0x48, 0x7e, 0x04, 0x26, 0xd7, 0xbc, 0x3a, 0xd3, 0x27, - 0x71, 0x65, 0x98, 0x40, 0x3e, 0x9f, 0x60, 0xe6, 0x54, 0x0e, 0x4e, 0x28, 0x09, 0x3f, 0x38, 0x5e, - 0x7a, 0xe7, 0xb4, 0x42, 0xa3, 0x54, 0x60, 0xa9, 0xb5, 0x91, 0x22, 0xe4, 0x76, 0xe9, 0x1e, 0xfb, - 0xda, 0x64, 0xd6, 0x3f, 0x09, 0x16, 0x07, 0x67, 0xe2, 0x97, 0x76, 0x70, 0x26, 0x60, 0xc4, 0x87, - 0x39, 0xec, 0x9f, 0xaa, 0x13, 0x04, 0x0f, 0x3d, 0xbf, 0x81, 0xb9, 0x74, 0x26, 0xfb, 0x74, 0xfe, - 0x72, 0x6a, 0xe7, 0x3f, 0xcf, 0x3b, 0xbf, 0xa3, 0x70, 0x50, 0xd5, 0xa2, 0x1e, 0xf6, 0xe4, 0x5b, - 0x30, 0x63, 0xd1, 0x1f, 0xee, 0xba, 0x3e, 0x5d, 0xbf, 0x53, 0xc0, 0x59, 0x39, 0xa5, 0x85, 0x68, - 0xea, 0x85, 0x5c, 0xf7, 0xf2, 0x39, 0x4c, 0xfa, 0x55, 0xec, 0xd6, 0xbe, 0xa3, 0xbb, 0x89, 0x55, - 0x12, 0x52, 0x85, 0xc9, 0x12, 0x7d, 0xe0, 0xd6, 0x29, 0x06, 0x92, 0xa1, 0x1d, 0xaa, 0x64, 0x21, - 0x8b, 0x4b, 0xb8, 0x87, 0xa1, 0x81, 0x00, 0x1e, 0x96, 0xa6, 0xc7, 0xa4, 0x47, 0x88, 0xe4, 0x36, - 0x64, 0x2b, 0xa5, 0x2a, 0x1a, 0xa1, 0x71, 0x7c, 0x56, 0xa5, 0x51, 0x95, 0x19, 0xb5, 0xf0, 0x98, - 0xcb, 0x6d, 0x68, 0x49, 0xd4, 0x2a, 0xa5, 0x2a, 0xd9, 0x87, 0x69, 0xec, 0x80, 0x55, 0xea, 0xf0, - 0xbe, 0x9d, 0xed, 0xd3, 0xb7, 0xd7, 0x53, 0xfb, 0x76, 0x91, 0xf7, 0xed, 0xa1, 0xa0, 0xd6, 0x52, - 0x04, 0xa9, 0x6c, 0xb9, 0x61, 0x68, 0xfe, 0x07, 0x06, 0x4e, 0x7f, 0x72, 0x0d, 0xef, 0x13, 0x45, - 0x67, 0x2b, 0xe8, 0xcf, 0x72, 0x3a, 0x89, 0xfc, 0x16, 0x1c, 0x85, 0xbc, 0x01, 0x63, 0x77, 0x9c, - 0x3a, 0x0d, 0xa5, 0x47, 0x1e, 0x91, 0xf7, 0x11, 0xa2, 0x3a, 0xbf, 0x38, 0x0e, 0xd3, 0x4c, 0x78, - 0xb7, 0x14, 0xe2, 0x8c, 0xe9, 0xc5, 0x82, 0xbc, 0x28, 0x8b, 0x9a, 0x89, 0xe8, 0x4e, 0x25, 0xa5, - 0xba, 0x5d, 0x77, 0x54, 0x5e, 0xa9, 0x1c, 0xcc, 0xff, 0xc3, 0x88, 0xe5, 0x99, 0xbc, 0x06, 0x23, - 0x56, 0x35, 0x6a, 0x3f, 0x8f, 0xec, 0x4c, 0x34, 0x1f, 0x11, 0xc8, 0xd7, 0xe1, 0xac, 0xc2, 0x07, - 0xfb, 0x84, 0x36, 0x58, 0x83, 0xf8, 0xc7, 0xbc, 0x8a, 0xa1, 0x87, 0x4a, 0x4b, 0x1c, 0x8e, 0x91, - 0x68, 0x51, 0x3a, 0x0f, 0x54, 0xc3, 0xe2, 0x82, 0x12, 0x6d, 0xbb, 0x9c, 0xb7, 0xf2, 0xb1, 0x2a, - 0xef, 0x06, 0x22, 0x24, 0x3f, 0x36, 0x8d, 0x03, 0x8f, 0x3e, 0x34, 0x3b, 0x9a, 0x98, 0x46, 0xc9, - 0xa9, 0x8d, 0x13, 0x92, 0x53, 0xbf, 0x0d, 0x50, 0xe8, 0x86, 0x5e, 0xb9, 0xed, 0x7b, 0x4d, 0x6e, - 0x54, 0x8a, 0x0c, 0x2f, 0xe8, 0x2a, 0xa3, 0x08, 0xd6, 0x62, 0xa4, 0x22, 0x64, 0xf3, 0x5f, 0x1a, - 0x4a, 0x0a, 0xf3, 0x67, 0x54, 0x59, 0xb8, 0xad, 0x29, 0x0b, 0x0b, 0x82, 0x34, 0xfa, 0x2a, 0x56, - 0x96, 0xaa, 0xe0, 0xcd, 0x2a, 0xe7, 0xc7, 0x08, 0xf8, 0x6e, 0x06, 0x26, 0xb7, 0x03, 0xea, 0xf3, - 0x73, 0x90, 0xcf, 0xd7, 0x05, 0xcf, 0xe8, 0xbb, 0x86, 0xba, 0x82, 0xf7, 0x27, 0x06, 0xfa, 0xc7, - 0x54, 0x0a, 0xd6, 0x1b, 0x0c, 0xa4, 0xf6, 0x46, 0x37, 0xa0, 0xbe, 0x85, 0x50, 0x7e, 0xf5, 0x6a, - 0x4d, 0xbf, 0x7a, 0xd5, 0xb4, 0x18, 0x8c, 0x7c, 0x08, 0xa3, 0xdb, 0x68, 0xed, 0xeb, 0x81, 0xf7, - 0x11, 0x7f, 0x2c, 0xe4, 0x73, 0xba, 0xcb, 0xfe, 0x54, 0x97, 0x24, 0x2c, 0x23, 0x35, 0x18, 0x2f, - 0xfa, 0x14, 0x93, 0x95, 0x8f, 0x0c, 0x1f, 0x3c, 0x5a, 0xe7, 0x24, 0xc9, 0xe0, 0x51, 0xc1, 0xc9, - 0xfc, 0xa5, 0x0c, 0x90, 0xf8, 0x1b, 0x31, 0x9d, 0x5a, 0xf0, 0xcc, 0x0e, 0xfa, 0x07, 0xda, 0xa0, - 0xbf, 0xd0, 0x33, 0xe8, 0xfc, 0xf3, 0x86, 0x1a, 0xfb, 0x3f, 0x30, 0xe0, 0x5c, 0x3a, 0x21, 0x79, - 0x19, 0xc6, 0x36, 0xb7, 0xaa, 0xf2, 0xee, 0x86, 0xf8, 0x14, 0xaf, 0x83, 0x46, 0x89, 0x25, 0x8a, - 0xc8, 0x9b, 0x30, 0xf6, 0xb1, 0x55, 0x64, 0xeb, 0x96, 0x92, 0xd7, 0xe5, 0x87, 0x7d, 0xbb, 0xae, - 0x2f, 0x5d, 0x02, 0x49, 0x1d, 0xdb, 0xec, 0x53, 0x1b, 0xdb, 0xef, 0x65, 0x60, 0xb6, 0x50, 0xaf, - 0xd3, 0x20, 0x60, 0x8a, 0x00, 0x0d, 0xc2, 0x67, 0x76, 0x60, 0xd3, 0x6f, 0x65, 0x68, 0xdf, 0x36, - 0xd4, 0xa8, 0xfe, 0xa1, 0x01, 0x67, 0x25, 0xd5, 0x03, 0x97, 0x3e, 0xdc, 0x3a, 0xf4, 0x69, 0x70, - 0xe8, 0x35, 0x1b, 0x43, 0x27, 0x8f, 0x62, 0x7a, 0x01, 0xa6, 0xd1, 0x50, 0x0f, 0xc5, 0xf6, 0x11, - 0xa2, 0xe9, 0x05, 0x3c, 0xd5, 0xc6, 0x0d, 0x18, 0x2f, 0x74, 0x3a, 0xbe, 0xf7, 0x80, 0x4f, 0xfb, - 0x69, 0x11, 0x4b, 0xcb, 0x41, 0x5a, 0xec, 0x2d, 0x07, 0xb1, 0x66, 0x94, 0x68, 0x9b, 0x5f, 0x8b, - 0x9d, 0xe6, 0xcd, 0x68, 0xd0, 0xb6, 0xaa, 0x6d, 0x63, 0xb9, 0xf9, 0x73, 0x23, 0x30, 0xa5, 0x7e, - 0x08, 0x31, 0x79, 0x2a, 0x19, 0xcf, 0x57, 0x43, 0xdc, 0x1d, 0x84, 0x58, 0xa2, 0x24, 0xbe, 0x19, - 0x92, 0x39, 0xf1, 0x66, 0xc8, 0x2e, 0x4c, 0x57, 0x7d, 0xaf, 0xe3, 0x05, 0xb4, 0xc1, 0xdf, 0x9b, - 0xe0, 0xab, 0xd6, 0xbc, 0xa2, 0x8b, 0xb2, 0x3e, 0x47, 0xcf, 0x3f, 0x5a, 0x62, 0x1d, 0x81, 0x6d, - 0x27, 0x5f, 0xa3, 0xd0, 0xf9, 0xf0, 0x43, 0x45, 0x27, 0x10, 0x17, 0xd5, 0xa3, 0x43, 0x45, 0x06, - 0xd1, 0x0f, 0x15, 0x19, 0x44, 0x9d, 0x16, 0xa3, 0x4f, 0x6b, 0x5a, 0x90, 0x5f, 0x32, 0x60, 0xb2, - 0xd0, 0x6e, 0x8b, 0x1b, 0x27, 0x27, 0x84, 0xdc, 0x7e, 0x43, 0x9c, 0x2b, 0xbe, 0xf3, 0xa9, 0xce, - 0x15, 0xb7, 0x7c, 0xc7, 0x0d, 0x03, 0x54, 0x42, 0xe2, 0x0a, 0x55, 0x65, 0x5a, 0x69, 0x07, 0x79, - 0x07, 0xf2, 0x91, 0x3c, 0x56, 0xda, 0x0d, 0xfa, 0x88, 0x06, 0x8b, 0xe3, 0x97, 0xb2, 0x57, 0xa6, - 0xf9, 0x53, 0x39, 0xda, 0x81, 0x69, 0x12, 0xd1, 0xfc, 0x9e, 0x01, 0xe7, 0x54, 0x81, 0xa8, 0x75, - 0xf7, 0x5a, 0x2e, 0x1a, 0x05, 0xe4, 0x3a, 0x4c, 0x88, 0xf1, 0x8a, 0x54, 0xc7, 0xde, 0x0c, 0x3a, - 0x31, 0x0a, 0x29, 0xb3, 0x21, 0x62, 0x3c, 0x84, 0x9b, 0x66, 0x3e, 0x31, 0xdd, 0x58, 0xd1, 0xca, - 0xa2, 0xe8, 0xec, 0xbc, 0x8f, 0xbf, 0xf5, 0xb1, 0x63, 0x10, 0xf3, 0x7d, 0x98, 0xd3, 0x5b, 0x59, - 0xa3, 0x98, 0x05, 0x45, 0x7e, 0x9a, 0x91, 0xfe, 0x69, 0xb2, 0xdc, 0xdc, 0x05, 0xd2, 0x43, 0x1f, - 0xe0, 0xe1, 0x38, 0x0d, 0x65, 0xf0, 0x86, 0x74, 0x4d, 0xf7, 0x20, 0x46, 0x8f, 0xf8, 0x4c, 0xaa, - 0xdd, 0x8d, 0xa4, 0xe6, 0x7f, 0x3d, 0x09, 0xf3, 0x29, 0x4b, 0xc7, 0x09, 0x5b, 0xfb, 0x92, 0x3e, - 0x79, 0x26, 0xa2, 0x68, 0x76, 0x39, 0x65, 0xde, 0x97, 0x4f, 0xb3, 0x0c, 0x98, 0x2a, 0x83, 0xde, - 0x6b, 0xf9, 0x2c, 0xb6, 0x77, 0xf5, 0xc2, 0xc9, 0xe8, 0x53, 0xbb, 0x70, 0xb2, 0x02, 0xd3, 0xe2, - 0xab, 0xc4, 0x54, 0x1e, 0x8b, 0x3d, 0x32, 0x3e, 0x2f, 0xb0, 0x7b, 0xa6, 0xb4, 0x4e, 0xc2, 0x79, - 0x04, 0x5e, 0xf3, 0x01, 0x15, 0x3c, 0xc6, 0x55, 0x1e, 0x58, 0x90, 0xca, 0x43, 0x21, 0x21, 0xff, - 0x3e, 0xe6, 0x55, 0x44, 0x88, 0x3a, 0x9f, 0x73, 0x83, 0xe6, 0x73, 0xe3, 0xe9, 0xcc, 0xe7, 0x17, - 0x64, 0x1b, 0xd3, 0xe7, 0x75, 0x4a, 0xb3, 0xc8, 0x6f, 0x19, 0x30, 0xc7, 0x6f, 0x3d, 0xa8, 0x8d, - 0x1d, 0x18, 0xc9, 0x5e, 0x7f, 0x3a, 0x8d, 0x7d, 0x3e, 0xc0, 0x6a, 0xfb, 0xb4, 0xb5, 0xb7, 0x51, - 0xe4, 0x6b, 0x00, 0xd1, 0x8c, 0x0a, 0x16, 0x41, 0xbf, 0xe9, 0x9f, 0xb6, 0x7d, 0xc6, 0x79, 0x7e, - 0xc2, 0x88, 0x4e, 0xcb, 0xa6, 0x19, 0x41, 0xc9, 0x8f, 0xc3, 0x02, 0x9b, 0x2f, 0x11, 0x44, 0xdc, - 0xd1, 0x5a, 0x9c, 0xc4, 0x5a, 0xbe, 0xd8, 0x7f, 0x6b, 0xbf, 0x9e, 0x46, 0xc6, 0xb3, 0x01, 0xc4, - 0xc9, 0xa8, 0xc3, 0x96, 0x6a, 0x64, 0xa6, 0x51, 0xe0, 0xa5, 0x47, 0x6c, 0x3d, 0xcf, 0xaa, 0xd3, - 0x67, 0x7d, 0xbb, 0x20, 0xe7, 0x02, 0x5f, 0xdf, 0x02, 0x3d, 0xf4, 0x16, 0x41, 0xe4, 0x63, 0x20, - 0xd1, 0x75, 0x01, 0x0e, 0xa3, 0xbe, 0x7c, 0x9b, 0x01, 0xdd, 0x33, 0xf1, 0xb5, 0x03, 0x5f, 0x16, - 0xab, 0x42, 0xd2, 0x4b, 0x4c, 0x28, 0x2c, 0x88, 0x8f, 0x66, 0x50, 0x99, 0x77, 0x32, 0x58, 0x9c, - 0xd1, 0x6e, 0xc0, 0xc5, 0x25, 0x71, 0xd6, 0x6a, 0x25, 0x79, 0xa5, 0x66, 0x68, 0xa7, 0xb1, 0x23, - 0xb7, 0x61, 0x62, 0xcd, 0x3b, 0x70, 0xdb, 0xab, 0xf2, 0xc8, 0x5f, 0x1c, 0x3f, 0x36, 0x19, 0xd0, - 0x3e, 0xd4, 0x0f, 0xee, 0x63, 0x54, 0xa6, 0xd5, 0x96, 0xfc, 0x23, 0xab, 0xdb, 0x5e, 0xcc, 0xa3, - 0x7d, 0x8d, 0xea, 0x4c, 0xc3, 0x3f, 0xb2, 0xfd, 0xae, 0x1e, 0x20, 0x8d, 0x48, 0x17, 0xf7, 0xe0, - 0x42, 0xdf, 0x41, 0x4b, 0x49, 0x3c, 0x70, 0x43, 0x4f, 0x3c, 0x70, 0xa1, 0xdf, 0xe2, 0x1e, 0xa8, - 0xc9, 0x07, 0x7e, 0xdd, 0x48, 0xac, 0xe6, 0x42, 0xf5, 0xe2, 0x09, 0xe3, 0xfa, 0x6d, 0x77, 0x19, - 0x4c, 0x64, 0xcc, 0xd7, 0xfb, 0x4c, 0xac, 0xf2, 0xb1, 0xf5, 0x5e, 0xdd, 0x2f, 0x70, 0xe5, 0x7f, - 0xc2, 0x85, 0xdd, 0xfc, 0xe5, 0x0c, 0x10, 0xde, 0xc2, 0xa2, 0xd3, 0x71, 0xf6, 0xdc, 0xa6, 0x1b, - 0xba, 0x78, 0xd9, 0x23, 0x2f, 0x58, 0x38, 0x7b, 0x4d, 0xaa, 0xde, 0x94, 0x12, 0x21, 0x30, 0x51, - 0x99, 0x9d, 0x54, 0xd2, 0x7a, 0x08, 0xfb, 0x88, 0x62, 0xe6, 0x49, 0x44, 0xf1, 0x5b, 0xf0, 0x5c, - 0xa1, 0x83, 0xd9, 0x8a, 0x65, 0x2d, 0x77, 0x3c, 0x5f, 0x0a, 0x91, 0xf4, 0xf6, 0xe0, 0xd1, 0xac, - 0x13, 0xa1, 0xf5, 0xb4, 0x74, 0x10, 0x0b, 0xf3, 0x1f, 0x67, 0xe0, 0x42, 0x6f, 0xc7, 0x88, 0x6f, - 0x8b, 0x86, 0xc7, 0x38, 0x61, 0x78, 0xd2, 0xfa, 0x91, 0x7b, 0x7f, 0x9e, 0x5a, 0x3f, 0xf2, 0x74, - 0xc1, 0x9f, 0xb2, 0x1f, 0x6b, 0x30, 0xa9, 0xce, 0xe4, 0x91, 0x4f, 0x3b, 0x93, 0x55, 0x2e, 0xe6, - 0x7f, 0x6c, 0xa8, 0x49, 0x6c, 0xc9, 0x9b, 0x69, 0x31, 0x96, 0x3c, 0xf5, 0x04, 0x07, 0xeb, 0xe1, - 0x95, 0xd2, 0x08, 0xcc, 0xa4, 0x1a, 0x81, 0x32, 0x8b, 0x46, 0x36, 0x35, 0x8b, 0x46, 0x09, 0x66, - 0x6b, 0xdd, 0x3d, 0x59, 0x37, 0x22, 0x8e, 0x68, 0x51, 0xcf, 0xb6, 0x6c, 0xbf, 0x7e, 0x15, 0x4d, - 0x23, 0x31, 0x7f, 0x3a, 0x03, 0x53, 0xd5, 0x66, 0xf7, 0xc0, 0x6d, 0x97, 0x9c, 0xd0, 0x79, 0x66, - 0xed, 0xd2, 0xb7, 0x35, 0xbb, 0x34, 0x0a, 0x25, 0x8e, 0x3e, 0x6c, 0x28, 0xa3, 0xf4, 0x17, 0x0d, - 0x98, 0x8d, 0x49, 0xf8, 0xe2, 0xb8, 0x0a, 0x23, 0xec, 0x87, 0x50, 0x73, 0x2f, 0xf5, 0x30, 0xe6, - 0x09, 0x24, 0xa3, 0xbf, 0x84, 0xa5, 0xa8, 0x3f, 0x06, 0x86, 0x1c, 0x2e, 0x7e, 0x89, 0x3f, 0xcb, - 0x73, 0xfa, 0xc4, 0x91, 0xbf, 0x67, 0x40, 0x3e, 0xf9, 0x25, 0xe4, 0x1e, 0x8c, 0x33, 0x4e, 0x6e, - 0xf4, 0xc4, 0xcf, 0x2b, 0x7d, 0xbe, 0xf9, 0xba, 0x40, 0xe3, 0xcd, 0xc3, 0xce, 0xa7, 0x1c, 0x62, - 0x49, 0x0e, 0x17, 0x2d, 0x98, 0x52, 0xb1, 0x52, 0x5a, 0xf7, 0x86, 0xbe, 0x23, 0x9c, 0x4b, 0xef, - 0x07, 0xb5, 0xd5, 0xbf, 0xa6, 0xb5, 0x5a, 0xec, 0x05, 0xc3, 0x3e, 0xf0, 0x86, 0xd9, 0x6b, 0xb8, - 0x94, 0xaa, 0x72, 0x96, 0x22, 0xd0, 0x11, 0x1e, 0x33, 0x68, 0x79, 0x7d, 0x42, 0xce, 0xd0, 0xa0, - 0xed, 0x20, 0x44, 0xdd, 0x11, 0x39, 0x8e, 0xf9, 0x77, 0xb3, 0x70, 0x2e, 0x6e, 0x1e, 0x7f, 0xee, - 0xae, 0xea, 0xf8, 0x4e, 0x2b, 0x38, 0x61, 0x06, 0x5c, 0xe9, 0x69, 0x1a, 0x66, 0x8c, 0x93, 0x4d, - 0x53, 0x1a, 0x64, 0x26, 0x1a, 0x84, 0x9e, 0x00, 0xde, 0x20, 0xd9, 0x0c, 0x72, 0x0f, 0xb2, 0x35, - 0x1a, 0x8a, 0xb5, 0xe8, 0x72, 0x4f, 0xaf, 0xaa, 0xed, 0xba, 0x5e, 0xa3, 0x21, 0x1f, 0x44, 0x7e, - 0xb1, 0x89, 0x6a, 0x97, 0xed, 0x99, 0x4d, 0xb7, 0x0b, 0x63, 0xe5, 0x47, 0x1d, 0x5a, 0x0f, 0x45, - 0xea, 0xa6, 0xab, 0x83, 0xf9, 0x71, 0x5c, 0x25, 0x41, 0x14, 0x45, 0x80, 0xda, 0x59, 0x1c, 0xe5, - 0xe2, 0x6d, 0xc8, 0xc9, 0xca, 0x4f, 0x95, 0xe8, 0xe8, 0x6d, 0x98, 0x54, 0x2a, 0x39, 0x95, 0xd0, - 0xff, 0x85, 0x01, 0x63, 0x6c, 0x27, 0xd8, 0xb9, 0xfd, 0x8c, 0xae, 0x48, 0xb7, 0xb4, 0x15, 0x69, - 0x4e, 0xc9, 0xe7, 0x81, 0xf3, 0xf2, 0xf6, 0x09, 0x6b, 0xd1, 0x31, 0xdb, 0x57, 0x22, 0x64, 0x72, - 0x17, 0xc6, 0xc5, 0x51, 0x9e, 0x08, 0x3a, 0x52, 0x13, 0x84, 0xc8, 0x43, 0xbe, 0x48, 0x55, 0xf6, - 0x3a, 0x49, 0xdb, 0x42, 0x52, 0x93, 0x52, 0x7c, 0xb9, 0x5b, 0x4b, 0x0c, 0xed, 0x61, 0xec, 0x33, - 0x4f, 0x70, 0xa1, 0x24, 0x4f, 0xef, 0x73, 0xdf, 0xaa, 0x20, 0xbc, 0x63, 0xd9, 0x41, 0x4c, 0xce, - 0xc9, 0xec, 0xbe, 0xa9, 0x8e, 0xb3, 0x9f, 0xca, 0xf3, 0xd4, 0x10, 0xb2, 0x61, 0xef, 0xc1, 0xd4, - 0x1d, 0xcf, 0x7f, 0xe8, 0xf8, 0xfc, 0xc2, 0x2f, 0x7e, 0x26, 0x3f, 0x37, 0x9a, 0xde, 0xe7, 0x70, - 0x7e, 0x65, 0xf8, 0x07, 0xc7, 0x4b, 0x23, 0x2b, 0x9e, 0xd7, 0xb4, 0x34, 0x74, 0xb2, 0x09, 0xd3, - 0xeb, 0xce, 0x23, 0x11, 0x20, 0xb3, 0xb5, 0xb5, 0x26, 0x82, 0x19, 0xaf, 0x3e, 0x3e, 0x5e, 0xba, - 0xd0, 0x72, 0x1e, 0x45, 0x07, 0xb3, 0xfd, 0xef, 0x9f, 0xeb, 0xf4, 0xc4, 0x85, 0x99, 0xaa, 0xe7, - 0x87, 0xa2, 0x12, 0x66, 0x18, 0x65, 0xfb, 0x1c, 0x8d, 0xde, 0x48, 0x3d, 0x1a, 0xbd, 0xc0, 0xac, - 0x41, 0x7b, 0x3f, 0x22, 0xd7, 0x2e, 0xdc, 0x69, 0x8c, 0xc9, 0x7b, 0x30, 0x57, 0xa4, 0x7e, 0xe8, - 0xee, 0xbb, 0x75, 0x27, 0xa4, 0x77, 0x3c, 0xbf, 0xe5, 0x84, 0x62, 0x2f, 0x47, 0xaf, 0x4c, 0x9d, - 0x72, 0x4e, 0x2d, 0x27, 0xb4, 0x7a, 0x31, 0xc9, 0xd7, 0xd3, 0xc2, 0x43, 0x47, 0xe3, 0x20, 0xb8, - 0x94, 0xf0, 0xd0, 0x7e, 0x41, 0x70, 0xbd, 0x81, 0xa2, 0x07, 0x83, 0x62, 0x2f, 0x72, 0x2b, 0x37, - 0x45, 0xd8, 0xc6, 0xc9, 0xb1, 0x15, 0xd1, 0xb8, 0xf5, 0x89, 0xb1, 0x58, 0x86, 0xec, 0x4a, 0xf5, - 0x0e, 0xfa, 0xd9, 0x44, 0xac, 0x03, 0x6d, 0x1f, 0x3a, 0xed, 0x3a, 0x2a, 0x78, 0x22, 0xde, 0x49, - 0x5d, 0xf0, 0x56, 0xaa, 0x77, 0x88, 0x03, 0xf3, 0x55, 0xea, 0xb7, 0xdc, 0xf0, 0xab, 0x37, 0x6f, - 0x2a, 0x03, 0x95, 0xc3, 0xa6, 0xdd, 0x10, 0x4d, 0x5b, 0xea, 0x20, 0x8a, 0xfd, 0xe8, 0xe6, 0xcd, - 0xd4, 0xe1, 0x88, 0x1a, 0x96, 0xc6, 0x8b, 0x94, 0x61, 0x66, 0xdd, 0x79, 0x14, 0x87, 0xa9, 0x05, - 0x22, 0xd0, 0xfe, 0x05, 0x29, 0x58, 0x71, 0x88, 0x9b, 0x76, 0x31, 0x4c, 0x27, 0x22, 0xef, 0xc2, - 0x64, 0x2c, 0x5e, 0x81, 0x08, 0x51, 0x44, 0x45, 0x4d, 0x11, 0x4e, 0x4d, 0xc9, 0x54, 0xd0, 0xc9, - 0x76, 0xe4, 0xe7, 0xe1, 0x5a, 0xba, 0x48, 0x5d, 0x7b, 0x43, 0xf5, 0xf3, 0x38, 0x58, 0xa2, 0x7d, - 0xd6, 0x6c, 0x64, 0x19, 0xf1, 0xb8, 0x3d, 0x4b, 0xe7, 0xa2, 0xb8, 0x8f, 0xaa, 0xbe, 0xd7, 0xea, - 0x84, 0x18, 0xe7, 0x90, 0x70, 0x1f, 0x75, 0xb0, 0x24, 0xc5, 0x7d, 0xc4, 0x49, 0x08, 0x85, 0x91, - 0x35, 0xaf, 0x7e, 0x1f, 0x23, 0x0f, 0x26, 0x56, 0x3e, 0x66, 0xd3, 0xbd, 0xe9, 0xd5, 0xef, 0x3f, - 0xbd, 0x98, 0x12, 0x64, 0x4f, 0x36, 0x58, 0x53, 0x99, 0x14, 0x88, 0x3e, 0x11, 0x71, 0x0a, 0x0b, - 0x91, 0xf6, 0xae, 0x94, 0x71, 0xbd, 0x82, 0x0b, 0x8d, 0xec, 0x5a, 0x4b, 0x27, 0x27, 0x14, 0xf2, - 0x25, 0x1a, 0xdc, 0x0f, 0xbd, 0x4e, 0xb1, 0xe9, 0x76, 0xf6, 0x3c, 0xc7, 0x6f, 0xa0, 0x25, 0x9d, - 0x36, 0xbf, 0x5f, 0x4b, 0x9d, 0xdf, 0x73, 0x0d, 0x4e, 0x6f, 0xd7, 0x25, 0x03, 0xab, 0x87, 0x25, - 0xf9, 0x3a, 0xcc, 0x30, 0xe1, 0x2e, 0x3f, 0x0a, 0x69, 0x9b, 0x8f, 0xfc, 0x1c, 0xee, 0xcc, 0x0b, - 0x4a, 0x22, 0xa5, 0xa8, 0x90, 0xcb, 0x14, 0x4e, 0x76, 0x1a, 0x11, 0xa8, 0x32, 0xa5, 0xb3, 0x22, - 0x0d, 0x58, 0x5c, 0x77, 0x1e, 0xc5, 0xb7, 0x3d, 0x55, 0x21, 0x25, 0x28, 0x60, 0xf8, 0xda, 0x0c, - 0x13, 0xb0, 0x38, 0xe1, 0x41, 0x1f, 0x79, 0xed, 0xcb, 0x89, 0xfc, 0x08, 0x9c, 0x17, 0x9f, 0x55, - 0xc2, 0x2c, 0x81, 0x9e, 0x7f, 0x54, 0x3b, 0x74, 0x30, 0x42, 0x75, 0xfe, 0x74, 0x0b, 0xa2, 0xec, - 0xb0, 0x86, 0xe4, 0x63, 0x07, 0x9c, 0x91, 0xd5, 0xaf, 0x06, 0xf2, 0x2d, 0x98, 0xe1, 0x0e, 0xd4, - 0x55, 0x2f, 0x08, 0xd1, 0x08, 0x5d, 0xe8, 0x53, 0xe7, 0xe5, 0xd4, 0x3a, 0xf3, 0xdc, 0x2b, 0xcb, - 0x43, 0x15, 0xd1, 0x87, 0x9c, 0xe0, 0x47, 0xde, 0x81, 0xc9, 0xaa, 0xdb, 0xe6, 0x37, 0x9f, 0x2b, - 0xd5, 0xc5, 0xb3, 0xf1, 0xae, 0xd3, 0x71, 0xdb, 0xb6, 0xb4, 0xff, 0x3a, 0xd1, 0x22, 0xa1, 0x62, - 0x93, 0x5d, 0x98, 0xac, 0xd5, 0x56, 0xef, 0xb8, 0x6c, 0xdb, 0xeb, 0x1c, 0x2d, 0x9e, 0xeb, 0xd3, - 0xb6, 0x97, 0x53, 0xdb, 0x36, 0x1d, 0x04, 0x87, 0xf8, 0x0e, 0x87, 0x5d, 0xf7, 0x3a, 0x47, 0x96, - 0xca, 0x29, 0x25, 0x04, 0xe9, 0xfc, 0x53, 0x0e, 0x41, 0xaa, 0xc0, 0xac, 0x12, 0xdb, 0x81, 0x71, - 0x1d, 0x8b, 0xf1, 0x53, 0x25, 0x6a, 0xc8, 0x51, 0x32, 0x90, 0x3c, 0x49, 0x27, 0x63, 0x8f, 0x2e, - 0x9c, 0x32, 0xf6, 0xe8, 0xa3, 0x91, 0xdc, 0x74, 0x7e, 0xc6, 0xfc, 0x4f, 0x33, 0x89, 0xa9, 0x4d, - 0x2a, 0x30, 0x2e, 0xe4, 0x41, 0xe8, 0x3a, 0xbd, 0x3d, 0xfa, 0x42, 0x6a, 0x8f, 0x8e, 0x0b, 0x09, - 0xb3, 0x24, 0x3d, 0x79, 0xc8, 0x58, 0xed, 0x3b, 0xdd, 0xa6, 0x4c, 0x55, 0xf1, 0x4d, 0x3e, 0x73, - 0x11, 0xa4, 0xad, 0x51, 0xa5, 0xd3, 0x07, 0x4b, 0xea, 0xb1, 0xb8, 0xb8, 0x58, 0xc9, 0xda, 0xc8, - 0x7d, 0x9e, 0x9f, 0x2b, 0x1b, 0x45, 0xdc, 0xe9, 0xc9, 0xb8, 0x9e, 0x5a, 0x85, 0xac, 0x16, 0xf3, - 0x9f, 0x18, 0x30, 0xad, 0xad, 0x0d, 0xe4, 0xb6, 0x12, 0x4e, 0x1a, 0xdf, 0x1b, 0xd0, 0x70, 0x50, - 0x70, 0x92, 0x81, 0xa6, 0xb7, 0x45, 0x88, 0x4f, 0xa6, 0x3f, 0x5d, 0xea, 0xe3, 0x29, 0x83, 0x3d, - 0x15, 0x51, 0xbe, 0xcf, 0x91, 0x3e, 0xf9, 0x3e, 0xff, 0xd5, 0x1c, 0xcc, 0xe8, 0xca, 0x23, 0xb3, - 0xe6, 0xd0, 0xdb, 0x29, 0x5d, 0x71, 0x3c, 0x83, 0x2d, 0x42, 0xb4, 0x67, 0x19, 0x10, 0x42, 0x5e, - 0x05, 0x88, 0x62, 0x67, 0xa4, 0xb7, 0x6d, 0xf4, 0xf1, 0xf1, 0x92, 0xf1, 0xa6, 0xa5, 0x14, 0x90, - 0x1f, 0x02, 0xd8, 0xf0, 0x1a, 0x34, 0xca, 0xb1, 0x3c, 0xc0, 0xe3, 0xff, 0x5a, 0x4f, 0xee, 0x9a, - 0xb3, 0x6d, 0xaf, 0x41, 0x7b, 0x13, 0xd5, 0x28, 0x1c, 0xc9, 0x57, 0x60, 0xd4, 0xea, 0x36, 0xa9, - 0xf4, 0x2d, 0x4d, 0xca, 0xd9, 0xda, 0x6d, 0x2a, 0x2f, 0x92, 0xfa, 0xdd, 0xe4, 0x41, 0x2f, 0x03, - 0x90, 0x0f, 0x78, 0x4e, 0x1b, 0x71, 0xfb, 0x7c, 0x34, 0xf6, 0x3f, 0x2a, 0x6b, 0x77, 0xcf, 0xfd, - 0x73, 0x85, 0x84, 0x6c, 0xc2, 0xb8, 0xd8, 0x9a, 0xc5, 0x41, 0xea, 0x8b, 0x69, 0x2e, 0x7c, 0x45, - 0x3f, 0x17, 0x49, 0x72, 0x11, 0xac, 0x7b, 0xd5, 0xb9, 0xdf, 0xef, 0x5d, 0x98, 0x60, 0xec, 0xf9, - 0x13, 0x9b, 0xe3, 0xb1, 0x97, 0x51, 0x69, 0x50, 0xf2, 0x95, 0xcd, 0x98, 0x80, 0x7c, 0x1d, 0xb3, - 0x66, 0x8b, 0xae, 0x1e, 0x78, 0x12, 0x74, 0xb9, 0xa7, 0xab, 0x17, 0x9c, 0x4e, 0x27, 0xe5, 0x91, - 0x82, 0x88, 0x1f, 0x39, 0x88, 0x2e, 0x7b, 0x0f, 0x93, 0x87, 0xe8, 0x5a, 0x4f, 0x05, 0x8b, 0xf2, - 0xfe, 0x72, 0x6f, 0xae, 0x6c, 0x8d, 0x2f, 0xe9, 0x40, 0x3e, 0xde, 0x16, 0x45, 0x5d, 0x30, 0xa8, - 0xae, 0x37, 0x7b, 0xea, 0x52, 0x07, 0xb0, 0xa7, 0xba, 0x1e, 0xee, 0xa4, 0x11, 0x3f, 0x21, 0x2c, - 0xea, 0x9b, 0x1c, 0x54, 0xdf, 0xab, 0x3d, 0xf5, 0xcd, 0x37, 0xf6, 0x7a, 0xeb, 0x49, 0xf0, 0x24, - 0xef, 0xc2, 0xb4, 0x84, 0xe0, 0xfc, 0x10, 0xef, 0x1a, 0xf0, 0xc7, 0xaf, 0xf7, 0x30, 0x88, 0x5b, - 0xcf, 0xe4, 0xac, 0x22, 0xab, 0xd4, 0x5c, 0x3a, 0xa6, 0x35, 0xea, 0xa4, 0x54, 0xe8, 0xc8, 0xe4, - 0x13, 0x98, 0xac, 0xb4, 0xd8, 0x87, 0x78, 0x6d, 0x27, 0xa4, 0x22, 0x66, 0x55, 0x9e, 0x6a, 0x29, - 0x25, 0x8a, 0xa8, 0xf2, 0x27, 0xc8, 0xe2, 0x22, 0x55, 0x51, 0x56, 0x28, 0x58, 0xe7, 0x71, 0x7f, - 0xaf, 0x90, 0x61, 0x19, 0xcf, 0xfa, 0x42, 0xca, 0xc9, 0x92, 0xc2, 0x5e, 0x64, 0x79, 0x60, 0x50, - 0x5b, 0x4c, 0x88, 0x44, 0x96, 0x07, 0x95, 0x27, 0x79, 0x0f, 0x26, 0x45, 0x8a, 0xb6, 0x82, 0xb5, - 0x11, 0x2c, 0xe6, 0xe3, 0xd7, 0x67, 0x65, 0x36, 0x37, 0xdb, 0xf1, 0x13, 0xe1, 0x05, 0x31, 0x3e, - 0xf9, 0x2a, 0x2c, 0xec, 0xba, 0xed, 0x86, 0xf7, 0x30, 0x10, 0xdb, 0x94, 0x58, 0xe8, 0xe6, 0xe2, - 0xb0, 0xcd, 0x87, 0xbc, 0xdc, 0x96, 0x2a, 0x53, 0xcf, 0xc2, 0x97, 0xca, 0x81, 0xfc, 0x58, 0x0f, - 0x67, 0x2e, 0x41, 0x64, 0x90, 0x04, 0x2d, 0xf7, 0x48, 0x50, 0x6f, 0xf5, 0x49, 0x71, 0x4a, 0xad, - 0x86, 0x78, 0x40, 0x84, 0x96, 0x21, 0xf6, 0xaa, 0x8f, 0x3c, 0xb7, 0xbd, 0x38, 0x8f, 0x6b, 0xe1, - 0x73, 0xc9, 0x7b, 0x2f, 0x88, 0xc7, 0xdf, 0x3a, 0x93, 0x2f, 0x36, 0xea, 0xfa, 0xcb, 0xb7, 0x3d, - 0xcd, 0x71, 0x97, 0xc2, 0x9a, 0x7c, 0x02, 0x53, 0xec, 0xff, 0xc8, 0xac, 0x5a, 0xd0, 0x62, 0x11, - 0x14, 0x4c, 0x51, 0x0f, 0x8e, 0x11, 0xe6, 0x90, 0x4b, 0xb1, 0xb8, 0x34, 0x56, 0xe4, 0x6d, 0x00, - 0xa6, 0x23, 0x8a, 0xe5, 0xf8, 0x6c, 0x9c, 0xe8, 0x0f, 0x55, 0xc9, 0xde, 0x85, 0x38, 0x46, 0x66, - 0xb6, 0x1e, 0xfb, 0x55, 0xeb, 0x36, 0x3c, 0x36, 0x37, 0xce, 0x21, 0x2d, 0xda, 0x7a, 0x48, 0x1b, - 0x70, 0xb8, 0x2a, 0x1d, 0x0a, 0x3a, 0x59, 0x85, 0x59, 0x4c, 0x7e, 0x52, 0x69, 0xd0, 0x76, 0x88, - 0xe7, 0x30, 0x8b, 0xe7, 0x95, 0x13, 0x1e, 0x56, 0x64, 0xbb, 0x51, 0x99, 0xaa, 0x97, 0x25, 0xc8, - 0x48, 0x00, 0xf3, 0xf1, 0xea, 0x12, 0x9f, 0x17, 0x2d, 0x62, 0x27, 0xc9, 0x33, 0xbd, 0x5e, 0x0c, - 0xbe, 0x1e, 0xb3, 0x11, 0x51, 0x16, 0x2e, 0xe9, 0xde, 0x54, 0x2b, 0x4c, 0xe3, 0x4e, 0x2c, 0x20, - 0x77, 0x8b, 0x55, 0x3d, 0x2d, 0x4c, 0xb0, 0x78, 0x01, 0xbf, 0x00, 0x87, 0xf9, 0xa0, 0xde, 0xb1, - 0x13, 0x09, 0x65, 0xb4, 0x83, 0x9b, 0x5e, 0x6a, 0xf2, 0x1d, 0x38, 0x1b, 0x3d, 0x50, 0xcd, 0x8b, - 0x84, 0x5c, 0x5f, 0x3c, 0xe5, 0x4a, 0xdc, 0xd8, 0x8b, 0xaa, 0xee, 0x11, 0xe9, 0xf4, 0x2a, 0x88, - 0x03, 0x93, 0x38, 0xac, 0xa2, 0xc6, 0xe7, 0x06, 0xd5, 0x78, 0xa5, 0xa7, 0xc6, 0x73, 0xfc, 0xdd, - 0xc6, 0x9e, 0xca, 0x54, 0x9e, 0xe6, 0xdf, 0x31, 0x80, 0xf4, 0x76, 0xe5, 0xd0, 0xbe, 0xf2, 0xb7, - 0x94, 0x90, 0x69, 0xf5, 0x9d, 0xbf, 0x28, 0xe7, 0x94, 0xba, 0x85, 0xc6, 0xc1, 0xd5, 0x97, 0x35, - 0x95, 0xad, 0x6f, 0x9c, 0x9d, 0xf9, 0x67, 0x06, 0x2c, 0xa4, 0x4d, 0xda, 0x13, 0x72, 0xbc, 0x9b, - 0x89, 0xf0, 0x3c, 0x74, 0x7e, 0xf3, 0xf0, 0xbc, 0x28, 0x28, 0x6f, 0x09, 0x46, 0xd9, 0x17, 0xc8, - 0x23, 0x4c, 0xd4, 0x0b, 0xd9, 0x27, 0x06, 0x16, 0x87, 0x33, 0x04, 0x7e, 0xb1, 0x90, 0x29, 0x8e, - 0xa3, 0x1c, 0x01, 0x65, 0xc2, 0xe2, 0x70, 0x86, 0xc0, 0xf4, 0x4f, 0xa9, 0x2f, 0x21, 0x02, 0x53, - 0x4b, 0x03, 0x8b, 0xc3, 0xc9, 0x65, 0x18, 0xdf, 0x6c, 0xaf, 0x51, 0xe7, 0x81, 0xcc, 0x85, 0x85, - 0xce, 0x7a, 0xaf, 0x6d, 0x37, 0x19, 0xcc, 0x92, 0x85, 0xe6, 0x2f, 0x1a, 0x30, 0xd7, 0xb3, 0x5e, - 0x9c, 0x9c, 0xc6, 0x7e, 0x70, 0x20, 0xd2, 0x30, 0xdf, 0xc7, 0x9b, 0x3f, 0x92, 0xde, 0x7c, 0xf3, - 0x77, 0x46, 0xe0, 0x7c, 0x1f, 0xf5, 0x2d, 0x0e, 0x22, 0x34, 0x4e, 0x0c, 0x22, 0xfc, 0x06, 0x53, - 0x97, 0x1c, 0xb7, 0x15, 0x6c, 0x79, 0x71, 0x8b, 0xe3, 0x78, 0x0b, 0x2c, 0x93, 0x59, 0xa6, 0x5f, - 0x12, 0xb3, 0xff, 0x42, 0x1d, 0x29, 0xec, 0xd0, 0xeb, 0x39, 0xad, 0xd5, 0x99, 0xf5, 0x84, 0xf1, - 0x65, 0xff, 0x35, 0x09, 0xe3, 0xd3, 0x83, 0x67, 0x46, 0x9e, 0x6a, 0xf0, 0x4c, 0xfa, 0xf1, 0xf4, - 0xe8, 0x93, 0x1c, 0xf3, 0x17, 0x61, 0xba, 0x46, 0x1d, 0xbf, 0x7e, 0x58, 0x08, 0xf8, 0x20, 0x8d, - 0xc5, 0x19, 0xa8, 0x02, 0x2c, 0xb0, 0x9d, 0xa0, 0x77, 0x2c, 0x34, 0x1a, 0xf3, 0x17, 0x33, 0x7a, - 0xf4, 0xe1, 0xbf, 0x8e, 0xf2, 0x72, 0x15, 0x46, 0x77, 0x0f, 0xa9, 0x2f, 0x97, 0x1e, 0x6c, 0xc8, - 0x43, 0x06, 0x50, 0x1b, 0x82, 0x18, 0xe4, 0x0e, 0xcc, 0x54, 0x79, 0xff, 0xc9, 0x4e, 0x19, 0x89, - 0xf7, 0xc2, 0x8e, 0xd0, 0xd8, 0x52, 0x7a, 0x25, 0x41, 0x65, 0xfe, 0x08, 0x4c, 0xa9, 0x8d, 0xc6, - 0x85, 0x85, 0xfd, 0x16, 0x33, 0x9b, 0x2f, 0x2c, 0x0c, 0x60, 0x71, 0xf8, 0x89, 0x4f, 0x54, 0xc4, - 0xbd, 0x99, 0x3d, 0xa9, 0x37, 0x59, 0xe5, 0x28, 0xb7, 0x4a, 0xe5, 0xf8, 0x5b, 0xad, 0x3c, 0x64, - 0x00, 0x8b, 0xc3, 0x9f, 0x6a, 0xe5, 0xff, 0x85, 0xcc, 0x90, 0xf6, 0x16, 0x4c, 0xc4, 0x3a, 0x40, - 0x9c, 0x08, 0x78, 0x3e, 0x6d, 0x67, 0x8f, 0x31, 0x59, 0x55, 0x3b, 0xd4, 0xdf, 0xd3, 0x42, 0x95, - 0x1f, 0x30, 0x80, 0x5a, 0x15, 0x62, 0x9c, 0x66, 0x5c, 0x6f, 0xc0, 0x78, 0x41, 0x78, 0x2a, 0xf9, - 0x80, 0xf2, 0x70, 0xec, 0x1e, 0xb7, 0xa4, 0xc4, 0x32, 0x7f, 0xd5, 0x80, 0xb3, 0xa9, 0xa6, 0x01, - 0xab, 0x95, 0xdb, 0x20, 0x8a, 0x58, 0x27, 0x0d, 0x10, 0x8e, 0x71, 0x9a, 0xb0, 0xeb, 0xe1, 0xbf, - 0xc5, 0x7c, 0x09, 0x26, 0x22, 0xc7, 0x14, 0x59, 0x90, 0x43, 0x87, 0xc7, 0x57, 0xd2, 0xbf, 0xf1, - 0x17, 0x06, 0x8c, 0xb1, 0x26, 0x3c, 0xb3, 0x17, 0xa0, 0xd3, 0x0f, 0x33, 0xd9, 0x27, 0x0d, 0x75, - 0xed, 0xf9, 0x37, 0xc7, 0x00, 0x62, 0x64, 0xb2, 0x07, 0x33, 0x9b, 0x95, 0x52, 0x51, 0xd1, 0x70, - 0xf5, 0x0c, 0x70, 0xd1, 0xb3, 0x29, 0x1c, 0xe1, 0x28, 0x5e, 0x63, 0x3c, 0xb7, 0x51, 0x4f, 0xd7, - 0x7e, 0x13, 0x1c, 0x59, 0x1d, 0xb5, 0xc2, 0xfa, 0x9a, 0x52, 0x47, 0x66, 0xc8, 0x3a, 0x02, 0xa7, - 0xd5, 0xec, 0x53, 0x87, 0xce, 0x91, 0x1c, 0x42, 0xfe, 0x2e, 0xee, 0x62, 0x4a, 0x2d, 0xd9, 0xc1, - 0xb5, 0xbc, 0x2c, 0x6a, 0x79, 0x8e, 0x6f, 0x7f, 0xe9, 0xf5, 0xf4, 0x70, 0x8d, 0x25, 0x77, 0xe4, - 0x44, 0xc9, 0xfd, 0xeb, 0x06, 0x8c, 0xf1, 0x6d, 0x52, 0x8c, 0x56, 0x9f, 0x8d, 0x78, 0xf7, 0xe9, - 0x6c, 0xc4, 0x79, 0x5c, 0xb9, 0x34, 0x9f, 0x1c, 0x2f, 0x23, 0x25, 0x18, 0xab, 0x85, 0x4e, 0xd8, - 0x95, 0x71, 0xfd, 0xf2, 0xc4, 0x1a, 0x6d, 0x55, 0x5e, 0x12, 0x07, 0xaf, 0x07, 0xf8, 0x5b, 0xe5, - 0xc2, 0x31, 0x48, 0x25, 0x8e, 0x9b, 0x1e, 0x3f, 0x31, 0x6e, 0x5a, 0xc6, 0x9a, 0x8f, 0x8b, 0xb8, - 0x69, 0x3d, 0x5a, 0x7a, 0x0d, 0x26, 0x44, 0x34, 0xf6, 0xca, 0x91, 0xf0, 0x48, 0x49, 0xcf, 0x72, - 0x04, 0x57, 0xde, 0xc9, 0xe4, 0x20, 0x7b, 0x4f, 0x7b, 0x03, 0x26, 0x42, 0x24, 0x9b, 0x30, 0x11, - 0x5f, 0x07, 0xd7, 0xb3, 0x9a, 0x44, 0x70, 0x71, 0x5d, 0x49, 0x86, 0x74, 0xa6, 0xdc, 0xfe, 0x8e, - 0x79, 0x98, 0x3f, 0x67, 0x40, 0x3e, 0x29, 0x2f, 0xf8, 0x3a, 0xbf, 0xbc, 0x40, 0x1f, 0x45, 0x51, - 0xf2, 0xd7, 0xf9, 0xa3, 0x1b, 0xf7, 0xfa, 0xab, 0xf0, 0x0a, 0x3a, 0x59, 0x86, 0x1c, 0x9b, 0x76, - 0xed, 0xc4, 0xf3, 0xfc, 0x5d, 0x01, 0x53, 0xc3, 0x68, 0x24, 0x9e, 0x32, 0x6b, 0xff, 0x59, 0x16, - 0x26, 0x95, 0xc1, 0x22, 0x57, 0x21, 0x57, 0x09, 0xd6, 0xbc, 0xfa, 0x7d, 0xda, 0x10, 0xa7, 0xf3, - 0xd3, 0x8f, 0x8f, 0x97, 0x26, 0xdc, 0xc0, 0x6e, 0x22, 0xd0, 0x8a, 0x8a, 0xc9, 0x0a, 0x4c, 0xf3, - 0xbf, 0x64, 0x66, 0x9d, 0x4c, 0x7c, 0xb2, 0xc8, 0x91, 0x65, 0x4e, 0x1d, 0x55, 0x4d, 0xd0, 0x48, - 0xc8, 0x37, 0x01, 0x38, 0x60, 0xc8, 0xc7, 0x84, 0xe5, 0x04, 0x3e, 0x2b, 0x2a, 0x48, 0x79, 0x53, - 0x58, 0x61, 0x48, 0xbe, 0xc5, 0xef, 0xc6, 0x4b, 0xe1, 0x3a, 0x39, 0xd2, 0xdf, 0x94, 0x61, 0x81, - 0x8c, 0xbf, 0x9d, 0x1e, 0x99, 0xaf, 0xb2, 0x24, 0xdf, 0x33, 0xe0, 0xa2, 0x45, 0xeb, 0xde, 0x03, - 0xea, 0x1f, 0x15, 0x42, 0xc4, 0x52, 0x6b, 0x3c, 0xf9, 0x1a, 0xc0, 0x2d, 0x51, 0xe3, 0x6b, 0xbe, - 0xe0, 0x82, 0x97, 0x96, 0x5b, 0x9d, 0xd0, 0x1e, 0xd0, 0x84, 0x01, 0x55, 0x9a, 0xff, 0x83, 0xa1, - 0x4c, 0x01, 0xb2, 0x81, 0xd9, 0x6a, 0xb9, 0xb0, 0x88, 0x93, 0x96, 0x48, 0xc3, 0x93, 0x70, 0x8b, - 0xee, 0xaf, 0x3c, 0x27, 0x0e, 0xd2, 0xe7, 0x23, 0x91, 0x4b, 0x64, 0xb1, 0xe5, 0x40, 0xf2, 0xa1, - 0x78, 0xf7, 0xf9, 0xe4, 0x07, 0x35, 0xe4, 0x56, 0x33, 0xc2, 0xc6, 0x48, 0x79, 0xed, 0xf9, 0x0b, - 0x22, 0xd2, 0x34, 0xab, 0x3d, 0xea, 0xc6, 0x40, 0xac, 0x1d, 0xd1, 0x1e, 0x13, 0x5f, 0x06, 0x51, - 0xa4, 0xf5, 0x97, 0x33, 0x90, 0x4f, 0x4e, 0x3c, 0xf2, 0x01, 0x4c, 0xc9, 0xab, 0xfd, 0xab, 0x8e, - 0x48, 0xd8, 0x33, 0x25, 0x12, 0xe6, 0x08, 0xb8, 0x7d, 0xe8, 0x68, 0xcf, 0xa4, 0x68, 0x04, 0x6c, - 0x43, 0xde, 0x12, 0x77, 0x0c, 0x95, 0x09, 0x14, 0x7a, 0x61, 0x27, 0xf1, 0xc6, 0x93, 0x44, 0x23, - 0x6f, 0x41, 0x76, 0xfd, 0x4e, 0x41, 0x44, 0x60, 0xc9, 0xf5, 0x65, 0xfd, 0x4e, 0x81, 0x9f, 0x9a, - 0xf1, 0xc3, 0x30, 0xfd, 0x68, 0x8e, 0xe1, 0x93, 0x35, 0x25, 0x5b, 0xc2, 0x98, 0x96, 0xfb, 0x53, - 0x82, 0xa3, 0x8f, 0x3b, 0x39, 0x6d, 0x82, 0xfa, 0x86, 0x8c, 0xf9, 0xef, 0x65, 0x61, 0x22, 0xaa, - 0x9f, 0x10, 0x40, 0x7d, 0x43, 0x04, 0x61, 0xe1, 0xdf, 0xe4, 0x02, 0xe4, 0xa4, 0x8a, 0x21, 0x1f, - 0x9b, 0x0e, 0x84, 0x7a, 0xb1, 0x08, 0x52, 0x97, 0xe0, 0xea, 0x85, 0x25, 0x7f, 0x92, 0x9b, 0x10, - 0x29, 0x0a, 0xfd, 0x34, 0x8a, 0x11, 0x36, 0x60, 0x56, 0x84, 0x46, 0x66, 0x20, 0xe3, 0xf2, 0xfb, - 0x63, 0x13, 0x56, 0xc6, 0x6d, 0x90, 0x0f, 0x20, 0xe7, 0x34, 0x1a, 0xb4, 0x61, 0x3b, 0xf2, 0xc8, - 0x62, 0x90, 0xd0, 0xe4, 0x18, 0x37, 0xbe, 0xa2, 0x23, 0x55, 0x21, 0x24, 0x05, 0x98, 0xc0, 0x37, - 0xd5, 0xbb, 0x01, 0x6d, 0x0c, 0xb1, 0x3d, 0xc4, 0x1c, 0x72, 0x8c, 0x6c, 0x3b, 0xa0, 0x0d, 0xf2, - 0x1a, 0x8c, 0xb0, 0xd1, 0x14, 0xfb, 0x41, 0xf4, 0x22, 0xce, 0xe6, 0x56, 0x95, 0x77, 0xd8, 0xea, - 0x19, 0x0b, 0x11, 0xc8, 0x2b, 0x90, 0xed, 0x2e, 0xef, 0x8b, 0x95, 0x3e, 0x1f, 0x67, 0x2e, 0x89, - 0xd0, 0x58, 0x31, 0xb9, 0x05, 0xb9, 0x87, 0x7a, 0xd2, 0x8b, 0xb3, 0x89, 0x61, 0x8c, 0xf0, 0x23, - 0xc4, 0x95, 0x1c, 0x8c, 0xf1, 0x03, 0x57, 0xf3, 0x45, 0x80, 0xb8, 0xea, 0xde, 0x78, 0x39, 0xf3, - 0x9b, 0x30, 0x11, 0x55, 0x49, 0x5e, 0x00, 0xb8, 0x4f, 0x8f, 0xec, 0x43, 0xa7, 0xdd, 0x68, 0x72, - 0x85, 0x73, 0xca, 0x9a, 0xb8, 0x4f, 0x8f, 0x56, 0x11, 0x40, 0xce, 0xc3, 0x78, 0x87, 0x8d, 0xaa, - 0x7c, 0xa1, 0xcc, 0x1a, 0xeb, 0x74, 0xf7, 0x98, 0x84, 0x2e, 0xc2, 0x38, 0x3a, 0x51, 0xc4, 0x44, - 0x9b, 0xb6, 0xe4, 0x4f, 0xf3, 0xd7, 0x33, 0x98, 0xc6, 0x4c, 0x69, 0x27, 0x79, 0x19, 0xa6, 0xeb, - 0x3e, 0xc5, 0xed, 0x08, 0x9f, 0xb7, 0x13, 0xf5, 0x4c, 0xc5, 0xc0, 0x4a, 0x83, 0x5c, 0x86, 0xd9, - 0xf8, 0xc9, 0x34, 0xbb, 0xbe, 0x27, 0x32, 0xd4, 0x4c, 0x59, 0xd3, 0x1d, 0xf9, 0x66, 0x5a, 0x71, - 0x0f, 0xef, 0x3d, 0xe6, 0xd5, 0x84, 0x04, 0x61, 0x94, 0x5d, 0xdd, 0x9a, 0x55, 0xe0, 0x78, 0x12, - 0x79, 0x0e, 0xc6, 0x1c, 0xe7, 0xa0, 0xeb, 0xf2, 0x3b, 0x58, 0x53, 0x96, 0xf8, 0x45, 0x5e, 0x87, - 0xb9, 0xc0, 0x3d, 0x68, 0x3b, 0x61, 0xd7, 0x17, 0x79, 0xe4, 0xa8, 0x8f, 0x22, 0x35, 0x6d, 0xe5, - 0xa3, 0x82, 0x22, 0x87, 0x93, 0x37, 0x81, 0xa8, 0xf5, 0x79, 0x7b, 0xdf, 0xa6, 0x75, 0x2e, 0x6a, - 0x53, 0xd6, 0x9c, 0x52, 0xb2, 0x89, 0x05, 0xe4, 0x25, 0x98, 0xf2, 0x69, 0x80, 0x2a, 0x19, 0x76, - 0x1b, 0x66, 0xf9, 0xb4, 0x26, 0x25, 0xec, 0x1e, 0x3d, 0x32, 0x57, 0x60, 0xae, 0x67, 0x3e, 0x92, - 0x37, 0xb9, 0x76, 0x2f, 0xf6, 0xe7, 0x29, 0x6e, 0xcc, 0xb0, 0x45, 0x4a, 0xdf, 0x9a, 0x05, 0x92, - 0xd9, 0x86, 0x29, 0x75, 0x7d, 0x3d, 0x21, 0xf7, 0xcf, 0xb9, 0xe8, 0xbd, 0xfd, 0x89, 0x95, 0xb1, - 0xc7, 0xc7, 0x4b, 0x19, 0xb7, 0x81, 0x97, 0x26, 0xae, 0x40, 0x4e, 0x6a, 0x09, 0xea, 0x8b, 0xe1, - 0x42, 0xa1, 0x3c, 0xb2, 0xa2, 0x52, 0xf3, 0x35, 0x18, 0x17, 0x4b, 0xe8, 0x60, 0x87, 0x96, 0xf9, - 0x53, 0x19, 0x98, 0xb5, 0x28, 0x9b, 0xe0, 0xe2, 0x2d, 0xee, 0xcf, 0xd9, 0xe3, 0x71, 0xda, 0xb7, - 0x0d, 0x48, 0xb5, 0xf5, 0xdb, 0x06, 0xcc, 0xa7, 0xe0, 0x7e, 0xaa, 0x04, 0xca, 0xb7, 0x61, 0xa2, - 0xe4, 0x3a, 0xcd, 0x42, 0xa3, 0x11, 0x5d, 0x03, 0x41, 0x6d, 0xb0, 0xc1, 0xa6, 0x93, 0xc3, 0xa0, - 0xea, 0x66, 0x1a, 0xa1, 0x92, 0x6b, 0x42, 0x28, 0xe2, 0xc7, 0x07, 0xe4, 0xf3, 0x74, 0xc0, 0xdb, - 0x14, 0x3f, 0x4e, 0x87, 0xa9, 0x03, 0x38, 0x30, 0x0e, 0xdc, 0x79, 0x66, 0x87, 0x2e, 0x3d, 0x75, - 0x40, 0xf2, 0xf3, 0x86, 0x32, 0x3b, 0x7f, 0x2e, 0x03, 0xe7, 0xd2, 0x09, 0x3f, 0x6d, 0x2e, 0x6c, - 0xcc, 0x73, 0xa6, 0xbc, 0x00, 0x88, 0xb9, 0xb0, 0x79, 0x52, 0x34, 0xc4, 0x8f, 0x11, 0xc8, 0x3e, - 0x4c, 0xaf, 0x39, 0x41, 0xb8, 0x4a, 0x1d, 0x3f, 0xdc, 0xa3, 0x4e, 0x38, 0x84, 0x06, 0xfb, 0x8a, - 0x7c, 0xc9, 0x19, 0x37, 0xb5, 0x43, 0x49, 0x99, 0x50, 0xf0, 0x74, 0xb6, 0x91, 0xa0, 0x8c, 0x0c, - 0x21, 0x28, 0x3f, 0x0c, 0xb3, 0x35, 0xda, 0x72, 0x3a, 0x87, 0x9e, 0x4f, 0x85, 0x0f, 0xfe, 0x3a, - 0x4c, 0x47, 0xa0, 0x54, 0x69, 0xd1, 0x8b, 0x35, 0x7c, 0xa5, 0x23, 0xe2, 0xa5, 0x44, 0x2f, 0x36, - 0xff, 0x56, 0x06, 0xce, 0x17, 0xea, 0xe2, 0xe4, 0x4e, 0x14, 0xc8, 0x00, 0x83, 0xcf, 0xb8, 0x6e, - 0x72, 0x03, 0x26, 0xd6, 0x9d, 0x47, 0x6b, 0xd4, 0x09, 0x68, 0x20, 0x32, 0x91, 0x72, 0xf5, 0xcb, - 0x79, 0x14, 0x1f, 0x68, 0x59, 0x31, 0x8e, 0x6a, 0x6c, 0x8e, 0x3c, 0xa1, 0xb1, 0x69, 0xc2, 0xd8, - 0xaa, 0xd7, 0x6c, 0x88, 0xcd, 0x49, 0x9c, 0x7f, 0x1c, 0x22, 0xc4, 0x12, 0x25, 0xe6, 0x9f, 0x19, - 0x30, 0x13, 0xb5, 0x18, 0x9b, 0xf0, 0x99, 0x77, 0xc9, 0x65, 0x18, 0xc7, 0x8a, 0xa2, 0x67, 0xec, - 0x71, 0xd3, 0x68, 0x32, 0x90, 0xed, 0x36, 0x2c, 0x59, 0xa8, 0xf6, 0xc4, 0xe8, 0x93, 0xf5, 0x84, - 0xf9, 0x0f, 0xf0, 0x68, 0x45, 0xfd, 0x4a, 0xb6, 0x13, 0x29, 0x0d, 0x31, 0x86, 0x6c, 0x48, 0xe6, - 0xa9, 0x0d, 0x49, 0xb6, 0xef, 0x90, 0x7c, 0x37, 0x03, 0x93, 0x51, 0x63, 0x3f, 0x67, 0x39, 0x77, - 0xa2, 0xef, 0x1a, 0xea, 0x32, 0x54, 0x4d, 0x59, 0x2b, 0xc4, 0x9d, 0xa3, 0x0f, 0x61, 0x4c, 0x4c, - 0x26, 0x23, 0x71, 0xd0, 0x9e, 0x18, 0xdd, 0x95, 0x19, 0xc1, 0x7a, 0x0c, 0x07, 0x34, 0xb0, 0x04, - 0x1d, 0xde, 0x36, 0xdb, 0xa5, 0x7b, 0xe2, 0xa4, 0xed, 0x99, 0xdd, 0xa3, 0xd2, 0x6f, 0x9b, 0xc5, - 0x1f, 0x36, 0xd4, 0xee, 0x74, 0x3c, 0x0a, 0xf9, 0x24, 0xc9, 0xc9, 0x59, 0x8d, 0xaa, 0xdd, 0x3d, - 0xf1, 0xe0, 0x30, 0x66, 0x35, 0xea, 0x74, 0xf7, 0x2c, 0x06, 0x23, 0x97, 0x61, 0xa4, 0xea, 0xbb, - 0x0f, 0xf0, 0xab, 0xc5, 0x7b, 0xcb, 0x1d, 0xdf, 0x7d, 0xa0, 0x1e, 0xe7, 0xb2, 0x72, 0x34, 0x68, - 0xd7, 0x6a, 0x18, 0xc1, 0x8f, 0x8a, 0xb5, 0x30, 0x68, 0x9b, 0x41, 0x32, 0x15, 0xa2, 0x44, 0x63, - 0x5b, 0xe5, 0x0a, 0x75, 0x7c, 0x91, 0x81, 0x47, 0x2c, 0x67, 0xb8, 0x55, 0xee, 0x21, 0x98, 0xbf, - 0xc7, 0x61, 0xa9, 0x48, 0xa4, 0x09, 0x44, 0xf9, 0x29, 0x27, 0xf0, 0xc9, 0x36, 0xde, 0x25, 0xe9, - 0x7d, 0x53, 0x59, 0xdb, 0xea, 0x6c, 0x4e, 0xe1, 0xfb, 0x34, 0x7d, 0x84, 0x55, 0x71, 0x1f, 0x1b, - 0x1d, 0x19, 0xb9, 0x13, 0x99, 0xc9, 0x2b, 0x2e, 0xc0, 0xef, 0x6b, 0x47, 0xee, 0x8c, 0x98, 0x09, - 0x79, 0x1f, 0x26, 0xd5, 0x7b, 0x19, 0xfc, 0xf6, 0xc0, 0xf3, 0xfc, 0x1e, 0x74, 0x9f, 0x94, 0xd0, - 0x2a, 0x01, 0xd9, 0x83, 0xf3, 0x45, 0xaf, 0x1d, 0x74, 0x5b, 0xb4, 0xa1, 0x9d, 0x04, 0x57, 0x4a, - 0x68, 0x60, 0x4e, 0xf0, 0x20, 0xef, 0xba, 0x40, 0x11, 0xd7, 0x00, 0x64, 0x14, 0x93, 0x6e, 0x80, - 0xf4, 0x63, 0x44, 0xb6, 0x60, 0xb2, 0x56, 0x58, 0x5f, 0x93, 0xb1, 0xf5, 0x93, 0xfa, 0xb2, 0x11, - 0x97, 0x94, 0xd8, 0xc4, 0xe0, 0xd7, 0x4b, 0x9d, 0x56, 0x53, 0x06, 0xd1, 0xa8, 0xde, 0x47, 0x05, - 0xd9, 0xfc, 0x82, 0x2a, 0xdf, 0x42, 0xdd, 0x18, 0x28, 0xdf, 0xe6, 0x7f, 0x37, 0x06, 0xb3, 0x89, - 0xea, 0x84, 0xfd, 0x63, 0xf4, 0xd8, 0x3f, 0x35, 0x00, 0xee, 0xca, 0x1a, 0xd2, 0xe7, 0x24, 0xe3, - 0x2f, 0x27, 0x45, 0x48, 0x78, 0x34, 0x56, 0x0a, 0x1b, 0xc6, 0x94, 0x4b, 0xc2, 0x90, 0x3e, 0xc7, - 0x88, 0x29, 0x17, 0x26, 0x85, 0x69, 0xcc, 0x86, 0x2c, 0xc1, 0x28, 0x5e, 0x98, 0x57, 0xc3, 0x5f, - 0x5d, 0x06, 0xb0, 0x38, 0x9c, 0xbc, 0x0c, 0x63, 0x6c, 0x73, 0xae, 0x94, 0xc4, 0xe4, 0xc2, 0x35, - 0x8b, 0xed, 0xde, 0x6c, 0x27, 0x14, 0x45, 0xe4, 0x36, 0x4c, 0xf1, 0xbf, 0xc4, 0xfd, 0xa0, 0x31, - 0x3d, 0x6e, 0xc3, 0x76, 0x1b, 0xf2, 0x8a, 0x90, 0x86, 0xc7, 0xb4, 0xd6, 0x5a, 0x77, 0x4f, 0xbc, - 0x65, 0x35, 0x1e, 0x6b, 0xad, 0x01, 0x07, 0xe2, 0x0b, 0x2e, 0x11, 0x02, 0xdb, 0x23, 0x45, 0xc8, - 0x53, 0x0e, 0x6d, 0x15, 0xdc, 0x23, 0x79, 0xb4, 0x93, 0x25, 0x4a, 0xc8, 0x55, 0xee, 0x55, 0x46, - 0x75, 0x83, 0xa7, 0x14, 0x45, 0x3f, 0x30, 0x1a, 0xbc, 0xa8, 0x73, 0x44, 0xc5, 0xac, 0x72, 0xf6, - 0x77, 0xb9, 0xe5, 0xb8, 0x4d, 0x21, 0xae, 0x58, 0x39, 0xe2, 0x52, 0x06, 0xb5, 0x62, 0x04, 0xf2, - 0x2e, 0xcc, 0xb0, 0x1f, 0x45, 0xaf, 0xd5, 0xf2, 0xda, 0xc8, 0x7e, 0x32, 0xbe, 0xc9, 0x89, 0x24, - 0x75, 0x2c, 0xe2, 0xb5, 0x24, 0x70, 0xd9, 0x3a, 0x85, 0x67, 0x4c, 0x5d, 0xee, 0xef, 0x9e, 0x8a, - 0xd7, 0x29, 0x24, 0x0d, 0x38, 0xdc, 0x52, 0x91, 0xc8, 0xdb, 0x30, 0xcd, 0x7e, 0xde, 0x75, 0x1f, - 0x50, 0x5e, 0xe1, 0x74, 0x7c, 0xdc, 0x87, 0x54, 0x07, 0xac, 0x84, 0xd7, 0xa7, 0x63, 0x92, 0x8f, - 0xe1, 0x2c, 0x72, 0xaa, 0x7b, 0x1d, 0xda, 0x28, 0xec, 0xef, 0xbb, 0x4d, 0x97, 0xbf, 0xba, 0xcd, - 0x6f, 0xc2, 0xa0, 0x8f, 0x91, 0x57, 0x8c, 0x18, 0xb6, 0x13, 0xa3, 0x58, 0xe9, 0x94, 0x64, 0x17, - 0xf2, 0xc5, 0x6e, 0x10, 0x7a, 0xad, 0x42, 0x18, 0xfa, 0xee, 0x5e, 0x37, 0xa4, 0xc1, 0xe2, 0xac, - 0x76, 0x5f, 0x84, 0x4d, 0x8e, 0xa8, 0x90, 0xfb, 0x19, 0xea, 0x48, 0x61, 0x3b, 0x11, 0x89, 0xd5, - 0xc3, 0xc4, 0xfc, 0x6f, 0x0d, 0x98, 0xd6, 0x48, 0xc9, 0x5b, 0x30, 0x75, 0xc7, 0x77, 0x69, 0xbb, - 0xd1, 0x3c, 0x52, 0x0c, 0x20, 0xd4, 0x8e, 0xf7, 0x05, 0x9c, 0x7f, 0xb5, 0x86, 0x16, 0xf9, 0x0f, - 0x32, 0xa9, 0x01, 0x31, 0x37, 0x78, 0x14, 0xb6, 0x10, 0xd0, 0x6c, 0x7c, 0x81, 0x0d, 0x05, 0x54, - 0x48, 0xa7, 0x82, 0x42, 0xde, 0x83, 0x31, 0x7e, 0x1a, 0x25, 0xa2, 0x33, 0x2e, 0xa4, 0x7d, 0x26, - 0x8f, 0xf8, 0x47, 0x41, 0xc4, 0x43, 0xf0, 0xc0, 0x12, 0x44, 0xe6, 0x2f, 0x19, 0x40, 0x7a, 0x51, - 0x4f, 0xf0, 0xa7, 0x9c, 0x78, 0xb8, 0xfe, 0x61, 0x34, 0x1b, 0xb3, 0x9a, 0x4f, 0x90, 0xd5, 0xc4, - 0x0b, 0x78, 0xc7, 0x8b, 0x59, 0xa7, 0x3a, 0x78, 0x78, 0xb1, 0xf9, 0xd7, 0x32, 0x00, 0x31, 0x36, - 0xf9, 0x32, 0x4f, 0xec, 0xf8, 0x71, 0xd7, 0x69, 0xba, 0xfb, 0xae, 0x9e, 0x48, 0x01, 0x99, 0xfc, - 0xb0, 0x2c, 0xb1, 0x74, 0x44, 0xf2, 0x01, 0xcc, 0xd6, 0xaa, 0x3a, 0xad, 0x92, 0xc4, 0x2e, 0xe8, - 0xd8, 0x09, 0xf2, 0x24, 0x36, 0x46, 0x61, 0xa9, 0xa3, 0xc1, 0xa3, 0xb0, 0xf8, 0x40, 0x88, 0x12, - 0xb6, 0xb0, 0xd4, 0xaa, 0xf8, 0xe8, 0x56, 0x83, 0x36, 0x2a, 0x25, 0xb1, 0x4a, 0x61, 0xeb, 0x82, - 0x8e, 0xdd, 0xe1, 0x05, 0xf8, 0xd2, 0x93, 0x86, 0x17, 0x77, 0xe4, 0x68, 0x9f, 0xa8, 0xfe, 0x5f, - 0x41, 0x77, 0x52, 0xcb, 0x0b, 0xa9, 0xb0, 0xa2, 0x9f, 0x59, 0x7d, 0x3a, 0x3e, 0xca, 0x1c, 0xd5, - 0x82, 0x95, 0xb5, 0xaf, 0xe3, 0x18, 0x3b, 0xb7, 0x62, 0xe5, 0x97, 0x1f, 0x6a, 0xca, 0xa3, 0x4c, - 0x45, 0xf5, 0xfb, 0xfb, 0x06, 0x9c, 0x4d, 0xa5, 0x25, 0xd7, 0x01, 0x62, 0x5f, 0x85, 0xe8, 0x25, - 0xfe, 0xe0, 0x56, 0x04, 0xb5, 0x14, 0x0c, 0xf2, 0x8d, 0xa4, 0x97, 0xe1, 0xe4, 0x8d, 0xf0, 0xa2, - 0xbc, 0x96, 0xab, 0x7b, 0x19, 0x52, 0x7c, 0x0b, 0xe6, 0x6f, 0x67, 0x61, 0x4e, 0xb9, 0x15, 0xc6, - 0xdb, 0x7a, 0x42, 0x54, 0xdc, 0x7d, 0xf9, 0xb8, 0x9b, 0x88, 0x98, 0xcc, 0x68, 0xef, 0x15, 0xf6, - 0x70, 0xbb, 0xae, 0x22, 0xf3, 0xbb, 0xe8, 0xb8, 0x74, 0x8a, 0xb7, 0xde, 0x7a, 0x22, 0x27, 0x35, - 0xe6, 0x24, 0x80, 0xe9, 0xd2, 0x51, 0xdb, 0x69, 0x45, 0xb5, 0xf1, 0xe3, 0xf7, 0xd7, 0xfb, 0xd6, - 0xa6, 0x61, 0xf3, 0xea, 0xa4, 0xce, 0xb9, 0xd8, 0xe0, 0x65, 0x29, 0x77, 0x02, 0x34, 0xaa, 0x8b, - 0x1f, 0xc0, 0x5c, 0x4f, 0xa3, 0x4f, 0x75, 0x2d, 0x7e, 0x17, 0x48, 0x6f, 0x3b, 0x52, 0x38, 0xbc, - 0xae, 0x27, 0x5d, 0x38, 0x1b, 0x1d, 0xce, 0xb5, 0x5a, 0x4e, 0x9b, 0xbf, 0x25, 0xbd, 0xb3, 0xac, - 0x5e, 0x9a, 0xff, 0x95, 0x8c, 0x1a, 0xf2, 0xfb, 0xac, 0xcf, 0xba, 0x0f, 0x35, 0x2b, 0xeb, 0xc5, - 0x7e, 0x63, 0x3a, 0x94, 0x35, 0xfb, 0xfd, 0x2c, 0x9c, 0xef, 0x43, 0x49, 0x8e, 0x92, 0x42, 0xc4, - 0xad, 0xdb, 0x9b, 0x83, 0x2b, 0x7c, 0x1a, 0xa2, 0x44, 0xbe, 0xcc, 0x2f, 0xfd, 0xd4, 0xf1, 0x1d, - 0x07, 0x61, 0xd7, 0x45, 0x2f, 0x54, 0x73, 0x68, 0xf2, 0xb6, 0x0f, 0x87, 0x92, 0x0f, 0xe4, 0x0b, - 0xd5, 0xfa, 0xad, 0x74, 0x86, 0xc1, 0x5f, 0xa4, 0x8e, 0xaf, 0xf0, 0xa7, 0xbf, 0x4a, 0xfd, 0x25, - 0xc8, 0x16, 0x76, 0x6b, 0x62, 0x5c, 0x66, 0x54, 0xf2, 0xdd, 0x5a, 0x9c, 0xc7, 0xcb, 0xd1, 0x12, - 0x6e, 0x31, 0x0a, 0x46, 0x78, 0xb7, 0x58, 0x15, 0xa3, 0xa2, 0x12, 0xde, 0x2d, 0x56, 0x63, 0xc2, - 0x83, 0xba, 0x76, 0xdf, 0xef, 0x6e, 0xb1, 0xfa, 0xd9, 0x89, 0xfd, 0xdf, 0xc8, 0xf0, 0x9b, 0x4a, - 0xfc, 0xc3, 0x3e, 0x80, 0x29, 0x2d, 0x29, 0x8e, 0x11, 0xeb, 0x63, 0x51, 0x42, 0x9f, 0x44, 0xf4, - 0x83, 0x46, 0x20, 0x33, 0xe2, 0x45, 0xcf, 0x7a, 0xaa, 0xc1, 0x0b, 0xfa, 0x53, 0xa0, 0xc9, 0x8c, - 0x78, 0x11, 0x09, 0xb9, 0x05, 0xb9, 0x2d, 0xda, 0x76, 0xda, 0x61, 0xe4, 0x68, 0xc3, 0x60, 0xbb, - 0x10, 0x61, 0xba, 0xd6, 0x10, 0x21, 0xe2, 0x23, 0xac, 0xca, 0xa3, 0xa4, 0xd1, 0x5e, 0xcc, 0x43, - 0x40, 0x95, 0x92, 0xc4, 0x2b, 0xb6, 0x3a, 0x91, 0xf9, 0x2b, 0x06, 0x8c, 0x8b, 0x81, 0x54, 0x9e, - 0x0e, 0x34, 0x86, 0x78, 0x3a, 0xf0, 0x36, 0x4c, 0x88, 0xa0, 0x7b, 0xfd, 0xfd, 0x5a, 0x11, 0xa7, - 0x9f, 0x78, 0xbf, 0x36, 0x42, 0x1d, 0x3a, 0x96, 0xfc, 0xef, 0x8a, 0x96, 0xdd, 0x2d, 0x56, 0xc9, - 0x32, 0xe4, 0xd6, 0xbc, 0xba, 0xa3, 0xec, 0x73, 0xb8, 0xec, 0x34, 0x05, 0x4c, 0xed, 0x20, 0x89, - 0xa7, 0xbf, 0xcb, 0x9b, 0x19, 0xfe, 0x5d, 0xde, 0x61, 0xdb, 0x47, 0x53, 0x16, 0x89, 0x9d, 0x5b, - 0x6b, 0x6e, 0x10, 0x92, 0x8f, 0xd4, 0x18, 0x7d, 0x51, 0x24, 0x57, 0x8a, 0x8b, 0xfd, 0x56, 0x8a, - 0x9d, 0x5b, 0x56, 0x0a, 0x15, 0x9e, 0xd7, 0xc4, 0x60, 0xfe, 0x18, 0xfa, 0xe7, 0x2c, 0xd5, 0x73, - 0xf2, 0xf3, 0x86, 0x5a, 0xa4, 0xff, 0x59, 0x06, 0xce, 0xa5, 0x13, 0xaa, 0xdf, 0x62, 0x0c, 0xf8, - 0x96, 0x2b, 0x90, 0x5b, 0xf5, 0x82, 0x50, 0x09, 0x78, 0x42, 0xb7, 0xf2, 0xa1, 0x80, 0x59, 0x51, - 0x29, 0xb3, 0xb9, 0xd9, 0xdf, 0xd1, 0xf4, 0x44, 0x7e, 0x78, 0x3f, 0x87, 0xd9, 0xdc, 0xbc, 0x88, - 0xdc, 0x85, 0x9c, 0x25, 0xc2, 0xc9, 0x13, 0x5d, 0x23, 0xc1, 0x91, 0x36, 0x45, 0x7c, 0x01, 0xd1, - 0x72, 0x13, 0x09, 0x18, 0x29, 0xc0, 0xb8, 0x18, 0xfd, 0xc4, 0x91, 0x64, 0x8a, 0xc8, 0xe8, 0xe9, - 0xc2, 0x24, 0x1d, 0x5b, 0x51, 0xf0, 0x70, 0xa9, 0x52, 0x92, 0x91, 0xe1, 0xb8, 0xa2, 0xf0, 0xc3, - 0x27, 0x3d, 0x41, 0x59, 0x84, 0x68, 0xfe, 0x54, 0x06, 0x60, 0x97, 0xee, 0x3d, 0xdb, 0x19, 0xe4, - 0xbf, 0xa4, 0x49, 0x98, 0x12, 0x4f, 0x31, 0x7c, 0x02, 0xf9, 0x4d, 0x8c, 0x6b, 0x18, 0x3e, 0x7d, - 0xfc, 0x12, 0x8c, 0x72, 0x6f, 0xa7, 0x62, 0x24, 0x72, 0x37, 0x27, 0x87, 0x9b, 0x7b, 0xb0, 0x70, - 0x97, 0x86, 0xb1, 0x7b, 0x4b, 0x1e, 0x69, 0x0d, 0x66, 0xfb, 0x06, 0x4c, 0x08, 0x7c, 0xfd, 0x35, - 0x5d, 0x79, 0xe5, 0x0d, 0x7d, 0x31, 0x12, 0x81, 0xad, 0x46, 0x25, 0xda, 0xa4, 0x21, 0xfd, 0x6c, - 0xab, 0xa9, 0x01, 0xe1, 0x9f, 0x82, 0x5f, 0x36, 0x5c, 0x0d, 0x27, 0xf6, 0xcf, 0x0e, 0x9c, 0x8d, - 0xda, 0xfe, 0x34, 0xf9, 0xde, 0x60, 0x26, 0xa5, 0xc8, 0xb4, 0x15, 0x73, 0x1c, 0x10, 0xd3, 0xf0, - 0x08, 0x2e, 0x4a, 0x82, 0x5d, 0x37, 0x0a, 0x0c, 0x1b, 0x8a, 0x96, 0xbc, 0x0b, 0x93, 0x0a, 0x8d, - 0xc8, 0x65, 0x88, 0xee, 0xcf, 0x87, 0x6e, 0x78, 0x68, 0x07, 0x1c, 0xae, 0xba, 0x3f, 0x15, 0x74, - 0xf3, 0xeb, 0xf0, 0x5c, 0x14, 0x46, 0x9f, 0x52, 0x75, 0x82, 0xb9, 0x71, 0x3a, 0xe6, 0x1b, 0xf1, - 0x67, 0x55, 0xda, 0xd1, 0xa5, 0x2e, 0xc9, 0x9b, 0xa8, 0x9f, 0x25, 0x3e, 0xe6, 0xf9, 0x9e, 0x6b, - 0x62, 0xca, 0x6d, 0x30, 0xf3, 0x1d, 0xa5, 0xb1, 0x29, 0x0c, 0x35, 0x62, 0x23, 0x49, 0xfc, 0x53, - 0x19, 0x98, 0xdd, 0xac, 0x94, 0x8a, 0x51, 0x54, 0xcb, 0xe7, 0x2c, 0xbd, 0xbd, 0xf6, 0x6d, 0xfd, - 0xd7, 0x1b, 0x73, 0x1b, 0xe6, 0x13, 0xdd, 0x80, 0xaa, 0xc3, 0xfb, 0x3c, 0xdc, 0x3d, 0x02, 0x4b, - 0xb5, 0xe1, 0x5c, 0x1a, 0xfb, 0x9d, 0x5b, 0x56, 0x02, 0xdb, 0xfc, 0x47, 0xb9, 0x04, 0x5f, 0xb1, - 0x84, 0xbd, 0x01, 0x13, 0x95, 0x20, 0xe8, 0x52, 0x7f, 0xdb, 0x5a, 0x53, 0x5d, 0x05, 0x2e, 0x02, - 0xed, 0xae, 0xdf, 0xb4, 0x62, 0x04, 0x72, 0x15, 0x72, 0x22, 0xbb, 0x93, 0x5c, 0x13, 0xd0, 0x6b, - 0x1b, 0x25, 0x87, 0xb2, 0xa2, 0x62, 0xf2, 0x16, 0x4c, 0xf1, 0xbf, 0xb9, 0xb4, 0x89, 0x0e, 0x47, - 0xe7, 0xa0, 0x40, 0xe7, 0xd2, 0x69, 0x69, 0x68, 0xe4, 0x1a, 0x64, 0x0b, 0x45, 0x4b, 0x7d, 0x44, - 0xd3, 0xa9, 0xfb, 0xfc, 0x31, 0x5d, 0xdd, 0x88, 0x28, 0x5a, 0x4c, 0xfb, 0x13, 0xae, 0x24, 0x5f, - 0x78, 0xb2, 0x51, 0x02, 0xa4, 0xb7, 0x29, 0xb1, 0x99, 0x21, 0x8c, 0xdc, 0x80, 0xf1, 0x92, 0x1b, - 0x74, 0x9a, 0xce, 0x91, 0xf0, 0x63, 0xf3, 0xa4, 0xb7, 0x1c, 0xa4, 0xca, 0x8c, 0xc0, 0x22, 0x57, - 0x61, 0x14, 0x9d, 0xac, 0xc2, 0x97, 0xcd, 0x53, 0xc3, 0x32, 0x80, 0x96, 0x1a, 0x96, 0x01, 0x30, - 0x79, 0x20, 0xcf, 0x81, 0x34, 0xa1, 0x24, 0x0f, 0x4c, 0xe6, 0x3e, 0x12, 0x38, 0xbd, 0xf7, 0xa3, - 0xe0, 0x69, 0xde, 0x8f, 0xda, 0x83, 0xf3, 0x77, 0xd1, 0x7b, 0xa3, 0xdf, 0x83, 0xdd, 0xb6, 0x2a, - 0xc2, 0x1f, 0x8e, 0x27, 0x3e, 0xdc, 0xc1, 0x93, 0xbc, 0x4a, 0x9b, 0x78, 0x28, 0xbb, 0x1f, 0x23, - 0xf2, 0x55, 0x58, 0x48, 0x2b, 0x12, 0x5e, 0x73, 0xbc, 0x83, 0x9e, 0x5e, 0x81, 0x7a, 0x09, 0x3c, - 0x8d, 0x03, 0x59, 0x83, 0x3c, 0x87, 0x17, 0x1a, 0x2d, 0xb7, 0xcd, 0x3d, 0xff, 0xd3, 0xf1, 0x03, - 0x66, 0x82, 0xab, 0xc3, 0x0a, 0xf9, 0x09, 0x80, 0x76, 0xf1, 0x21, 0x41, 0x49, 0x7e, 0xde, 0x60, - 0xd6, 0x1c, 0xcf, 0x18, 0xb4, 0x6d, 0xad, 0x05, 0x22, 0x5b, 0x40, 0xbf, 0xc7, 0xc7, 0xb7, 0x9e, - 0xd2, 0xe3, 0xe3, 0x53, 0xbe, 0xa8, 0x13, 0x67, 0x91, 0xd6, 0x02, 0x7c, 0x75, 0xa9, 0xd9, 0xf4, - 0x1e, 0x6e, 0xb7, 0x1f, 0x50, 0xdf, 0xdd, 0x77, 0x69, 0x83, 0x7f, 0xe4, 0x2c, 0xae, 0xe0, 0xfc, - 0xd5, 0x25, 0x7c, 0x15, 0xab, 0x1b, 0x21, 0xf4, 0x7c, 0x68, 0x2a, 0x07, 0x66, 0x78, 0xca, 0x30, - 0x7c, 0x7e, 0x3b, 0x2d, 0x1f, 0x1b, 0x9e, 0x32, 0x66, 0xdf, 0x46, 0x31, 0x52, 0x85, 0x47, 0x23, - 0x11, 0x31, 0xbf, 0xbf, 0x3c, 0xc1, 0x57, 0xe4, 0x42, 0x37, 0x3c, 0x94, 0x6b, 0xf8, 0x72, 0xda, - 0x55, 0x02, 0x1e, 0xf2, 0xa4, 0x5c, 0x25, 0xd0, 0x2f, 0x10, 0x48, 0x57, 0x7a, 0x26, 0xd5, 0x95, - 0xfe, 0x06, 0x4c, 0xe0, 0x9b, 0x8f, 0x51, 0xcc, 0x76, 0x4e, 0xf8, 0x2a, 0x19, 0x90, 0xa7, 0x5b, - 0x8a, 0x11, 0xc8, 0x0d, 0x00, 0x4c, 0xc3, 0xcc, 0x37, 0x78, 0x25, 0xbd, 0x1d, 0x66, 0x6b, 0x16, - 0xa7, 0xc8, 0x0a, 0x0a, 0xb2, 0xaf, 0x59, 0x77, 0xd4, 0x63, 0x67, 0xce, 0x3e, 0xf0, 0xf7, 0x05, - 0x7a, 0x8c, 0xc0, 0x3e, 0x4f, 0x19, 0x26, 0xb1, 0xa8, 0xe4, 0x7b, 0xc6, 0x52, 0x45, 0xc2, 0x88, - 0x2e, 0x19, 0xa0, 0x8a, 0x6b, 0xca, 0x94, 0x88, 0xe8, 0x8a, 0x82, 0x59, 0xad, 0x18, 0x81, 0x7c, - 0x09, 0xc6, 0x8b, 0xd4, 0x0f, 0xb7, 0xb6, 0xd6, 0xc4, 0xbb, 0xed, 0xcc, 0x2e, 0xcf, 0x61, 0xbe, - 0xae, 0x30, 0x6c, 0xfe, 0xe0, 0x78, 0x69, 0x3a, 0x74, 0x5b, 0xf4, 0x7a, 0x74, 0x8c, 0x2b, 0xb1, - 0xc9, 0x0a, 0xe4, 0xf9, 0x19, 0x63, 0xac, 0xc8, 0xe1, 0x32, 0x93, 0xe3, 0x8b, 0x9e, 0x38, 0x90, - 0x7c, 0x48, 0xf7, 0xa2, 0x6c, 0x65, 0x3d, 0xf8, 0xa4, 0x2c, 0x93, 0xfc, 0xa9, 0x1f, 0x09, 0xb1, - 0x67, 0x41, 0x2c, 0xcc, 0xda, 0xb7, 0xf6, 0x52, 0x90, 0x02, 0x4c, 0x17, 0xbd, 0x56, 0xc7, 0x09, - 0x5d, 0xcc, 0xf2, 0x7c, 0x24, 0x56, 0x14, 0xf4, 0x8e, 0xd4, 0xd5, 0x02, 0xfd, 0x09, 0x47, 0xa5, - 0x80, 0xdc, 0x81, 0x19, 0xcb, 0xeb, 0xb2, 0x41, 0x92, 0x26, 0x0d, 0x5f, 0x34, 0xa2, 0xc7, 0x81, - 0xd9, 0x58, 0xda, 0xc2, 0x7e, 0xd1, 0xb2, 0x68, 0x68, 0x54, 0x64, 0x23, 0xc5, 0xb7, 0xac, 0xae, - 0x14, 0x6a, 0xce, 0xb2, 0x1e, 0x66, 0x29, 0x6e, 0xe9, 0x5b, 0x30, 0x59, 0xab, 0x6d, 0x6e, 0xd1, - 0x20, 0xbc, 0xd3, 0xf4, 0x1e, 0xe2, 0x42, 0x91, 0x13, 0xa9, 0x52, 0x03, 0xcf, 0x0e, 0x69, 0x10, - 0xda, 0xfb, 0x4d, 0xef, 0xa1, 0xa5, 0x62, 0x91, 0x1f, 0x52, 0xde, 0xb4, 0xc4, 0x9d, 0x7f, 0xf6, - 0xc4, 0x9d, 0x3f, 0xf1, 0xde, 0x25, 0xdb, 0xff, 0x53, 0xdf, 0xbb, 0x64, 0xe8, 0x78, 0x01, 0x81, - 0x19, 0x63, 0x85, 0x46, 0xc3, 0xa7, 0x41, 0x20, 0x66, 0xb4, 0xf2, 0x62, 0xaf, 0xc3, 0x0b, 0xb4, - 0x0b, 0x08, 0x0a, 0x01, 0xf9, 0xae, 0x01, 0x67, 0xd5, 0x18, 0x66, 0x9c, 0x2c, 0x2d, 0xda, 0x0e, - 0x17, 0xe7, 0xb0, 0xa5, 0x6f, 0x5e, 0x97, 0x2b, 0xda, 0x75, 0x05, 0xed, 0xfa, 0x83, 0x9b, 0xd7, - 0x95, 0x87, 0xdd, 0x6a, 0x92, 0x08, 0x1f, 0xf7, 0x5e, 0x4a, 0xe5, 0xa7, 0xae, 0x4e, 0x4e, 0x0a, - 0x29, 0x29, 0xb2, 0x4d, 0x8f, 0xc9, 0x13, 0xc6, 0x36, 0x54, 0xaa, 0x98, 0x55, 0x44, 0x38, 0xa7, - 0x84, 0xf4, 0xf1, 0x28, 0x08, 0xb7, 0xa3, 0xef, 0x6d, 0x0a, 0x0d, 0xaa, 0x8a, 0xb5, 0xc2, 0xfa, - 0x5a, 0xac, 0xef, 0x7c, 0xbe, 0x42, 0x8c, 0xb5, 0x6f, 0x1b, 0x10, 0x62, 0xbc, 0x0d, 0xf3, 0x89, - 0x6e, 0x90, 0xaa, 0xa2, 0x06, 0x4e, 0xaa, 0x8a, 0x09, 0x1a, 0x2b, 0x81, 0x6d, 0xfe, 0xc3, 0xf1, - 0x04, 0x5f, 0x11, 0x56, 0x64, 0xc2, 0x18, 0xd7, 0x04, 0xd5, 0x47, 0x89, 0xb8, 0x9e, 0x68, 0x89, - 0x12, 0x72, 0x01, 0xb2, 0xb5, 0xda, 0xa6, 0xfa, 0x64, 0x5a, 0x10, 0x78, 0x16, 0x83, 0xb1, 0x11, - 0xc2, 0x88, 0x21, 0x25, 0xbd, 0x17, 0x5b, 0xf6, 0x2c, 0x84, 0xb2, 0xfe, 0x96, 0x7a, 0xd9, 0x48, - 0xdc, 0xdf, 0x42, 0x2f, 0x8b, 0xb5, 0xb1, 0x22, 0x2c, 0x16, 0x82, 0x80, 0xfa, 0xfc, 0xb1, 0x67, - 0x0c, 0x44, 0xf1, 0x85, 0xee, 0x20, 0x56, 0x77, 0xac, 0xd4, 0xa9, 0x07, 0x56, 0x5f, 0x44, 0x72, - 0x05, 0x72, 0x85, 0x6e, 0xc3, 0xa5, 0xed, 0xba, 0x96, 0xd0, 0xc1, 0x11, 0x30, 0x2b, 0x2a, 0x25, - 0x1f, 0xc3, 0x59, 0x41, 0x24, 0x15, 0x48, 0xd1, 0x03, 0xe3, 0xf1, 0x14, 0x94, 0xba, 0x4d, 0x7c, - 0xc8, 0xc9, 0xbb, 0x24, 0x9d, 0x92, 0x14, 0x20, 0x5f, 0xc6, 0x90, 0xfa, 0x12, 0xe5, 0xfe, 0x56, - 0xcf, 0x17, 0x6f, 0xb3, 0xa2, 0x26, 0xca, 0xc3, 0xed, 0xed, 0x46, 0x54, 0x68, 0xf5, 0xa0, 0x93, - 0x7b, 0x30, 0x9f, 0x84, 0xb1, 0x85, 0x9c, 0x2b, 0x9d, 0x98, 0x5f, 0xa6, 0x87, 0x0b, 0x2e, 0xe5, - 0x69, 0x54, 0x64, 0x0f, 0xe6, 0xe2, 0x43, 0x7e, 0x5d, 0x15, 0x95, 0x31, 0x69, 0x51, 0xb9, 0x54, - 0x47, 0x9f, 0x13, 0xc2, 0x38, 0x1f, 0x07, 0x0c, 0x44, 0x2a, 0xa9, 0xd5, 0xcb, 0x8e, 0x34, 0x60, - 0xa6, 0xe6, 0x1e, 0xb4, 0xdd, 0xf6, 0xc1, 0x3d, 0x7a, 0x54, 0x75, 0x5c, 0x5f, 0x44, 0x07, 0xc9, - 0xd8, 0xbf, 0x42, 0x70, 0xd4, 0x6a, 0xd1, 0xd0, 0xc7, 0x2d, 0x92, 0x95, 0xe3, 0x3d, 0x39, 0x83, - 0xed, 0x05, 0x01, 0xa7, 0xc3, 0x3b, 0x21, 0x1d, 0xc7, 0xd5, 0xf6, 0x02, 0x9d, 0xa7, 0x66, 0x0e, - 0x4c, 0x0d, 0x69, 0x0e, 0x34, 0x61, 0xae, 0xdc, 0xae, 0xfb, 0x47, 0xe8, 0xf6, 0x96, 0x8d, 0x9b, - 0x3e, 0xa1, 0x71, 0xaf, 0x88, 0xc6, 0x3d, 0xef, 0x48, 0x09, 0x4b, 0x6b, 0x5e, 0x2f, 0x63, 0x52, - 0x13, 0x0f, 0xd1, 0x56, 0x4a, 0xd5, 0x4a, 0xdb, 0x0d, 0x5d, 0x7c, 0x1e, 0x88, 0xef, 0x31, 0xaf, - 0x0a, 0x9e, 0x2f, 0x70, 0xb5, 0xcf, 0x6d, 0x74, 0x6c, 0x57, 0xa2, 0xf4, 0xbc, 0x34, 0xab, 0xd2, - 0x9b, 0xff, 0x51, 0x8e, 0xaf, 0x86, 0xaa, 0x9a, 0xd6, 0x2f, 0xde, 0x29, 0xa1, 0xbe, 0x65, 0x4e, - 0xa3, 0xbe, 0x65, 0x4f, 0x56, 0xdf, 0x46, 0x4e, 0x52, 0xdf, 0x12, 0xfa, 0xd5, 0xe8, 0xa9, 0xf5, - 0xab, 0xb1, 0x53, 0xe8, 0x57, 0xe3, 0xa7, 0xd2, 0xaf, 0x34, 0x45, 0x31, 0x77, 0x92, 0xa2, 0xf8, - 0xff, 0x6b, 0x63, 0xcf, 0xaa, 0x36, 0x96, 0xb6, 0xb9, 0x9e, 0x4a, 0x1b, 0xeb, 0xaf, 0x4c, 0xe5, - 0xff, 0xb2, 0x95, 0xa9, 0xb9, 0x4f, 0xa1, 0x4c, 0xfd, 0x28, 0xe4, 0x93, 0xeb, 0xfb, 0xc9, 0x29, - 0x8b, 0x9e, 0x5a, 0x66, 0x11, 0xb6, 0xfb, 0x24, 0xd7, 0x57, 0x66, 0xe4, 0x55, 0x7d, 0xf7, 0x81, - 0x13, 0xd2, 0xf8, 0x59, 0x4e, 0x34, 0xf2, 0x3a, 0x1c, 0x8a, 0x73, 0x5e, 0x41, 0x89, 0x54, 0x8b, - 0x4c, 0x9a, 0x6a, 0x61, 0xfe, 0x74, 0x06, 0xe6, 0x78, 0x32, 0x84, 0x67, 0xdf, 0xb7, 0xf8, 0xbe, - 0xa6, 0x30, 0xca, 0x10, 0xa2, 0xc4, 0xd7, 0x0d, 0xf0, 0x2e, 0x7e, 0x13, 0xce, 0xf6, 0x74, 0x05, - 0x2a, 0x8d, 0x25, 0x99, 0x86, 0xa2, 0x47, 0x6d, 0x5c, 0x4c, 0xaf, 0x64, 0xe7, 0x96, 0xd5, 0x43, - 0x61, 0xfe, 0x8b, 0x6c, 0x0f, 0x7f, 0xe1, 0x67, 0x54, 0x3d, 0x87, 0xc6, 0xe9, 0x3c, 0x87, 0x99, - 0xe1, 0x3c, 0x87, 0x89, 0xbd, 0x25, 0x3b, 0xcc, 0xde, 0xf2, 0x31, 0x4c, 0x6f, 0x51, 0xa7, 0x15, - 0x6c, 0x79, 0x22, 0x7d, 0x22, 0x0f, 0x21, 0x94, 0x59, 0x26, 0x58, 0x99, 0xd4, 0x79, 0xa2, 0x50, - 0x88, 0x90, 0x11, 0xb0, 0xf5, 0x90, 0xe7, 0x53, 0xb4, 0x74, 0x0e, 0xaa, 0x22, 0x3b, 0x3a, 0x40, - 0x91, 0xad, 0xc1, 0x94, 0xa0, 0x8b, 0xf3, 0x34, 0xc5, 0x1a, 0x17, 0x2b, 0x42, 0xb8, 0xac, 0x3d, - 0x7a, 0x06, 0x21, 0xaa, 0x9d, 0x2b, 0x5b, 0x1a, 0x13, 0xd6, 0x05, 0xe5, 0x76, 0xa3, 0xe3, 0xb9, - 0x6d, 0xec, 0x82, 0xf1, 0xb8, 0x0b, 0xa8, 0x00, 0xf3, 0x2e, 0x50, 0x90, 0xc8, 0xbb, 0x30, 0x53, - 0xa8, 0x56, 0x54, 0xb2, 0x9c, 0xfa, 0x9e, 0xba, 0x6b, 0x6b, 0xa4, 0x09, 0x5c, 0xf3, 0x27, 0x26, - 0xe4, 0xdc, 0xfa, 0x6c, 0xbd, 0x44, 0xba, 0xdf, 0x27, 0x7b, 0x4a, 0xbf, 0xcf, 0xc8, 0x49, 0xdb, - 0xb9, 0xa6, 0x63, 0x8c, 0x9e, 0x42, 0xc7, 0x18, 0x7b, 0x62, 0x1f, 0xce, 0xf8, 0x29, 0xb5, 0x86, - 0x84, 0x98, 0xe7, 0x86, 0x11, 0xf3, 0x54, 0x4d, 0x63, 0xe2, 0xc9, 0x35, 0x0d, 0x38, 0xb5, 0xa6, - 0xa1, 0xbc, 0x60, 0x39, 0x39, 0xd4, 0x0b, 0x96, 0xc6, 0x10, 0x2f, 0x58, 0x7e, 0xae, 0xd4, 0x97, - 0x6f, 0xa5, 0xab, 0x2f, 0x83, 0x97, 0xfa, 0xff, 0x2f, 0x2b, 0x30, 0x3e, 0xf6, 0xf2, 0xae, 0xe3, - 0x33, 0x5b, 0x30, 0x20, 0x37, 0x60, 0x5c, 0xe6, 0x8b, 0x31, 0x62, 0xb3, 0xba, 0x37, 0x51, 0x8c, - 0xc4, 0x62, 0x66, 0xa3, 0x24, 0x16, 0x77, 0xab, 0x79, 0x6a, 0x0c, 0x01, 0xd3, 0x52, 0x63, 0x08, - 0x98, 0xf9, 0xef, 0x8c, 0xc8, 0x99, 0xcc, 0xcc, 0x1a, 0xf1, 0xe4, 0xd3, 0x8a, 0x32, 0x72, 0x8a, - 0xfa, 0x94, 0x18, 0x9b, 0x44, 0xcc, 0x90, 0x4e, 0xf2, 0x69, 0x92, 0xed, 0x28, 0x59, 0xce, 0xb3, - 0x43, 0x64, 0x39, 0x7f, 0x5b, 0x4b, 0x11, 0x3e, 0x12, 0xe7, 0xa4, 0x65, 0xd2, 0x3d, 0x38, 0x39, - 0xf8, 0x6d, 0x35, 0x97, 0xf7, 0x68, 0x7c, 0x0d, 0x1d, 0x29, 0x07, 0x64, 0xf1, 0x8e, 0xf4, 0xc1, - 0xb1, 0xd3, 0x24, 0x9e, 0x1a, 0xff, 0x4b, 0x4d, 0x3c, 0x55, 0x06, 0x50, 0xde, 0x01, 0xe2, 0xae, - 0xfa, 0x57, 0x59, 0x37, 0x9d, 0xfc, 0x06, 0x90, 0x42, 0x68, 0xfe, 0xcb, 0x39, 0x98, 0xab, 0xd5, - 0x36, 0x4b, 0xae, 0x73, 0xd0, 0xf6, 0x82, 0xd0, 0xad, 0x57, 0xda, 0xfb, 0x1e, 0x53, 0x86, 0xa2, - 0x55, 0x41, 0x49, 0x82, 0x14, 0xaf, 0x08, 0x51, 0x31, 0x53, 0xb6, 0xcb, 0xbe, 0xef, 0xf9, 0xaa, - 0xb2, 0x4d, 0x19, 0xc0, 0xe2, 0x70, 0xa6, 0x6f, 0xd4, 0xba, 0xfc, 0x41, 0x17, 0x7e, 0x7a, 0x82, - 0xfa, 0x46, 0xc0, 0x41, 0x96, 0x2c, 0x23, 0xb4, 0x57, 0x60, 0x85, 0xfe, 0x79, 0x5e, 0x4b, 0x5f, - 0x15, 0x17, 0xf3, 0x35, 0x4f, 0xec, 0x49, 0x78, 0x09, 0xa5, 0x83, 0x70, 0xf5, 0xa8, 0xad, 0x67, - 0x0e, 0x1c, 0xc1, 0x59, 0xed, 0x32, 0xc5, 0xb0, 0x1e, 0xa5, 0x6b, 0x42, 0xbf, 0x31, 0xf1, 0x4e, - 0x58, 0x8a, 0x5b, 0x49, 0x4d, 0xb2, 0x9b, 0x5a, 0x03, 0xf9, 0x69, 0x03, 0x5e, 0x48, 0x2d, 0x89, - 0x66, 0xf7, 0xa4, 0x96, 0x42, 0x4c, 0x59, 0x34, 0xf0, 0x11, 0x9c, 0xd7, 0xfb, 0x55, 0x6d, 0xa7, - 0x2c, 0x05, 0x83, 0x6b, 0x22, 0xff, 0xa1, 0x01, 0xe7, 0x35, 0x8c, 0x68, 0xcd, 0x0b, 0x70, 0x6f, - 0xea, 0x2b, 0xd7, 0xdf, 0x7e, 0x3a, 0x72, 0xfd, 0xb2, 0xfe, 0x2d, 0xf1, 0x92, 0xac, 0x7e, 0x43, - 0xbf, 0x16, 0x92, 0x07, 0x30, 0x87, 0x45, 0xd2, 0xbb, 0xc5, 0x64, 0x56, 0x38, 0xc5, 0x16, 0xe2, - 0x66, 0xf3, 0x0b, 0x42, 0xf8, 0x02, 0xc4, 0xf2, 0xf7, 0x8f, 0x97, 0xa6, 0x35, 0x74, 0xcc, 0x5e, - 0x8a, 0x6d, 0x88, 0x5c, 0x64, 0x6e, 0x7b, 0xdf, 0xd3, 0x1e, 0x2a, 0x4e, 0x56, 0x41, 0xfe, 0x13, - 0x03, 0x16, 0x19, 0x94, 0x7f, 0xc6, 0x1d, 0xdf, 0x6b, 0x45, 0xe5, 0xf2, 0xcc, 0xb6, 0x4f, 0xb7, - 0x35, 0x9f, 0x4e, 0xb7, 0xbd, 0x8a, 0x4d, 0xe6, 0x6b, 0x82, 0xbd, 0xef, 0x7b, 0xad, 0xb8, 0xf9, - 0xda, 0x3b, 0x37, 0xfd, 0x1a, 0x49, 0x7e, 0xd2, 0x80, 0x0b, 0x9a, 0x83, 0x41, 0xcd, 0xd9, 0x29, - 0xae, 0x61, 0xc9, 0x03, 0x7e, 0xb5, 0x68, 0xe5, 0xba, 0x90, 0xff, 0xcb, 0xd8, 0x82, 0x78, 0xb7, - 0xc0, 0xb6, 0xd8, 0x2d, 0x8e, 0xa5, 0x34, 0xa1, 0x7f, 0x2d, 0xc4, 0x85, 0x39, 0x3c, 0x71, 0xd2, - 0x62, 0x0b, 0x16, 0xfa, 0xc7, 0x16, 0x44, 0x99, 0xba, 0x31, 0x2f, 0x62, 0xff, 0x00, 0x83, 0x5e, - 0xae, 0xe4, 0xc7, 0xe0, 0x42, 0x0f, 0x30, 0x9a, 0x6d, 0x67, 0xfb, 0xce, 0xb6, 0xd7, 0x1f, 0x1f, - 0x2f, 0xbd, 0x96, 0x56, 0x5b, 0xda, 0x4c, 0xeb, 0x5f, 0x03, 0x71, 0x00, 0xe2, 0x42, 0xf1, 0x70, - 0x4e, 0xba, 0x80, 0xbe, 0x2e, 0xe4, 0x43, 0xc1, 0x67, 0x6b, 0xb9, 0xd2, 0x06, 0x75, 0xcb, 0x8b, - 0x91, 0x08, 0x85, 0x29, 0x25, 0x27, 0xe4, 0x11, 0xbe, 0xa0, 0xd3, 0xb7, 0x92, 0xef, 0x1f, 0x2f, - 0x69, 0xd8, 0x4c, 0x2f, 0x56, 0x93, 0x4d, 0xaa, 0x7a, 0xb1, 0x86, 0x48, 0x7e, 0xcf, 0x80, 0x05, - 0x06, 0x88, 0x85, 0x4a, 0x7c, 0xd4, 0xe2, 0x20, 0xa9, 0x3f, 0x7c, 0x3a, 0x52, 0xff, 0x12, 0xb6, - 0x51, 0x95, 0xfa, 0x9e, 0x2e, 0x49, 0x6d, 0x1c, 0x4a, 0xbb, 0x76, 0xb8, 0xa9, 0x49, 0xfb, 0x85, - 0x21, 0xa4, 0x9d, 0x0f, 0xc0, 0xc9, 0xd2, 0xde, 0xb7, 0x16, 0xb2, 0x05, 0x53, 0x42, 0x25, 0xe6, - 0x1d, 0xf6, 0xa2, 0x96, 0x82, 0x4e, 0x2d, 0xe2, 0x76, 0x8a, 0x48, 0x99, 0xd9, 0xf3, 0x85, 0x1a, - 0x17, 0xd2, 0x86, 0x79, 0xfe, 0x5b, 0xf7, 0x0e, 0x2c, 0xf5, 0xf5, 0x0e, 0x5c, 0x11, 0x5f, 0x74, - 0x49, 0xf0, 0x4f, 0x38, 0x09, 0xd4, 0x84, 0xf7, 0x29, 0x8c, 0x49, 0x07, 0x88, 0x06, 0xe6, 0x93, - 0xf6, 0xd2, 0x60, 0x9f, 0xc0, 0x6b, 0xa2, 0xce, 0xa5, 0x64, 0x9d, 0xc9, 0x99, 0x9b, 0xc2, 0x9b, - 0x38, 0x30, 0x2b, 0xa0, 0xcc, 0x00, 0xc6, 0x15, 0xfe, 0x25, 0xed, 0xc6, 0x76, 0xa2, 0x94, 0x3f, - 0x23, 0x23, 0x6b, 0xc2, 0x1b, 0xf5, 0x89, 0x05, 0x3d, 0xc9, 0xcf, 0xfc, 0xae, 0xd1, 0x53, 0x07, - 0x33, 0xb4, 0xf1, 0x87, 0x72, 0xb7, 0x12, 0x0d, 0x6d, 0xce, 0x11, 0x0d, 0xfe, 0x18, 0x81, 0xe9, - 0x36, 0x6a, 0xde, 0x8e, 0xac, 0x78, 0x79, 0x96, 0x83, 0x62, 0xfb, 0x6f, 0x49, 0x86, 0x68, 0x65, - 0x63, 0x1d, 0x09, 0x43, 0xb4, 0x44, 0x60, 0x96, 0xf9, 0x93, 0x19, 0x5d, 0x4a, 0xc8, 0x15, 0x45, - 0xcd, 0x56, 0x32, 0x87, 0x48, 0x35, 0x5b, 0x51, 0xae, 0xff, 0xbe, 0x01, 0xf3, 0x9b, 0xfe, 0x81, - 0xd3, 0x76, 0xbf, 0xc3, 0xf3, 0x8a, 0x79, 0xd8, 0x8d, 0xd1, 0xb5, 0x92, 0xcf, 0x34, 0x3f, 0xb9, - 0xa7, 0x54, 0xcc, 0x06, 0x16, 0x47, 0xd8, 0x4a, 0x6b, 0x0f, 0x06, 0xbd, 0x62, 0xc3, 0x94, 0x34, - 0xf1, 0x1c, 0x9d, 0xc3, 0xcd, 0x9f, 0xcb, 0xc0, 0xa4, 0x22, 0xb1, 0xe4, 0x8b, 0x30, 0xa5, 0xf2, - 0x51, 0x9d, 0x34, 0x6a, 0xb5, 0x96, 0x86, 0x85, 0x5e, 0x1a, 0xea, 0xb4, 0x34, 0x2f, 0x0d, 0x93, - 0x4b, 0x84, 0x9e, 0xd2, 0x12, 0xf9, 0x20, 0xc5, 0x12, 0x39, 0xd5, 0x63, 0x45, 0xef, 0xf6, 0xda, - 0x23, 0xc3, 0xbf, 0x2d, 0x64, 0xfe, 0x82, 0x01, 0xf9, 0xe4, 0x9c, 0xfa, 0x4c, 0x7a, 0xe5, 0x14, - 0xee, 0xf0, 0x9f, 0xcd, 0x40, 0x1e, 0xdf, 0x44, 0xa3, 0x0d, 0x19, 0xca, 0xff, 0xac, 0x86, 0x36, - 0xbc, 0xa7, 0x79, 0xaa, 0x9f, 0x8b, 0xb6, 0x01, 0xf5, 0xe3, 0x06, 0xa4, 0x38, 0x19, 0xf9, 0xd5, - 0xdf, 0x58, 0x3a, 0x63, 0x7e, 0x02, 0x0b, 0xc9, 0xee, 0x40, 0x6f, 0x75, 0x01, 0x66, 0x75, 0x78, - 0x32, 0xfb, 0x73, 0x92, 0xca, 0x4a, 0xe2, 0x9b, 0x7f, 0x9c, 0x49, 0xf2, 0x16, 0x61, 0x0e, 0x6c, - 0xd1, 0x69, 0x3b, 0x7b, 0xcd, 0x28, 0x41, 0xad, 0x78, 0xee, 0x1a, 0x41, 0x96, 0x2c, 0x3b, 0x4d, - 0x1e, 0xf0, 0x28, 0x20, 0x3d, 0x9b, 0x1e, 0x90, 0x4e, 0x6e, 0x27, 0x02, 0x7c, 0x94, 0xdb, 0xd3, - 0x0f, 0xe9, 0x9e, 0x1d, 0x07, 0xf9, 0x24, 0xe2, 0x7a, 0x8a, 0xb0, 0xa0, 0xa5, 0x98, 0x93, 0xf4, - 0xa3, 0xb1, 0x7f, 0x34, 0xc4, 0x02, 0x4e, 0x9c, 0x8a, 0x4c, 0x56, 0x61, 0x9c, 0x35, 0x73, 0xdd, - 0xe9, 0x08, 0x27, 0xb4, 0xfa, 0x2a, 0xb0, 0xdc, 0x6b, 0x94, 0x1b, 0x2a, 0x4d, 0xca, 0x76, 0x68, - 0xed, 0xad, 0x2f, 0x8e, 0x68, 0xfe, 0xb9, 0xc1, 0xe6, 0x7f, 0xfd, 0xfe, 0xe7, 0x2c, 0x43, 0x39, - 0xfb, 0xa4, 0x01, 0x51, 0x38, 0x7f, 0x92, 0xe1, 0x39, 0x86, 0x85, 0xf8, 0xbc, 0x0d, 0x63, 0x5b, - 0x8e, 0x7f, 0x40, 0x43, 0x91, 0x0d, 0x57, 0xe5, 0xc2, 0x0b, 0xe2, 0xbb, 0xdd, 0x21, 0xfe, 0xb6, - 0x04, 0x81, 0xea, 0xba, 0xca, 0x0c, 0xe5, 0xba, 0x52, 0xbc, 0xa9, 0xd9, 0xa7, 0xe6, 0x4d, 0xfd, - 0x5a, 0x94, 0xde, 0xb7, 0x10, 0x0e, 0x91, 0xc1, 0xec, 0x52, 0x32, 0xd7, 0x75, 0x4f, 0xae, 0xb9, - 0x98, 0x1d, 0xb9, 0xad, 0x66, 0xcf, 0x56, 0x62, 0xbc, 0x4f, 0xc8, 0x93, 0x6d, 0xfe, 0x83, 0x2c, - 0xef, 0x63, 0xd1, 0x51, 0x97, 0xb5, 0xfb, 0x1f, 0x38, 0x4f, 0xd8, 0x42, 0xaf, 0x5e, 0xc5, 0xc3, - 0x70, 0x83, 0xcb, 0x30, 0xc2, 0x64, 0x53, 0xf4, 0x26, 0x7f, 0xd1, 0xd5, 0x6b, 0x6a, 0x57, 0xf6, - 0x58, 0x39, 0x9b, 0xcb, 0xb8, 0x27, 0xa9, 0x89, 0xfa, 0x71, 0xdb, 0x52, 0xe7, 0x32, 0x62, 0xe0, - 0x2d, 0x40, 0xaf, 0x41, 0xd5, 0x29, 0xda, 0xd6, 0x9f, 0xb6, 0xc4, 0x72, 0xf6, 0xa5, 0x51, 0xbe, - 0x5c, 0xf5, 0x4b, 0x5b, 0xfb, 0x8e, 0xcd, 0xf3, 0xb4, 0xaa, 0x5f, 0x1a, 0xa7, 0xd6, 0x2d, 0xc3, - 0x8c, 0xfe, 0x2c, 0x96, 0x88, 0x50, 0x42, 0x9f, 0x68, 0xe2, 0x49, 0x2d, 0xd5, 0x95, 0xad, 0x13, - 0x91, 0x15, 0x98, 0xd6, 0xf2, 0xf3, 0x88, 0xb3, 0x20, 0xf4, 0x45, 0xea, 0xd9, 0x7d, 0x54, 0x5f, - 0xa4, 0x46, 0xc2, 0x76, 0x73, 0xd1, 0x7e, 0xe5, 0x44, 0xa8, 0xa7, 0xed, 0x02, 0x47, 0xb9, 0x27, - 0xf5, 0x05, 0xc8, 0x8b, 0xb5, 0x25, 0x7a, 0x61, 0x01, 0x4f, 0x68, 0x2b, 0x25, 0x4b, 0x5d, 0x0f, - 0xea, 0x6e, 0xc3, 0xb7, 0x10, 0x6a, 0xfe, 0xa2, 0x01, 0x17, 0x36, 0x68, 0xf8, 0xd0, 0xf3, 0xef, - 0x5b, 0x34, 0x08, 0x7d, 0x97, 0x3f, 0xd8, 0x80, 0x33, 0xea, 0x8b, 0xe4, 0x5d, 0xf9, 0xda, 0xb8, - 0xbe, 0xc4, 0x27, 0xeb, 0x58, 0x99, 0x16, 0x92, 0x38, 0x8a, 0x21, 0x34, 0xf2, 0x95, 0xf1, 0xb7, - 0xc5, 0x2b, 0xe3, 0x99, 0xc1, 0xc4, 0xd1, 0xcc, 0x6e, 0xd0, 0xb6, 0x7c, 0x5d, 0xfc, 0x17, 0x32, - 0x70, 0x36, 0xa5, 0x59, 0x3b, 0x5f, 0x7c, 0x46, 0x97, 0xb7, 0x15, 0x6d, 0x79, 0xbb, 0x24, 0x48, - 0xfb, 0x76, 0x7c, 0xea, 0x6a, 0xf7, 0x6b, 0x06, 0x9c, 0xd7, 0x65, 0x4d, 0x84, 0xb9, 0xed, 0xdc, - 0x22, 0xef, 0xc0, 0xd8, 0x2a, 0x75, 0x1a, 0x54, 0x26, 0x02, 0x8f, 0x1f, 0x9a, 0xe5, 0x97, 0x82, - 0x78, 0x21, 0x67, 0xfb, 0xc7, 0x7c, 0x31, 0x3a, 0x63, 0x09, 0x12, 0x52, 0x12, 0x8d, 0xe3, 0x8a, - 0xb5, 0x29, 0x2f, 0xe8, 0xa5, 0x55, 0x35, 0xe0, 0x7c, 0xfb, 0xfb, 0x06, 0x3c, 0x37, 0x80, 0x86, - 0x0d, 0x1c, 0x1b, 0x7a, 0x75, 0xe0, 0x70, 0x6b, 0x44, 0x28, 0x79, 0x1f, 0x66, 0xb7, 0x84, 0x62, - 0x2e, 0x87, 0x23, 0x13, 0x8b, 0xbe, 0xd4, 0xd9, 0x6d, 0x39, 0x2e, 0x49, 0x64, 0xed, 0xe6, 0x68, - 0x76, 0xe0, 0xcd, 0x51, 0xf5, 0x22, 0xe6, 0xc8, 0xb0, 0x17, 0x31, 0x3f, 0x49, 0xbe, 0xcc, 0x27, - 0xf2, 0x61, 0xc5, 0xd7, 0x50, 0x8d, 0xfe, 0xd7, 0x50, 0x07, 0x66, 0xdd, 0xc1, 0x77, 0x03, 0x74, - 0xde, 0x4f, 0x3a, 0x9e, 0xef, 0x69, 0xe3, 0xf9, 0x5c, 0xfa, 0x78, 0xf6, 0x1f, 0xc8, 0x5f, 0x37, - 0x92, 0x1f, 0x3b, 0xd4, 0x08, 0x9a, 0x30, 0x56, 0xf2, 0x5a, 0x8e, 0xdb, 0x56, 0x5f, 0x0c, 0x6b, - 0x20, 0xc4, 0x12, 0x25, 0xc3, 0xdd, 0xda, 0xbd, 0x04, 0xa3, 0x1b, 0x5e, 0xbb, 0x50, 0x12, 0x31, - 0x6d, 0xc8, 0xa7, 0xed, 0xb5, 0x6d, 0xa7, 0x61, 0xf1, 0x02, 0xf3, 0xa7, 0x47, 0xe1, 0x82, 0x45, - 0x0f, 0x5c, 0xa6, 0x3a, 0x6e, 0x07, 0x6e, 0xfb, 0x40, 0xbb, 0xa2, 0x68, 0x26, 0xc6, 0x44, 0xe4, - 0x89, 0x64, 0x90, 0xa8, 0x8e, 0xab, 0x90, 0x63, 0x7b, 0x85, 0x32, 0x2c, 0x78, 0x0c, 0x80, 0x4f, - 0xc4, 0x72, 0x79, 0x91, 0xc5, 0xe4, 0x9a, 0xd8, 0xc9, 0x94, 0x4c, 0xbe, 0x6c, 0x27, 0xfb, 0xc1, - 0xf1, 0x12, 0xd4, 0x8e, 0x82, 0x90, 0xa2, 0x15, 0x23, 0x76, 0xb3, 0x48, 0xdd, 0x1c, 0xe9, 0xa3, - 0x6e, 0xae, 0xc3, 0x42, 0xa1, 0xc1, 0xd7, 0x3d, 0xa7, 0x59, 0xf5, 0xdd, 0x76, 0xdd, 0xed, 0x38, - 0x4d, 0x69, 0x42, 0xe1, 0x61, 0x90, 0x13, 0x95, 0xdb, 0x9d, 0x08, 0xc1, 0x4a, 0x25, 0x63, 0x9f, - 0x51, 0xda, 0xa8, 0xf1, 0x17, 0x40, 0xf9, 0x09, 0x0f, 0x7e, 0x46, 0xa3, 0x1d, 0xf0, 0x27, 0x40, - 0xad, 0xa8, 0x18, 0x15, 0x5d, 0x3c, 0x46, 0xdf, 0x5a, 0xab, 0xc5, 0xd7, 0x25, 0x78, 0xa2, 0x41, - 0x7e, 0xd4, 0x1e, 0x36, 0x03, 0x3c, 0x6e, 0xd7, 0xf0, 0x62, 0xba, 0x5a, 0x6d, 0x95, 0xd1, 0xe5, - 0x7a, 0xe8, 0x82, 0xe0, 0x50, 0xa5, 0xe3, 0x78, 0xe4, 0x06, 0x00, 0x4f, 0x91, 0x83, 0x22, 0x33, - 0x11, 0xab, 0xc5, 0x3e, 0x42, 0xb9, 0x5a, 0xac, 0xa0, 0x90, 0x77, 0x61, 0xbe, 0x5c, 0x5c, 0x96, - 0x7e, 0xb9, 0x92, 0x57, 0xef, 0xe2, 0xc1, 0x28, 0x60, 0x7d, 0x38, 0x86, 0xb4, 0xbe, 0xcc, 0xe4, - 0x24, 0x0d, 0x8d, 0x5c, 0x86, 0xf1, 0x4a, 0x89, 0xf7, 0xfd, 0xa4, 0x9a, 0x4d, 0x5b, 0x04, 0x1c, - 0xc8, 0x42, 0xb2, 0x19, 0xeb, 0x6d, 0x53, 0x27, 0x2a, 0x58, 0x17, 0x4e, 0xd6, 0xd9, 0x44, 0xd2, - 0x6d, 0xfe, 0x64, 0x43, 0xd1, 0x6b, 0xd0, 0x60, 0xe7, 0xe6, 0xe7, 0x2c, 0xe9, 0xb6, 0xf2, 0x6d, - 0xb8, 0x10, 0xdc, 0x4c, 0x5d, 0x35, 0xfe, 0x36, 0x26, 0xdd, 0xee, 0xc1, 0x25, 0x5f, 0x86, 0x51, - 0xfc, 0x29, 0x54, 0x88, 0xf9, 0x14, 0xb6, 0xb1, 0xfa, 0x50, 0xe7, 0x8f, 0xe7, 0x21, 0x01, 0xa9, - 0xc0, 0xb8, 0x50, 0x43, 0x4f, 0x93, 0x3a, 0x56, 0xe8, 0xb3, 0x7c, 0x90, 0x04, 0xbd, 0xd9, 0x80, - 0x29, 0xb5, 0x42, 0x26, 0x9c, 0xab, 0x4e, 0x70, 0x48, 0x1b, 0xec, 0x97, 0xc8, 0xfa, 0x8e, 0xc2, - 0x79, 0x88, 0x50, 0x9b, 0xb5, 0xc3, 0x52, 0x50, 0xd8, 0xc2, 0x55, 0x09, 0xb6, 0x03, 0xd1, 0x14, - 0x61, 0x98, 0xba, 0xe8, 0xe4, 0x68, 0x58, 0xa2, 0xc8, 0xfc, 0x1a, 0x2c, 0x6c, 0x74, 0x9b, 0x4d, - 0x66, 0xa4, 0xca, 0xac, 0xa0, 0xa1, 0x13, 0x52, 0xb2, 0x02, 0xa3, 0xf8, 0x87, 0x78, 0xce, 0x7b, - 0x5e, 0x7f, 0xdf, 0x14, 0x8b, 0x30, 0xc6, 0xc9, 0xc0, 0x0b, 0x8e, 0xa1, 0xfe, 0x3e, 0x2e, 0x27, - 0x35, 0xff, 0x28, 0x7e, 0xc6, 0x71, 0xcb, 0x77, 0xea, 0xf7, 0xa9, 0x2f, 0x76, 0xa0, 0x61, 0x9f, - 0x99, 0xfc, 0x48, 0x36, 0x42, 0xdf, 0x15, 0xd2, 0x1a, 0x7c, 0x52, 0x63, 0xc8, 0xbb, 0x30, 0x29, - 0x76, 0x06, 0x25, 0x2d, 0x07, 0xde, 0x7d, 0x96, 0x2f, 0xce, 0x26, 0x4e, 0xcc, 0x55, 0x74, 0xdc, - 0xf0, 0xf4, 0x4f, 0xd9, 0xb9, 0xf9, 0x59, 0x6c, 0x78, 0x7a, 0x1d, 0x03, 0x44, 0xf7, 0xa7, 0x20, - 0xd9, 0xb7, 0x42, 0x76, 0x6f, 0xab, 0x17, 0xf1, 0x8d, 0xd8, 0x92, 0x88, 0x2f, 0xe2, 0xab, 0x96, - 0x44, 0x84, 0x1a, 0x8d, 0x49, 0xe6, 0x84, 0x31, 0x79, 0x5f, 0x8e, 0x49, 0xb6, 0xbf, 0x60, 0xcc, - 0x0f, 0x18, 0x87, 0x5a, 0x3c, 0x43, 0x46, 0x86, 0x32, 0x42, 0xcf, 0x60, 0xc6, 0x41, 0x4e, 0x92, - 0x5c, 0xd0, 0x04, 0x27, 0xd5, 0xb2, 0x1d, 0x1d, 0x9e, 0xe9, 0x09, 0x96, 0xed, 0x57, 0x60, 0xaa, - 0x10, 0x86, 0x4e, 0xfd, 0x90, 0x36, 0x4a, 0x6c, 0x79, 0x52, 0xee, 0x0c, 0x3b, 0x02, 0xae, 0x9e, - 0x08, 0xa8, 0xb8, 0x3c, 0x07, 0x8e, 0x13, 0x88, 0x80, 0xad, 0x28, 0x07, 0x0e, 0x83, 0xe8, 0x39, - 0x70, 0x18, 0x84, 0x59, 0xf2, 0x95, 0xf6, 0x03, 0x97, 0xf5, 0x49, 0x2e, 0x7e, 0x9a, 0xce, 0xe5, - 0x20, 0x75, 0x71, 0x15, 0x58, 0xe4, 0x6d, 0x45, 0x73, 0x9c, 0x88, 0x0d, 0x3e, 0xee, 0x20, 0xb0, - 0xa5, 0x02, 0xa9, 0x6a, 0x85, 0x91, 0x2a, 0x79, 0x1b, 0xc6, 0xa5, 0xdf, 0x07, 0x62, 0x23, 0x4f, - 0x50, 0xf6, 0xde, 0x0c, 0x93, 0xc8, 0xf8, 0x2a, 0x94, 0x92, 0xbd, 0x7e, 0x52, 0x79, 0x15, 0x4a, - 0xc9, 0x5e, 0xaf, 0xbd, 0x0a, 0xa5, 0xe4, 0xb1, 0x8f, 0x4c, 0xe6, 0xa9, 0x13, 0x4d, 0xe6, 0x1d, - 0x98, 0xaa, 0x3a, 0x7e, 0xe8, 0x32, 0x75, 0xa1, 0x1d, 0xf2, 0x77, 0xbe, 0x63, 0x2f, 0x93, 0x52, - 0xb4, 0xf2, 0xa2, 0x7c, 0x1d, 0xa9, 0xa3, 0xe0, 0xeb, 0xcf, 0xea, 0xc4, 0xf0, 0xf4, 0x70, 0xad, - 0x99, 0x27, 0x09, 0xd7, 0xc2, 0x4e, 0x45, 0xcf, 0xc2, 0x6c, 0x1c, 0x1c, 0x87, 0x9a, 0x61, 0xc2, - 0xbd, 0x10, 0x21, 0x92, 0x6f, 0xc0, 0x14, 0xfb, 0x1b, 0xdf, 0x7a, 0x75, 0x29, 0x7f, 0xc7, 0x3b, - 0xce, 0x33, 0xa6, 0x4f, 0x68, 0xfe, 0x20, 0x6c, 0x8d, 0x86, 0x7c, 0x02, 0x23, 0xe3, 0xa4, 0xcb, - 0x50, 0xe3, 0x46, 0x3e, 0x80, 0x29, 0xf5, 0xd1, 0x74, 0x11, 0x1f, 0x85, 0x07, 0x59, 0x0d, 0x01, - 0xef, 0x49, 0x43, 0xa5, 0x12, 0xb0, 0x6d, 0xbe, 0xd0, 0xe1, 0x0b, 0x24, 0x51, 0xa4, 0xbd, 0xd3, - 0xb3, 0x38, 0x4a, 0x34, 0xf2, 0x21, 0x4c, 0x15, 0x3a, 0x9d, 0x78, 0xc5, 0x99, 0x57, 0x1c, 0x07, - 0x9d, 0x8e, 0x9d, 0xba, 0xea, 0x68, 0x14, 0xc9, 0x85, 0x79, 0xe1, 0x74, 0x0b, 0xf3, 0x9f, 0x19, - 0x70, 0xbe, 0x4f, 0xb7, 0x45, 0x29, 0x98, 0x8c, 0xc1, 0x29, 0x98, 0xd8, 0xf4, 0xd3, 0xed, 0x37, - 0x9c, 0x7e, 0x42, 0x55, 0x51, 0x3f, 0x5a, 0x2a, 0x2d, 0xe9, 0x8f, 0x8e, 0x67, 0x3f, 0xb3, 0x47, - 0xc7, 0xcd, 0x63, 0x03, 0x26, 0x15, 0x61, 0x26, 0x97, 0x94, 0x0b, 0x3b, 0x79, 0x9e, 0xd7, 0x59, - 0xe1, 0x90, 0xe1, 0xcb, 0x39, 0x4a, 0x66, 0xe6, 0x64, 0x9f, 0xd7, 0x3a, 0xd3, 0x27, 0x94, 0x34, - 0x55, 0xad, 0x84, 0x83, 0x8a, 0x95, 0xe3, 0xcb, 0x68, 0x4e, 0x10, 0x16, 0xea, 0xa1, 0xfb, 0x80, - 0x0e, 0xb1, 0x72, 0xc7, 0x2f, 0xa3, 0x39, 0x41, 0x68, 0x3b, 0x48, 0xd6, 0xf3, 0x32, 0x5a, 0xc4, - 0xd0, 0xfc, 0x2b, 0x06, 0xc0, 0x76, 0xa5, 0x88, 0x79, 0xe6, 0x9e, 0x74, 0x67, 0x4d, 0xcf, 0xdd, - 0x23, 0xb9, 0x0f, 0xd8, 0x53, 0xab, 0x30, 0xa3, 0x63, 0x31, 0x0b, 0xbf, 0x56, 0xf7, 0xbd, 0x66, - 0x73, 0xcf, 0xa9, 0xdf, 0x5f, 0x73, 0xdb, 0x94, 0x27, 0x4d, 0x19, 0xe5, 0xeb, 0x79, 0x10, 0x15, - 0xd9, 0x4d, 0x56, 0x66, 0x25, 0x91, 0xcd, 0xbf, 0x30, 0x60, 0xb2, 0xd2, 0x0e, 0x42, 0xa7, 0xd9, - 0x44, 0x8d, 0xe1, 0xf3, 0x94, 0xda, 0x3f, 0xfa, 0xae, 0x01, 0x3d, 0xfa, 0x16, 0xcc, 0x26, 0xd0, - 0x98, 0xa5, 0x5b, 0xc3, 0xfb, 0x84, 0xaa, 0xa5, 0xcb, 0x6f, 0x18, 0x5a, 0xa2, 0xc4, 0x2c, 0x2b, - 0x64, 0x3b, 0x37, 0xf1, 0x08, 0x67, 0x19, 0xc0, 0x95, 0x20, 0xa9, 0x97, 0x93, 0x64, 0x4b, 0x76, - 0x6e, 0x5a, 0x0a, 0x96, 0xb9, 0x01, 0x63, 0x35, 0xcf, 0x0f, 0x57, 0x8e, 0xb8, 0x2a, 0x5c, 0xa2, - 0x41, 0x5d, 0x3d, 0xa3, 0x71, 0xd1, 0x33, 0x5a, 0xb7, 0x44, 0x11, 0x33, 0x84, 0xef, 0xb8, 0xb4, - 0xd9, 0x50, 0x63, 0xe7, 0xf6, 0x19, 0xc0, 0xe2, 0x70, 0x66, 0x2e, 0x9c, 0x8b, 0xf3, 0xa0, 0xc6, - 0x41, 0x7a, 0x4f, 0x2a, 0xb0, 0x45, 0xad, 0x7f, 0x5f, 0xd2, 0xdf, 0xc3, 0xd3, 0x6a, 0x1a, 0xd0, - 0xd5, 0xff, 0xc8, 0x80, 0x8b, 0xfd, 0x49, 0xd4, 0xb8, 0x3f, 0x63, 0x40, 0xdc, 0xdf, 0xab, 0xc9, - 0x33, 0x05, 0x44, 0x13, 0x67, 0x0a, 0xf1, 0x49, 0x42, 0x09, 0xc3, 0x2e, 0xeb, 0xd1, 0xdb, 0xa3, - 0x97, 0x06, 0xb4, 0x19, 0x11, 0xf9, 0x30, 0x87, 0x48, 0x63, 0x09, 0x5a, 0xf3, 0x9f, 0x8c, 0xc0, - 0x85, 0xbe, 0x14, 0x64, 0x55, 0x49, 0xa9, 0x3c, 0x13, 0x25, 0x73, 0xed, 0x8b, 0x7f, 0x1d, 0xff, - 0xc5, 0xc8, 0x9a, 0xe4, 0x6d, 0x80, 0xcd, 0x28, 0x95, 0x6e, 0x06, 0x79, 0xbd, 0x7e, 0x22, 0x2f, - 0x8e, 0x8e, 0xcc, 0xa0, 0x37, 0xab, 0x2e, 0x5e, 0xda, 0xa0, 0xa1, 0xe3, 0x36, 0x03, 0x75, 0xda, - 0x35, 0x38, 0xc8, 0x92, 0x65, 0x71, 0x30, 0xe6, 0x48, 0x7a, 0x30, 0xa6, 0xf9, 0xff, 0x18, 0x30, - 0x11, 0x35, 0x9b, 0x5c, 0x84, 0x73, 0x5b, 0x56, 0xa1, 0x58, 0xb6, 0xb7, 0x3e, 0xa9, 0x96, 0xed, - 0xed, 0x8d, 0x5a, 0xb5, 0x5c, 0xac, 0xdc, 0xa9, 0x94, 0x4b, 0xf9, 0x33, 0x64, 0x0e, 0xa6, 0xb7, - 0x37, 0xee, 0x6d, 0x6c, 0xee, 0x6e, 0xd8, 0x65, 0xcb, 0xda, 0xb4, 0xf2, 0x06, 0x99, 0x86, 0x09, - 0x6b, 0xa5, 0x50, 0xb4, 0x37, 0x36, 0x4b, 0xe5, 0x7c, 0x86, 0xe4, 0x61, 0xaa, 0xb8, 0xb9, 0xb1, - 0x51, 0x2e, 0x6e, 0x55, 0x76, 0x2a, 0x5b, 0x9f, 0xe4, 0xb3, 0x84, 0xc0, 0x0c, 0x22, 0x54, 0xad, - 0xca, 0x46, 0xb1, 0x52, 0x2d, 0xac, 0xe5, 0x47, 0x18, 0x8c, 0xe1, 0x2b, 0xb0, 0xd1, 0x88, 0xd1, - 0xbd, 0xed, 0x95, 0x72, 0x7e, 0x8c, 0xa1, 0xb0, 0xbf, 0x14, 0x94, 0x71, 0x56, 0x3d, 0xa2, 0x94, - 0x0a, 0x5b, 0x85, 0x95, 0x42, 0xad, 0x9c, 0xcf, 0x91, 0xf3, 0x30, 0xaf, 0x81, 0xec, 0xb5, 0xcd, - 0xbb, 0x95, 0x8d, 0xfc, 0x04, 0x59, 0x80, 0x7c, 0x04, 0x2b, 0xad, 0xd8, 0xdb, 0xb5, 0xb2, 0x95, - 0x87, 0x24, 0x74, 0xa3, 0xb0, 0x5e, 0xce, 0x4f, 0x9a, 0xef, 0xf1, 0x7b, 0x1a, 0xbc, 0xab, 0xc9, - 0x39, 0x20, 0xb5, 0xad, 0xc2, 0xd6, 0x76, 0x2d, 0xf1, 0xf1, 0x93, 0x30, 0x5e, 0xdb, 0x2e, 0x16, - 0xcb, 0xb5, 0x5a, 0xde, 0x20, 0x00, 0x63, 0x77, 0x0a, 0x95, 0xb5, 0x72, 0x29, 0x9f, 0x31, 0x7f, - 0xde, 0x80, 0x39, 0xa9, 0xbf, 0x48, 0xbf, 0xf2, 0x13, 0xce, 0xc5, 0xf7, 0x35, 0xb3, 0x4c, 0x86, - 0xd1, 0x27, 0x2a, 0x19, 0x30, 0x0d, 0x7d, 0x38, 0x9b, 0x8a, 0x4c, 0x3e, 0x81, 0xbc, 0x6c, 0xc0, - 0xba, 0x13, 0xd6, 0x0f, 0xe3, 0x65, 0xec, 0xc5, 0x44, 0x25, 0x09, 0x34, 0xee, 0x1e, 0x8b, 0xdf, - 0x0e, 0xea, 0x61, 0x63, 0xfe, 0x10, 0x9c, 0xef, 0x43, 0x4b, 0x8a, 0x30, 0x16, 0x25, 0x98, 0x1d, - 0x10, 0x81, 0xb2, 0xf0, 0xfd, 0xe3, 0x25, 0x81, 0x88, 0x2f, 0xa8, 0xe0, 0x5f, 0x96, 0x80, 0x98, - 0x7f, 0xdd, 0x80, 0x29, 0xa1, 0xf5, 0x16, 0x9a, 0xd4, 0x0f, 0x9f, 0xac, 0x87, 0xdf, 0xd6, 0x7a, - 0x38, 0x0a, 0x27, 0x56, 0xf8, 0xb3, 0xe2, 0xd4, 0xce, 0xfd, 0x6f, 0x0c, 0xc8, 0x27, 0x11, 0xc9, - 0xfb, 0x90, 0xab, 0xd1, 0x07, 0xd4, 0x77, 0xc3, 0x23, 0xb1, 0x56, 0xc8, 0xcc, 0xf5, 0x1c, 0x47, - 0x94, 0x71, 0xe7, 0x5a, 0x20, 0x7e, 0x59, 0x11, 0xcd, 0xb0, 0x4b, 0x9e, 0x62, 0xb7, 0x66, 0x9f, - 0x96, 0xdd, 0x6a, 0xfe, 0xe3, 0x0c, 0x9c, 0xbf, 0x4b, 0x43, 0xf5, 0x9b, 0xa2, 0xf3, 0xb4, 0x2f, - 0x0c, 0xf7, 0x5d, 0xca, 0x97, 0x2c, 0xc2, 0x38, 0x16, 0xc9, 0xab, 0xda, 0x96, 0xfc, 0x49, 0x56, - 0x22, 0x31, 0xc8, 0x6a, 0xa9, 0xb1, 0xfb, 0xd4, 0x7d, 0x5d, 0x49, 0x96, 0x2b, 0xa5, 0x80, 0x5c, - 0x86, 0x19, 0xcc, 0x06, 0xd7, 0x65, 0xd2, 0x43, 0x1b, 0xc2, 0x7e, 0xcf, 0x59, 0x09, 0x28, 0xb9, - 0x06, 0x79, 0x06, 0x29, 0xd4, 0xef, 0xb7, 0xbd, 0x87, 0x4d, 0xda, 0x38, 0xa0, 0xfc, 0xfd, 0xcd, - 0x9c, 0xd5, 0x03, 0xbf, 0xf8, 0x36, 0x4c, 0x7e, 0xca, 0x84, 0xd6, 0xe6, 0x3f, 0x37, 0x60, 0x01, - 0x1b, 0xad, 0x30, 0x44, 0xaf, 0xea, 0x17, 0xe2, 0x5e, 0x50, 0x72, 0xbc, 0x3a, 0x0c, 0xa4, 0x9b, - 0x21, 0x51, 0xef, 0xc4, 0xc6, 0x7a, 0x66, 0x08, 0x63, 0xbd, 0x76, 0x9a, 0x07, 0xbb, 0x86, 0xf4, - 0x35, 0xf0, 0xc7, 0x53, 0xe3, 0xa1, 0x34, 0xff, 0x6a, 0x06, 0xc6, 0x2d, 0x8a, 0x2f, 0x19, 0x91, - 0xcb, 0x30, 0xbe, 0xe1, 0x85, 0x34, 0x58, 0xd7, 0x9e, 0xad, 0x6a, 0x33, 0x90, 0xdd, 0x6a, 0x58, - 0xb2, 0x90, 0x09, 0x72, 0xd5, 0xf7, 0x1a, 0xdd, 0x7a, 0xa8, 0x0a, 0x72, 0x87, 0x83, 0x2c, 0x59, - 0x46, 0xde, 0x80, 0x09, 0xc1, 0x39, 0x3a, 0xd2, 0xc0, 0x98, 0x3a, 0x9f, 0x46, 0x2f, 0x61, 0xc5, - 0x08, 0xa8, 0xae, 0xf1, 0xbd, 0x73, 0x44, 0x51, 0xd7, 0x7a, 0xb6, 0x43, 0xa9, 0x85, 0x8e, 0x0e, - 0xd0, 0x42, 0xbf, 0x00, 0x63, 0x85, 0x20, 0xa0, 0xa1, 0xbc, 0xbd, 0x38, 0x15, 0x65, 0x4c, 0x08, - 0x68, 0xc8, 0x19, 0x3b, 0x58, 0x6e, 0x09, 0x3c, 0xf3, 0xcf, 0x33, 0x30, 0x8a, 0x7f, 0xe2, 0x31, - 0x8e, 0x5f, 0x3f, 0xd4, 0x8e, 0x71, 0xfc, 0xfa, 0xa1, 0x85, 0x50, 0x72, 0x13, 0x4d, 0x48, 0x99, - 0x8e, 0x58, 0x7c, 0x3d, 0xfa, 0x46, 0x1b, 0x31, 0xd8, 0x52, 0x71, 0xa2, 0xf3, 0xad, 0x6c, 0xea, - 0x9d, 0xe5, 0x73, 0x90, 0xd9, 0xac, 0x89, 0x2f, 0xc6, 0x84, 0x08, 0x5e, 0x60, 0x65, 0x36, 0x6b, - 0xd8, 0x1b, 0xab, 0x85, 0xe5, 0xb7, 0x6e, 0xab, 0x2f, 0xac, 0x05, 0x87, 0xce, 0xf2, 0x5b, 0xb7, - 0x2d, 0x51, 0xc2, 0xfa, 0x17, 0xdb, 0x5c, 0x73, 0xbf, 0x43, 0xc5, 0x85, 0x3f, 0xec, 0x5f, 0xfc, - 0x36, 0x3b, 0x70, 0xbf, 0x43, 0xad, 0x18, 0x81, 0x2c, 0xc3, 0xa4, 0xb8, 0xe3, 0x89, 0xf8, 0xca, - 0x1d, 0x4c, 0x71, 0x07, 0x94, 0x53, 0xa8, 0x48, 0xfc, 0x98, 0x42, 0x0c, 0x90, 0x7c, 0x34, 0x45, - 0x1c, 0x53, 0xc8, 0x21, 0x0c, 0x2c, 0x05, 0x25, 0xbe, 0xaf, 0x18, 0x5f, 0xe4, 0x53, 0xef, 0x2b, - 0x62, 0xd6, 0xbe, 0x08, 0xc1, 0xfc, 0xad, 0x0c, 0xe4, 0xaa, 0xcd, 0xee, 0x81, 0xdb, 0xde, 0xb9, - 0xf9, 0x97, 0xfa, 0x76, 0xef, 0x9b, 0x80, 0x8b, 0xbf, 0xd0, 0x8b, 0xa5, 0xa7, 0x91, 0x37, 0x4d, - 0x6c, 0xc1, 0x9c, 0x04, 0xd1, 0xc8, 0x2d, 0x10, 0x82, 0x29, 0x1e, 0x7d, 0x3a, 0xab, 0x13, 0xf0, - 0xe7, 0x0e, 0x24, 0x89, 0x40, 0x25, 0xef, 0xc2, 0x64, 0xfc, 0xac, 0x6c, 0xfc, 0x96, 0x93, 0x4a, - 0x59, 0x8c, 0xcb, 0x77, 0x6e, 0x5a, 0x2a, 0xba, 0xf9, 0xfb, 0x06, 0x4c, 0xa9, 0xed, 0x21, 0x16, - 0xcc, 0x07, 0x4d, 0x66, 0x10, 0x8a, 0xa8, 0x89, 0x0e, 0x16, 0x8a, 0x6d, 0xf2, 0x92, 0xde, 0x20, - 0x86, 0xc7, 0x43, 0x28, 0x6a, 0x34, 0x0c, 0xdd, 0xf6, 0x41, 0xb0, 0x7a, 0xc6, 0x9a, 0x0b, 0x62, - 0x30, 0xc7, 0x23, 0x05, 0xc8, 0x79, 0x9d, 0xe0, 0x80, 0xb6, 0x5d, 0xe9, 0x08, 0x7f, 0x59, 0x63, - 0xb4, 0x29, 0x0a, 0x7b, 0x78, 0x45, 0x64, 0x5f, 0x19, 0xf9, 0xdf, 0x7f, 0x63, 0xc9, 0x58, 0x01, - 0xc8, 0x05, 0xa2, 0xd4, 0x5c, 0x83, 0x0b, 0x7d, 0x9b, 0x41, 0xae, 0x42, 0x7e, 0xdf, 0x11, 0x96, - 0x6d, 0xfd, 0xd0, 0x69, 0xb7, 0x69, 0x53, 0x08, 0xc0, 0xac, 0x84, 0x17, 0x39, 0x98, 0x73, 0x36, - 0x7f, 0xc3, 0x80, 0xe7, 0x07, 0x35, 0x86, 0x89, 0x91, 0x13, 0x1d, 0xc3, 0x5a, 0xf8, 0x37, 0xb9, - 0x08, 0xb9, 0x8e, 0xef, 0x7a, 0xb8, 0xc1, 0x71, 0x31, 0x8a, 0x7e, 0x93, 0x17, 0x00, 0xf8, 0x8a, - 0x1d, 0x3a, 0x07, 0x22, 0x12, 0xd2, 0x9a, 0x40, 0xc8, 0x96, 0x73, 0x10, 0x90, 0xd7, 0x61, 0xae, - 0x41, 0xf7, 0x9d, 0x6e, 0x33, 0xb4, 0x83, 0xfa, 0x21, 0x6d, 0x74, 0x9b, 0xe2, 0x3d, 0x97, 0x09, - 0x2b, 0x2f, 0x0a, 0x6a, 0x12, 0x2e, 0x9a, 0xf8, 0x6b, 0x51, 0x13, 0x57, 0x3c, 0x2f, 0x0c, 0x42, - 0xdf, 0xe9, 0x68, 0x03, 0x4b, 0x5a, 0x70, 0xc1, 0x73, 0xba, 0xe1, 0xe1, 0x32, 0xbe, 0x97, 0xef, - 0xf9, 0x32, 0x90, 0xb6, 0x2e, 0x8f, 0x5b, 0x26, 0x97, 0x6f, 0xe8, 0xfd, 0x5e, 0x60, 0xd8, 0x05, - 0x15, 0xb9, 0xe8, 0x35, 0xa8, 0xc2, 0x75, 0xf5, 0x8c, 0x75, 0x9e, 0xf3, 0xec, 0xc1, 0x5a, 0x99, - 0xd6, 0x04, 0xcf, 0xfc, 0x51, 0xb8, 0x32, 0x2c, 0x57, 0x7c, 0x62, 0x38, 0xbd, 0x89, 0x13, 0xd6, - 0x9c, 0x93, 0xa4, 0xe4, 0x4f, 0x0c, 0x47, 0x57, 0x75, 0x5d, 0xd1, 0xd7, 0x93, 0x12, 0xb6, 0xed, - 0xbb, 0xe6, 0x7b, 0x30, 0xa3, 0xcf, 0x12, 0xf2, 0x3a, 0x8c, 0x44, 0x5c, 0x67, 0x22, 0x2d, 0x4d, - 0x45, 0x62, 0xbc, 0x2d, 0x44, 0x32, 0x7f, 0xd2, 0x80, 0xf9, 0x94, 0xb9, 0x42, 0xbe, 0x0e, 0xf3, - 0xb2, 0x4b, 0xf9, 0x74, 0xc0, 0x83, 0x4d, 0xd1, 0x99, 0x57, 0xd3, 0x3a, 0x13, 0xd1, 0xf0, 0xd4, - 0x53, 0xef, 0xc6, 0x39, 0xd1, 0x8d, 0x71, 0x79, 0xb2, 0x03, 0xff, 0xa1, 0x01, 0xe6, 0xc9, 0xac, - 0x58, 0x67, 0xf4, 0xb4, 0x65, 0xc2, 0x9a, 0x74, 0x62, 0x6c, 0xf2, 0x32, 0x4c, 0xfb, 0x74, 0xdf, - 0xa7, 0xc1, 0xa1, 0xc0, 0xe1, 0x1d, 0x36, 0x25, 0x80, 0x1c, 0xe9, 0x7d, 0x90, 0x81, 0xe5, 0x43, - 0xa8, 0x83, 0xca, 0x33, 0xe2, 0x82, 0xc8, 0x7c, 0x5b, 0x2e, 0x1c, 0x6b, 0x6e, 0x10, 0xee, 0xdc, - 0x24, 0x57, 0x61, 0x9c, 0xaf, 0x15, 0xd2, 0x2a, 0x98, 0xd5, 0xba, 0x67, 0xe7, 0xa6, 0x25, 0xcb, - 0xcd, 0xdf, 0x12, 0xf7, 0x9e, 0x2a, 0x8d, 0x6a, 0x22, 0x67, 0xd4, 0x93, 0x1a, 0x3f, 0x65, 0x4d, - 0x35, 0x7f, 0x59, 0x49, 0x81, 0xd2, 0x5b, 0x57, 0x7f, 0x1b, 0x48, 0x89, 0xed, 0xfa, 0x1b, 0x06, - 0x3c, 0x3f, 0x88, 0x3c, 0x35, 0xbd, 0x95, 0x71, 0xba, 0xf4, 0x56, 0x57, 0x21, 0xc7, 0x61, 0x7a, - 0x92, 0x59, 0x41, 0xea, 0x36, 0xac, 0xa8, 0xd8, 0x2c, 0x00, 0x54, 0x1a, 0xd5, 0xcd, 0x0e, 0xbf, - 0x7d, 0x75, 0x0b, 0x46, 0x58, 0xdb, 0x12, 0x1d, 0xc5, 0x9a, 0x5a, 0x58, 0x5f, 0x13, 0x48, 0x5c, - 0x33, 0x08, 0x9c, 0x56, 0xd3, 0x42, 0x64, 0x73, 0x17, 0x66, 0x74, 0x0c, 0x52, 0xd6, 0x03, 0x80, - 0xe3, 0x77, 0x31, 0x56, 0x3c, 0x8f, 0xdb, 0x57, 0x2b, 0x17, 0xbe, 0x7f, 0xbc, 0x04, 0xec, 0x27, - 0xa7, 0x49, 0x0b, 0x10, 0x36, 0xbf, 0x97, 0x81, 0x85, 0xf8, 0x90, 0x41, 0x0e, 0xd7, 0x33, 0xeb, - 0x33, 0x2c, 0x68, 0x3e, 0xad, 0xa5, 0x9e, 0xd4, 0xf3, 0xf2, 0x03, 0x07, 0x98, 0xd2, 0x77, 0x61, - 0xb1, 0x1f, 0x3e, 0x79, 0xbd, 0x27, 0x39, 0xb4, 0x08, 0x86, 0x89, 0xb2, 0x48, 0x2b, 0xb9, 0xa2, - 0xff, 0xa9, 0x01, 0x17, 0x85, 0x99, 0xb3, 0xee, 0xb8, 0x6d, 0x7c, 0x10, 0xa3, 0x4e, 0x9f, 0x8e, - 0xb3, 0xf9, 0xae, 0x36, 0x65, 0x5e, 0xd5, 0xad, 0xd9, 0x9e, 0xda, 0xfa, 0x7f, 0x2d, 0xb9, 0x8a, - 0x11, 0x44, 0x75, 0xae, 0x91, 0x8e, 0xf0, 0x13, 0xb2, 0x36, 0x03, 0xa8, 0x27, 0x64, 0x88, 0x61, - 0xfe, 0x38, 0xbc, 0x38, 0xb8, 0x02, 0xf2, 0x4d, 0x98, 0x2e, 0x1c, 0xd0, 0x76, 0xb8, 0xdd, 0x39, - 0xf0, 0x9d, 0x06, 0x95, 0xd6, 0xbf, 0x7c, 0xeb, 0x4c, 0x2d, 0xe3, 0x51, 0x53, 0xe2, 0xc4, 0x86, - 0xc1, 0xed, 0xae, 0x20, 0xd2, 0x42, 0x3d, 0x55, 0x6e, 0xe6, 0x4f, 0x18, 0x40, 0x7a, 0x79, 0x90, - 0xdb, 0x30, 0xb5, 0xbd, 0x55, 0xac, 0x85, 0x8e, 0x1f, 0xae, 0x7a, 0x5d, 0xde, 0x9d, 0xd3, 0xe2, - 0xec, 0x21, 0xac, 0xdb, 0x01, 0x2b, 0xb0, 0x0f, 0xbd, 0xae, 0x6f, 0x69, 0x78, 0x78, 0xa5, 0x9e, - 0xd2, 0xfb, 0x0d, 0xe7, 0x48, 0xbf, 0x52, 0x2f, 0x60, 0xda, 0x95, 0x7a, 0x01, 0x33, 0xff, 0x9e, - 0x01, 0xcf, 0xc9, 0x2d, 0xbe, 0x91, 0xd2, 0x96, 0x22, 0x1e, 0x53, 0xfb, 0x32, 0xac, 0x7a, 0xd0, - 0xea, 0x3c, 0x27, 0x23, 0x39, 0xb0, 0x81, 0xb8, 0x4c, 0x73, 0x5a, 0x7c, 0x0d, 0x28, 0xf4, 0x3a, - 0x43, 0x84, 0x72, 0xe4, 0xa3, 0x11, 0x0d, 0xbd, 0x0e, 0xb2, 0x40, 0x4a, 0x93, 0xc2, 0x82, 0xda, - 0x38, 0xd9, 0x62, 0xb2, 0x0e, 0xe3, 0x22, 0x5c, 0x4d, 0x2c, 0xf7, 0x32, 0x82, 0x71, 0xc0, 0x37, - 0xad, 0xcc, 0xca, 0x78, 0x11, 0x11, 0xd8, 0x6b, 0x49, 0x1e, 0xe6, 0x16, 0x7f, 0x87, 0x10, 0x2f, - 0xba, 0x3c, 0xa1, 0x44, 0x2b, 0xab, 0xf7, 0xbf, 0x69, 0xc0, 0xc2, 0xe6, 0xfd, 0xd0, 0xa9, 0xb4, - 0x3a, 0x9e, 0x1f, 0x5a, 0xdd, 0xa6, 0x9c, 0x7d, 0x57, 0x20, 0x57, 0x95, 0x9a, 0x1b, 0x3f, 0x0f, - 0x41, 0x93, 0x54, 0x6a, 0x6f, 0x56, 0x54, 0x4a, 0x56, 0x21, 0x27, 0xee, 0x04, 0xc8, 0x57, 0xb9, - 0xa4, 0xb7, 0x4b, 0x67, 0x2c, 0x90, 0xd8, 0xdc, 0xc0, 0x05, 0x45, 0xd0, 0x58, 0x11, 0xb5, 0xf9, - 0xe7, 0x06, 0x9c, 0xef, 0x43, 0x43, 0xde, 0x83, 0x51, 0x74, 0x78, 0x89, 0xbe, 0x7c, 0xbe, 0x4f, - 0x15, 0x61, 0xfd, 0x70, 0xe7, 0x26, 0x77, 0xc3, 0xb6, 0xd8, 0x0f, 0x8b, 0x53, 0x91, 0xaf, 0xc3, - 0x44, 0xa1, 0xd1, 0xd0, 0xde, 0x0e, 0x7b, 0x73, 0x70, 0x2b, 0xaf, 0x47, 0xf8, 0xfc, 0x11, 0x26, - 0x6e, 0xe0, 0x35, 0x1a, 0xe2, 0xf1, 0x25, 0x2b, 0xe6, 0x77, 0xf1, 0x5d, 0x98, 0xd1, 0x91, 0x4f, - 0xe5, 0xe5, 0xf8, 0x55, 0x03, 0xf2, 0x7a, 0x1b, 0x3e, 0x9b, 0xb8, 0x93, 0xb4, 0x61, 0x3e, 0x61, - 0x6f, 0xff, 0x11, 0x38, 0x9b, 0xda, 0xc1, 0xe4, 0x4d, 0x18, 0x2b, 0x74, 0x3a, 0xcc, 0x34, 0x35, - 0xe2, 0x60, 0x06, 0xa7, 0xd3, 0x49, 0x04, 0xaa, 0x0a, 0x24, 0x72, 0x0b, 0x72, 0x28, 0xb7, 0x8c, - 0x20, 0x13, 0xc7, 0xb6, 0xe2, 0x55, 0xae, 0x64, 0x6c, 0xab, 0x44, 0x8c, 0xfa, 0xa5, 0x10, 0x04, - 0xee, 0x41, 0xbb, 0x45, 0xdb, 0xe1, 0x67, 0xd7, 0x2f, 0x71, 0x1d, 0x43, 0xf5, 0xcb, 0x7f, 0x26, - 0x66, 0x4d, 0x92, 0xec, 0x84, 0x67, 0x28, 0x4a, 0x30, 0x5e, 0xe0, 0xe1, 0xd4, 0x42, 0x04, 0x5f, - 0x48, 0x6d, 0x02, 0xc7, 0xd9, 0xb9, 0xc9, 0x77, 0x6d, 0x87, 0x53, 0x58, 0x92, 0x94, 0xdc, 0x81, - 0xc9, 0x62, 0x93, 0x3a, 0xed, 0x6e, 0x67, 0xc8, 0xd7, 0x64, 0x99, 0x6a, 0x6a, 0xe0, 0x82, 0xa5, - 0x12, 0x9a, 0xff, 0x79, 0x16, 0xce, 0xa5, 0x57, 0x4c, 0xbe, 0x11, 0x99, 0xd9, 0xdc, 0x36, 0xf8, - 0xf2, 0xc0, 0x76, 0xa6, 0x82, 0xb9, 0x01, 0xa1, 0xfb, 0x92, 0x84, 0x3d, 0x7e, 0x17, 0xc4, 0x35, - 0x97, 0x84, 0x12, 0x9a, 0xc6, 0x86, 0x5f, 0xef, 0xd8, 0xb9, 0x29, 0x0e, 0x97, 0xc4, 0xed, 0x18, - 0xfe, 0x3f, 0x59, 0x83, 0x99, 0x35, 0x27, 0x08, 0xb7, 0x7c, 0xa7, 0x1d, 0x60, 0x10, 0xea, 0xa9, - 0xf4, 0xf4, 0x04, 0xad, 0xf9, 0x7b, 0x06, 0x5c, 0xec, 0xff, 0x25, 0x64, 0x12, 0xc6, 0xc5, 0xf1, - 0x0c, 0x3f, 0xae, 0xa8, 0x96, 0x37, 0x4a, 0x95, 0x8d, 0xbb, 0x79, 0x83, 0xcc, 0x00, 0x88, 0xb3, - 0x8b, 0x3b, 0xdb, 0x6b, 0xf9, 0x8c, 0x72, 0x7c, 0x91, 0x65, 0x65, 0xc5, 0xb5, 0x72, 0x61, 0xa3, - 0x5c, 0xb2, 0xb7, 0xab, 0xfc, 0x70, 0x06, 0x7f, 0x6f, 0x57, 0x6d, 0x81, 0x33, 0xca, 0x70, 0xaa, - 0xd6, 0x26, 0xa3, 0x67, 0xfc, 0xc6, 0xc8, 0x3c, 0xcc, 0x4a, 0x1c, 0x59, 0xc9, 0x38, 0x39, 0x07, - 0x24, 0x02, 0xc6, 0xc8, 0x39, 0xf3, 0xcf, 0x0c, 0x78, 0x7e, 0x50, 0xc7, 0x91, 0x6f, 0x01, 0x9e, - 0x93, 0x89, 0x91, 0x5c, 0x19, 0xa2, 0xaf, 0x07, 0x14, 0x26, 0xcf, 0xde, 0x42, 0x7e, 0xa6, 0x93, - 0x71, 0xa5, 0x6a, 0x1a, 0xa5, 0x16, 0x75, 0x1b, 0x66, 0x05, 0x5e, 0x1c, 0xcc, 0x49, 0xef, 0xd3, - 0x59, 0x98, 0x2c, 0x54, 0xab, 0x6b, 0x95, 0x62, 0x61, 0xab, 0xb2, 0xb9, 0x91, 0x37, 0xc8, 0x04, - 0x8c, 0xde, 0xb5, 0x36, 0xb7, 0xab, 0xf9, 0x8c, 0xf9, 0x37, 0x0d, 0x98, 0xae, 0xb4, 0x43, 0x7a, - 0xc0, 0x13, 0xaa, 0x3c, 0xe9, 0x42, 0xf0, 0x15, 0x6d, 0x21, 0x58, 0x8c, 0xce, 0x98, 0xa3, 0x0a, - 0x86, 0x5a, 0x05, 0x1e, 0xc2, 0x5c, 0x0f, 0x09, 0xa9, 0xc1, 0x78, 0x61, 0xb7, 0xb6, 0x59, 0x29, - 0x15, 0x45, 0xc3, 0xa4, 0x5e, 0x2c, 0xa0, 0xbd, 0x95, 0x70, 0xdf, 0xf5, 0xc3, 0xc0, 0xf6, 0xdc, - 0x86, 0x92, 0xa3, 0x69, 0xf5, 0x8c, 0x25, 0x39, 0x31, 0x3b, 0x58, 0xa8, 0xf6, 0xa8, 0x35, 0xaf, - 0xc1, 0x62, 0x3f, 0x6e, 0xcc, 0x58, 0xb0, 0xbc, 0x26, 0x2d, 0x58, 0x1b, 0xaa, 0x6b, 0x1c, 0xef, - 0xe8, 0x39, 0x7e, 0x3b, 0x79, 0x47, 0xaf, 0x60, 0x6d, 0x98, 0x7f, 0x27, 0x03, 0xe7, 0x58, 0xbf, - 0x34, 0x69, 0x10, 0x30, 0xb3, 0x9a, 0x59, 0x55, 0xe2, 0x61, 0xb4, 0x2f, 0xc1, 0xd8, 0xe1, 0x10, - 0x9d, 0x9c, 0x93, 0x9d, 0x6c, 0x09, 0x74, 0x42, 0x00, 0xd7, 0x3d, 0xb1, 0xd9, 0xe1, 0xdf, 0xe4, - 0x05, 0x50, 0x92, 0xa7, 0xf1, 0x07, 0xe5, 0xad, 0x89, 0x4e, 0x94, 0x42, 0xed, 0xcb, 0x30, 0x8a, - 0xe1, 0x84, 0x68, 0x89, 0xcc, 0x44, 0xca, 0x52, 0x7a, 0xcb, 0x30, 0xce, 0xd0, 0xe2, 0x04, 0xe4, - 0x06, 0x40, 0x7c, 0x87, 0x4a, 0x58, 0x23, 0xd2, 0x40, 0x8b, 0xae, 0x51, 0x59, 0x13, 0xad, 0x7d, - 0x47, 0xdc, 0xa8, 0xba, 0x06, 0x73, 0x32, 0xcb, 0x60, 0x47, 0xc6, 0xc3, 0xf1, 0xd0, 0x3f, 0x6b, - 0x96, 0x17, 0x54, 0x3a, 0x22, 0x26, 0xce, 0xfc, 0x5f, 0x33, 0x30, 0xb1, 0xcb, 0x76, 0x3d, 0x34, - 0xac, 0x06, 0x1b, 0x6a, 0xcb, 0x30, 0xb9, 0xe6, 0x39, 0x0d, 0xfd, 0x61, 0x1f, 0x74, 0xf4, 0x36, - 0x3d, 0xa7, 0x21, 0xdf, 0xde, 0xb1, 0x54, 0xa4, 0x13, 0x9c, 0xd4, 0x1f, 0xc1, 0x18, 0x8f, 0xa7, - 0x15, 0x69, 0x08, 0xa5, 0xda, 0x13, 0xb5, 0xe8, 0x3a, 0x2f, 0xe6, 0x2a, 0x0a, 0x1e, 0x6a, 0xec, - 0x23, 0x40, 0xdd, 0x84, 0x45, 0x44, 0xae, 0x62, 0x46, 0x8e, 0x0e, 0x67, 0x46, 0x2a, 0x41, 0x53, - 0x63, 0xc3, 0x04, 0x4d, 0x5d, 0x7c, 0x1b, 0x26, 0x95, 0xf6, 0x9c, 0x4a, 0x0b, 0xfa, 0xc9, 0x0c, - 0x4c, 0xe3, 0x57, 0x45, 0xee, 0xa9, 0x67, 0xd3, 0x28, 0xfe, 0x8a, 0x66, 0x14, 0x2f, 0xaa, 0xe3, - 0xc5, 0xbf, 0x6c, 0x80, 0x35, 0xfc, 0x11, 0xcc, 0xf5, 0x20, 0x92, 0xb7, 0x60, 0x94, 0x35, 0x5f, - 0x1a, 0x11, 0xf9, 0xa4, 0x04, 0xc4, 0x51, 0xea, 0xec, 0xc3, 0x03, 0x8b, 0x63, 0x5f, 0xfb, 0x00, - 0x66, 0xe5, 0x81, 0xf1, 0xd6, 0x5a, 0x0d, 0xe3, 0xbb, 0x66, 0x61, 0x72, 0xa7, 0x6c, 0x55, 0xee, - 0x7c, 0x62, 0xdf, 0xd9, 0x5e, 0x5b, 0xcb, 0x9f, 0x21, 0xd3, 0x30, 0x21, 0x00, 0xc5, 0x42, 0xde, - 0x20, 0x53, 0x90, 0xab, 0x6c, 0xd4, 0xca, 0xc5, 0x6d, 0xab, 0x9c, 0xcf, 0x5c, 0x5b, 0x86, 0x99, - 0x38, 0x9f, 0x2a, 0xae, 0xd6, 0xe3, 0x90, 0xb5, 0x0a, 0xbb, 0xf9, 0x33, 0x6c, 0x83, 0xab, 0xde, - 0x2b, 0xd6, 0x6e, 0xde, 0xcc, 0x1b, 0x6c, 0x09, 0xbf, 0x5b, 0xac, 0xda, 0xf7, 0xd6, 0x6b, 0xf9, - 0xcc, 0xb5, 0x2f, 0xc0, 0x1c, 0x5e, 0x4d, 0x5a, 0x73, 0x83, 0x90, 0xb6, 0xa9, 0x8f, 0xd5, 0x4e, - 0x41, 0xae, 0x46, 0x3b, 0x8e, 0xef, 0x84, 0x94, 0xd7, 0xb9, 0xde, 0x6d, 0x86, 0x6e, 0xa7, 0x49, - 0x1f, 0xe5, 0x8d, 0x6b, 0x6f, 0xc3, 0xac, 0xe5, 0x75, 0x43, 0xb7, 0x7d, 0x50, 0x0b, 0x19, 0xc6, - 0xc1, 0x11, 0x39, 0x0b, 0x73, 0xdb, 0x1b, 0x85, 0xf5, 0x95, 0xca, 0xdd, 0xed, 0xcd, 0xed, 0x9a, - 0xbd, 0x5e, 0xd8, 0x2a, 0xae, 0xf2, 0xed, 0x61, 0x7d, 0xb3, 0xb6, 0x65, 0x5b, 0xe5, 0x62, 0x79, - 0x63, 0x2b, 0x6f, 0x5c, 0xfb, 0x19, 0x83, 0xbf, 0xeb, 0x8e, 0xce, 0xba, 0x6d, 0x3c, 0xc0, 0xbd, - 0x04, 0xcf, 0x6f, 0xd7, 0xca, 0x96, 0xbd, 0xb5, 0x79, 0xaf, 0xbc, 0x61, 0x6f, 0xd7, 0x0a, 0x77, - 0x93, 0x41, 0x16, 0x4b, 0xf0, 0x9c, 0x82, 0x61, 0x95, 0x8b, 0x9b, 0x3b, 0x65, 0xcb, 0xae, 0x16, - 0x6a, 0xb5, 0xdd, 0x4d, 0xab, 0x94, 0x37, 0xc8, 0x45, 0x38, 0x97, 0x82, 0xb0, 0x7e, 0xa7, 0x90, - 0xcf, 0xf4, 0x94, 0x6d, 0x94, 0x77, 0x0b, 0x6b, 0xf6, 0xca, 0xe6, 0x56, 0x3e, 0x7b, 0x0d, 0x9f, - 0x07, 0xc5, 0x93, 0x55, 0x1e, 0x03, 0x9d, 0x83, 0x91, 0x8d, 0xcd, 0x8d, 0x72, 0x52, 0x57, 0x98, - 0x82, 0x5c, 0xa1, 0x5a, 0xb5, 0x36, 0x77, 0xca, 0x25, 0xae, 0x29, 0x94, 0xca, 0x1b, 0xac, 0x65, - 0xd9, 0x6b, 0x26, 0xcc, 0x15, 0xa9, 0x1f, 0x96, 0x1f, 0x85, 0xb4, 0xcd, 0x04, 0x11, 0xfb, 0x6e, - 0x1a, 0x26, 0xca, 0x5f, 0xdd, 0x2a, 0x6f, 0xd4, 0xd8, 0x8e, 0x78, 0xe6, 0xda, 0xf3, 0x09, 0x1c, - 0x39, 0x2c, 0xb5, 0xda, 0x6a, 0xfe, 0xcc, 0xb5, 0x6f, 0xc0, 0x94, 0x16, 0xdf, 0x7f, 0x1e, 0xe6, - 0xd5, 0xdf, 0x55, 0xda, 0x6e, 0xb8, 0xed, 0x83, 0xfc, 0x99, 0x64, 0x81, 0xd5, 0x6d, 0xb7, 0x59, - 0x01, 0x7e, 0xbc, 0x5a, 0xb0, 0x45, 0xfd, 0x96, 0xdb, 0x76, 0x42, 0xda, 0xc8, 0x67, 0xae, 0x5d, - 0x87, 0x69, 0xed, 0x50, 0x9a, 0xd5, 0xbb, 0xb6, 0x29, 0xc4, 0x61, 0xbd, 0x5c, 0xaa, 0x6c, 0xaf, - 0xe7, 0x47, 0xd9, 0x67, 0xaf, 0x56, 0xee, 0xae, 0xe6, 0xe1, 0xda, 0x37, 0x60, 0x46, 0x44, 0x39, - 0xae, 0xdf, 0x29, 0xc8, 0x86, 0x6e, 0xde, 0xb9, 0x23, 0x82, 0x3d, 0x98, 0x02, 0x83, 0xbb, 0xfc, - 0xf3, 0xb0, 0x28, 0x7e, 0xd8, 0x85, 0x8d, 0x92, 0xbd, 0x5a, 0xb0, 0x4a, 0xbb, 0x05, 0xab, 0x6c, - 0xdf, 0x2b, 0x7f, 0x92, 0xcf, 0x30, 0xb5, 0x47, 0x85, 0xd8, 0x5b, 0x9b, 0xdb, 0xc5, 0xd5, 0x7c, - 0xf6, 0x9a, 0x0b, 0xf9, 0xa4, 0xa3, 0xba, 0x47, 0x43, 0xb3, 0xb6, 0x37, 0x36, 0x78, 0xaf, 0xcf, - 0xc2, 0xe4, 0xe6, 0xd6, 0x6a, 0xd9, 0x12, 0x81, 0x35, 0x18, 0x49, 0xb3, 0xbd, 0x51, 0xd8, 0xde, - 0x5a, 0xdd, 0xb4, 0x2a, 0x5f, 0x43, 0x45, 0x6d, 0x11, 0x16, 0x6a, 0x6b, 0x85, 0xe2, 0x3d, 0x7b, - 0x63, 0x73, 0xcb, 0xae, 0x6c, 0xd8, 0xc5, 0xd5, 0xc2, 0xc6, 0x46, 0x79, 0x2d, 0x0f, 0xd7, 0xfe, - 0xa9, 0x01, 0xcf, 0x0d, 0xd8, 0x85, 0xc8, 0x9b, 0x70, 0x75, 0xb5, 0x5c, 0x28, 0xad, 0x95, 0x6b, - 0x35, 0x9b, 0xb1, 0x2c, 0x6f, 0x6c, 0x09, 0x1d, 0xc6, 0xae, 0x6d, 0x15, 0xb6, 0x92, 0x12, 0x78, - 0x15, 0x5e, 0x1d, 0x8c, 0x1e, 0x0b, 0xcb, 0x15, 0x78, 0x65, 0x30, 0xaa, 0x10, 0x9e, 0x0c, 0xb9, - 0x06, 0x97, 0x07, 0x63, 0x46, 0x42, 0x97, 0x5d, 0x79, 0xef, 0x8f, 0xfe, 0xe4, 0xc5, 0x33, 0x7f, - 0xf4, 0xa7, 0x2f, 0x1a, 0x7f, 0xfc, 0xa7, 0x2f, 0x1a, 0xff, 0xf3, 0x9f, 0xbe, 0x68, 0x7c, 0xed, - 0xf5, 0x53, 0x24, 0x25, 0xd9, 0x1b, 0x43, 0xa5, 0xfa, 0xd6, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, - 0x03, 0xce, 0x30, 0x7e, 0xb6, 0x30, 0x01, 0x00, + // 19920 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x90, 0x1c, 0x49, + 0x76, 0x18, 0x86, 0xa3, 0xba, 0xe7, 0xa3, 0xe7, 0xcd, 0x57, 0x4f, 0x62, 0x00, 0x0c, 0xb0, 0x1f, + 0x83, 0xad, 0xdd, 0xc5, 0x02, 0xd8, 0x5d, 0x60, 0x31, 0xb8, 0xc5, 0xdd, 0xde, 0x7e, 0xf6, 0x74, + 0x37, 0x30, 0xbd, 0x98, 0x8f, 0xde, 0xea, 0xf9, 0xb8, 0xbd, 0x0f, 0xd6, 0xd5, 0x74, 0xe7, 0xcc, + 0xd4, 0xa1, 0xbb, 0xab, 0xaf, 0xaa, 0x1a, 0xc0, 0xdc, 0x91, 0x41, 0x9e, 0xa4, 0xd3, 0xfd, 0xf8, + 0xa3, 0xc8, 0x23, 0xe5, 0x23, 0x79, 0x92, 0x28, 0x93, 0xc1, 0x90, 0x6c, 0x5a, 0x16, 0x19, 0x0a, + 0xea, 0x0f, 0xca, 0x61, 0x5b, 0x36, 0x23, 0x1c, 0x8c, 0xb3, 0x15, 0xb2, 0xf8, 0x87, 0x1d, 0x0e, + 0x9f, 0x1c, 0x63, 0x93, 0xb4, 0x1d, 0x0e, 0xfc, 0xa1, 0xb0, 0x83, 0x11, 0x8e, 0xd0, 0xc9, 0x74, + 0x38, 0xf2, 0x65, 0x66, 0x55, 0x66, 0x75, 0x75, 0x4f, 0xcf, 0x02, 0x1b, 0x14, 0xd6, 0xfe, 0x07, + 0x98, 0x7e, 0xf9, 0xde, 0xcb, 0xac, 0xcc, 0x97, 0x99, 0xef, 0xbd, 0x7c, 0xf9, 0x12, 0x5e, 0x08, + 0x69, 0x93, 0x76, 0x3c, 0x3f, 0xbc, 0xde, 0xa4, 0xfb, 0x4e, 0xfd, 0xf0, 0x7a, 0x78, 0xd8, 0xa1, + 0x01, 0xff, 0xf7, 0x5a, 0xc7, 0xf7, 0x42, 0x8f, 0x8c, 0xe2, 0x8f, 0x0b, 0xf3, 0xfb, 0xde, 0xbe, + 0x87, 0x90, 0xeb, 0xec, 0x2f, 0x5e, 0x78, 0x61, 0x71, 0xdf, 0xf3, 0xf6, 0x9b, 0xf4, 0x3a, 0xfe, + 0xda, 0xed, 0xee, 0x5d, 0x0f, 0xdd, 0x16, 0x0d, 0x42, 0xa7, 0xd5, 0x11, 0x08, 0x57, 0xa2, 0x0a, + 0x9c, 0x30, 0x64, 0x25, 0xa1, 0xeb, 0xb5, 0xaf, 0xdf, 0xbf, 0xa1, 0xfe, 0x14, 0xa8, 0xaf, 0xa7, + 0xb7, 0xe5, 0x81, 0xef, 0x74, 0x3a, 0xd4, 0x8f, 0xff, 0xe0, 0xe8, 0xe6, 0x1f, 0x64, 0x61, 0xe2, + 0x2e, 0xa5, 0x9d, 0x42, 0xd3, 0xbd, 0x4f, 0xc9, 0x8b, 0x30, 0xb2, 0xee, 0xb4, 0xe8, 0x82, 0x71, + 0xd1, 0xb8, 0x3c, 0xb1, 0x3c, 0xfb, 0xe8, 0x68, 0x71, 0x32, 0xa0, 0xfe, 0x7d, 0xea, 0xdb, 0x6d, + 0xa7, 0x45, 0x2d, 0x2c, 0x24, 0xaf, 0xc2, 0x04, 0xfb, 0x3f, 0xe8, 0x38, 0x75, 0xba, 0x90, 0x41, + 0xcc, 0xe9, 0x47, 0x47, 0x8b, 0x13, 0x6d, 0x09, 0xb4, 0xe2, 0x72, 0x72, 0x09, 0xc6, 0x57, 0xa9, + 0x13, 0xd0, 0x4a, 0x69, 0x21, 0x7b, 0xd1, 0xb8, 0x9c, 0x5d, 0x9e, 0x7a, 0x74, 0xb4, 0x98, 0x6b, + 0x32, 0x90, 0xed, 0x36, 0x2c, 0x59, 0x48, 0x2a, 0x30, 0x5e, 0x7e, 0xd8, 0x71, 0x7d, 0x1a, 0x2c, + 0x8c, 0x5c, 0x34, 0x2e, 0x4f, 0x2e, 0x5d, 0xb8, 0xc6, 0x3b, 0xe5, 0x9a, 0xec, 0x94, 0x6b, 0x9b, + 0xb2, 0x53, 0x96, 0x4f, 0xff, 0xe8, 0x68, 0xf1, 0xd4, 0xa3, 0xa3, 0xc5, 0x71, 0xca, 0x49, 0x7e, + 0xf9, 0x7f, 0x5c, 0x34, 0x2c, 0x49, 0x4f, 0xde, 0x81, 0x91, 0xcd, 0xc3, 0x0e, 0x5d, 0x98, 0xb8, + 0x68, 0x5c, 0x9e, 0x59, 0x7a, 0xfe, 0x1a, 0x1f, 0x86, 0xe8, 0x23, 0xe3, 0xbf, 0x18, 0xd6, 0x72, + 0xee, 0xd1, 0xd1, 0xe2, 0x08, 0x43, 0xb1, 0x90, 0x8a, 0xbc, 0x0e, 0x63, 0x2b, 0x5e, 0x10, 0x56, + 0x4a, 0x0b, 0x80, 0x9f, 0x76, 0xe6, 0xd1, 0xd1, 0xe2, 0xdc, 0x81, 0x17, 0x84, 0xb6, 0xdb, 0x78, + 0xcd, 0x6b, 0xb9, 0x21, 0x6d, 0x75, 0xc2, 0x43, 0x4b, 0x20, 0x99, 0x0f, 0x61, 0x5a, 0xe3, 0x47, + 0x26, 0x61, 0x7c, 0x6b, 0xfd, 0xee, 0xfa, 0xc6, 0xce, 0x7a, 0xfe, 0x14, 0xc9, 0xc1, 0xc8, 0xfa, + 0x46, 0xa9, 0x9c, 0x37, 0xc8, 0x38, 0x64, 0x0b, 0xd5, 0x6a, 0x3e, 0x43, 0xa6, 0x20, 0x57, 0x2a, + 0x6c, 0x16, 0x96, 0x0b, 0xb5, 0x72, 0x3e, 0x4b, 0x4e, 0xc3, 0xec, 0x4e, 0x65, 0xbd, 0xb4, 0xb1, + 0x53, 0xb3, 0x4b, 0xe5, 0xda, 0xdd, 0xcd, 0x8d, 0x6a, 0x7e, 0x84, 0xcc, 0x00, 0xdc, 0xdd, 0x5a, + 0x2e, 0x5b, 0xeb, 0xe5, 0xcd, 0x72, 0x2d, 0x3f, 0x4a, 0xe6, 0x21, 0x2f, 0x49, 0xec, 0x5a, 0xd9, + 0xda, 0xae, 0x14, 0xcb, 0xf9, 0x31, 0xf3, 0x7b, 0x59, 0xc8, 0xad, 0xd1, 0xd0, 0x69, 0x38, 0xa1, + 0x43, 0x9e, 0xd5, 0x06, 0x0e, 0xbf, 0x49, 0x19, 0xb1, 0x17, 0x7b, 0x47, 0x6c, 0xf4, 0xd1, 0xd1, + 0xa2, 0xf1, 0xba, 0x3a, 0x52, 0x6f, 0xc3, 0x64, 0x89, 0x06, 0x75, 0xdf, 0xed, 0x30, 0x69, 0xc2, + 0xd1, 0x9a, 0x58, 0x3e, 0xff, 0xe8, 0x68, 0xf1, 0x4c, 0x23, 0x06, 0x2b, 0x3d, 0xa0, 0x62, 0x93, + 0x0a, 0x8c, 0xad, 0x3a, 0xbb, 0xb4, 0x19, 0x2c, 0x8c, 0x5e, 0xcc, 0x5e, 0x9e, 0x5c, 0x7a, 0x46, + 0xf4, 0xba, 0x6c, 0xe0, 0x35, 0x5e, 0x5a, 0x6e, 0x87, 0xfe, 0xe1, 0xf2, 0xfc, 0xa3, 0xa3, 0xc5, + 0x7c, 0x13, 0x01, 0x6a, 0x8f, 0x72, 0x14, 0x52, 0x8b, 0x25, 0x61, 0xec, 0x58, 0x49, 0x78, 0xee, + 0x47, 0x47, 0x8b, 0x06, 0x1b, 0x21, 0x21, 0x09, 0x31, 0x3f, 0x5d, 0x26, 0x2e, 0x42, 0xa6, 0x52, + 0x5a, 0x18, 0x47, 0x09, 0xcc, 0x3f, 0x3a, 0x5a, 0x9c, 0xd2, 0x06, 0x33, 0x53, 0x29, 0x5d, 0x78, + 0x0b, 0x26, 0x95, 0x36, 0x92, 0x3c, 0x64, 0xef, 0xd1, 0x43, 0xde, 0x9f, 0x16, 0xfb, 0x93, 0xcc, + 0xc3, 0xe8, 0x7d, 0xa7, 0xd9, 0x15, 0x1d, 0x68, 0xf1, 0x1f, 0x5f, 0xcc, 0x7c, 0xc1, 0x30, 0xff, + 0xe6, 0x08, 0xe4, 0x2c, 0x8f, 0xcf, 0x42, 0x72, 0x05, 0x46, 0x6b, 0xa1, 0x13, 0xca, 0xa1, 0x38, + 0xfd, 0xe8, 0x68, 0x71, 0x96, 0xcd, 0x50, 0xaa, 0xd4, 0xc7, 0x31, 0x18, 0x6a, 0xf5, 0xc0, 0x09, + 0xe4, 0x90, 0x20, 0x6a, 0x87, 0x01, 0x54, 0x54, 0xc4, 0x20, 0x97, 0x60, 0x64, 0xcd, 0x6b, 0x50, + 0x31, 0x2a, 0xe4, 0xd1, 0xd1, 0xe2, 0x4c, 0xcb, 0x6b, 0xa8, 0x88, 0x58, 0x4e, 0x5e, 0x83, 0x89, + 0x62, 0xd7, 0xf7, 0x69, 0x9b, 0x09, 0xf0, 0x08, 0x22, 0xcf, 0x3c, 0x3a, 0x5a, 0x84, 0x3a, 0x07, + 0xb2, 0x29, 0x17, 0x23, 0xb0, 0xae, 0xae, 0x85, 0x8e, 0x1f, 0xd2, 0xc6, 0xc2, 0xe8, 0x50, 0x5d, + 0xcd, 0x26, 0xdd, 0x5c, 0xc0, 0x49, 0x92, 0x5d, 0x2d, 0x38, 0x91, 0x15, 0x98, 0xbc, 0xe3, 0x3b, + 0x75, 0x5a, 0xa5, 0xbe, 0xeb, 0x35, 0x70, 0x0c, 0xb3, 0xcb, 0x97, 0x1e, 0x1d, 0x2d, 0x9e, 0xdd, + 0x67, 0x60, 0xbb, 0x83, 0xf0, 0x98, 0xfa, 0x27, 0x47, 0x8b, 0xb9, 0x52, 0xd7, 0xc7, 0xde, 0xb3, + 0x54, 0x52, 0xf2, 0x75, 0x36, 0x24, 0x41, 0x88, 0x5d, 0x4b, 0x1b, 0x38, 0x7a, 0x83, 0x9b, 0x68, + 0x8a, 0x26, 0x9e, 0x6d, 0x3a, 0x41, 0x68, 0xfb, 0x9c, 0x2e, 0xd1, 0x4e, 0x95, 0x25, 0xd9, 0x80, + 0x5c, 0xad, 0x7e, 0x40, 0x1b, 0xdd, 0x26, 0x5d, 0xc8, 0x21, 0xfb, 0x73, 0x42, 0x70, 0xe5, 0x78, + 0xca, 0xe2, 0xe5, 0x0b, 0x82, 0x37, 0x09, 0x04, 0x44, 0xe9, 0xfb, 0x88, 0xc9, 0x17, 0x73, 0x3f, + 0xfc, 0xad, 0xc5, 0x53, 0x3f, 0xf7, 0x3f, 0x5c, 0x3c, 0x65, 0xfe, 0x41, 0x06, 0xf2, 0x49, 0x26, + 0x64, 0x0f, 0xa6, 0xb7, 0x3a, 0x0d, 0x27, 0xa4, 0xc5, 0xa6, 0x4b, 0xdb, 0x61, 0x80, 0x42, 0x32, + 0xf8, 0x9b, 0x5e, 0x12, 0xf5, 0x2e, 0x74, 0x91, 0xd0, 0xae, 0x73, 0xca, 0xc4, 0x57, 0xe9, 0x6c, + 0xe3, 0x7a, 0x6a, 0xb8, 0x7a, 0x07, 0x28, 0x61, 0x27, 0xab, 0x87, 0xaf, 0xfb, 0x7d, 0xea, 0x11, + 0x6c, 0x85, 0x00, 0xb5, 0x1b, 0xbb, 0x87, 0x28, 0x99, 0xc3, 0x0b, 0x10, 0x23, 0x49, 0x11, 0x20, + 0x06, 0x36, 0xff, 0x67, 0x03, 0x66, 0x2c, 0x1a, 0x78, 0x5d, 0xbf, 0x4e, 0x57, 0xa8, 0xd3, 0xa0, + 0x3e, 0x13, 0xff, 0xbb, 0x6e, 0xbb, 0x21, 0xe6, 0x14, 0x8a, 0xff, 0x3d, 0xb7, 0xad, 0x4e, 0x61, + 0x2c, 0x27, 0x6f, 0xc0, 0x78, 0xad, 0xbb, 0x8b, 0xa8, 0x7c, 0x4e, 0x9d, 0xc5, 0x11, 0xeb, 0xee, + 0xda, 0x09, 0x74, 0x89, 0x46, 0xae, 0xc3, 0xf8, 0x36, 0xf5, 0x83, 0x78, 0xc5, 0xc3, 0xf5, 0xfe, + 0x3e, 0x07, 0xa9, 0x04, 0x02, 0x8b, 0xdc, 0x89, 0x57, 0x5d, 0xb1, 0x53, 0xcd, 0x26, 0xd6, 0xba, + 0x58, 0x54, 0x5a, 0x02, 0xa2, 0x8a, 0x8a, 0xc4, 0x32, 0x7f, 0x25, 0x03, 0xf9, 0x92, 0x13, 0x3a, + 0xbb, 0x4e, 0x20, 0xfa, 0x73, 0xfb, 0x26, 0x5b, 0xc7, 0x95, 0x0f, 0xc5, 0x75, 0x9c, 0xb5, 0xfc, + 0x13, 0x7f, 0xde, 0xcb, 0xc9, 0xcf, 0x9b, 0x64, 0xdb, 0xa6, 0xf8, 0xbc, 0xf8, 0xa3, 0xde, 0x3d, + 0xfe, 0xa3, 0xf2, 0xe2, 0xa3, 0x72, 0xf2, 0xa3, 0xe2, 0x4f, 0x21, 0xef, 0xc2, 0x48, 0xad, 0x43, + 0xeb, 0x62, 0x11, 0x91, 0x6b, 0xbf, 0xfe, 0x71, 0x0c, 0x61, 0xfb, 0xe6, 0xf2, 0x94, 0x60, 0x33, + 0x12, 0x74, 0x68, 0xdd, 0x42, 0x32, 0x65, 0xd2, 0xfc, 0x97, 0x63, 0x30, 0x9f, 0x46, 0x46, 0xde, + 0xd5, 0x37, 0x27, 0xde, 0x3d, 0xcf, 0xf4, 0xdd, 0x9c, 0x16, 0x0c, 0x7d, 0x7b, 0xba, 0x0a, 0xb9, + 0x2a, 0x13, 0xc8, 0xba, 0xd7, 0x14, 0x3d, 0xc7, 0x56, 0xc5, 0x5c, 0x47, 0xc2, 0x0c, 0x2b, 0x2a, + 0x27, 0xcf, 0x40, 0x76, 0xcb, 0xaa, 0x88, 0xee, 0x9a, 0x78, 0x74, 0xb4, 0x98, 0xed, 0xfa, 0xee, + 0x82, 0x61, 0x31, 0x28, 0xb9, 0x0e, 0x63, 0xc5, 0x42, 0x91, 0xfa, 0x21, 0x76, 0xd3, 0xd4, 0xf2, + 0x39, 0x26, 0x2d, 0x75, 0xc7, 0xae, 0x53, 0x3f, 0xd4, 0xaa, 0x17, 0x68, 0xe4, 0x55, 0xc8, 0x16, + 0x76, 0x6a, 0xa2, 0x67, 0x40, 0xf4, 0x4c, 0x61, 0xa7, 0xb6, 0x3c, 0x2d, 0x3a, 0x22, 0xeb, 0x3c, + 0x08, 0x18, 0xf7, 0xc2, 0x4e, 0x4d, 0x1d, 0xad, 0xb1, 0x01, 0xa3, 0x75, 0x19, 0x72, 0x4c, 0xfb, + 0x60, 0x1b, 0x3c, 0x2e, 0x8a, 0x13, 0x5c, 0xa9, 0x3a, 0x10, 0x30, 0x2b, 0x2a, 0x25, 0x2f, 0x46, + 0xca, 0x4c, 0x2e, 0xe6, 0x27, 0x94, 0x19, 0xa9, 0xc2, 0x90, 0x87, 0x30, 0x5d, 0x3a, 0x6c, 0x3b, + 0x2d, 0xb7, 0x2e, 0xb6, 0xf0, 0x09, 0xdc, 0xc2, 0xaf, 0x0d, 0x18, 0xc6, 0x6b, 0x1a, 0x01, 0xdf, + 0xd5, 0xe5, 0xe2, 0xbb, 0xd0, 0xe0, 0x65, 0x76, 0x72, 0x87, 0x5f, 0x30, 0x2c, 0xbd, 0x22, 0x36, + 0x97, 0xe4, 0x12, 0x89, 0xda, 0x56, 0x2c, 0x76, 0x12, 0x1c, 0xcf, 0x25, 0x5f, 0x40, 0xd4, 0xb9, + 0x14, 0x6d, 0xba, 0xef, 0x42, 0xf6, 0x4e, 0xb1, 0xba, 0x30, 0x89, 0x3c, 0x88, 0xe0, 0x71, 0xa7, + 0x58, 0x2d, 0x36, 0xbd, 0x6e, 0xa3, 0xf6, 0xd1, 0xea, 0xf2, 0x39, 0xc1, 0x66, 0x7a, 0xbf, 0xde, + 0xd1, 0x5a, 0xc4, 0xe8, 0x48, 0x19, 0x72, 0xf2, 0x2b, 0x17, 0xa6, 0x90, 0xc7, 0x5c, 0xe2, 0xe3, + 0xb7, 0x6f, 0xf2, 0xb9, 0xd6, 0x10, 0xbf, 0xd5, 0x56, 0x48, 0x1c, 0x72, 0x13, 0xa5, 0xec, 0xe1, + 0x61, 0xa5, 0x14, 0x2c, 0x4c, 0x5f, 0xcc, 0x5e, 0x9e, 0x40, 0xf1, 0x38, 0xdd, 0x61, 0x30, 0xdb, + 0x6d, 0xa8, 0xca, 0x4e, 0x84, 0x78, 0x61, 0x07, 0x48, 0x6f, 0x67, 0xa6, 0xa8, 0x1f, 0xaf, 0xaa, + 0xea, 0xc7, 0xe4, 0xd2, 0x19, 0xd1, 0xc0, 0xa2, 0xd7, 0x6a, 0x39, 0xed, 0x06, 0xd2, 0x6e, 0x2f, + 0xa9, 0x5a, 0x49, 0x01, 0x66, 0xe2, 0xd6, 0xaf, 0xba, 0x41, 0x48, 0xae, 0xc3, 0x84, 0x84, 0xb0, + 0x9d, 0x27, 0x9b, 0xfa, 0x9d, 0x56, 0x8c, 0x63, 0xfe, 0x51, 0x06, 0x20, 0x2e, 0x79, 0x4a, 0x17, + 0xa7, 0xcf, 0x6b, 0x8b, 0xd3, 0x99, 0xa4, 0x54, 0xf7, 0x5d, 0x96, 0xc8, 0xfb, 0x30, 0xc6, 0xf4, + 0xb4, 0xae, 0xd4, 0x43, 0xcf, 0x25, 0x49, 0xb1, 0x70, 0xfb, 0xe6, 0xf2, 0x8c, 0x20, 0x1e, 0x0b, + 0x10, 0x62, 0x09, 0x32, 0x65, 0x5d, 0xfb, 0xfd, 0xd1, 0x78, 0x30, 0xc4, 0x8a, 0x76, 0x59, 0x59, + 0x92, 0x8c, 0x78, 0x12, 0xcb, 0x25, 0x49, 0x59, 0x90, 0xce, 0xf3, 0x05, 0x89, 0x77, 0xea, 0xb8, + 0x58, 0x90, 0x92, 0xcb, 0x11, 0xef, 0xc0, 0x63, 0x97, 0xa3, 0x4e, 0x72, 0xae, 0x8f, 0xa0, 0x18, + 0x5c, 0x4e, 0xed, 0x95, 0xb4, 0x59, 0x7e, 0xf1, 0xb8, 0x59, 0x9e, 0x9c, 0xe3, 0x37, 0xfb, 0x2d, + 0x80, 0x67, 0xe4, 0x94, 0x74, 0x1e, 0xa8, 0xe4, 0xb8, 0x10, 0xbe, 0xcd, 0xe7, 0xf3, 0x58, 0xdf, + 0xf9, 0x7c, 0x26, 0x75, 0x3e, 0xf3, 0xd9, 0xfc, 0x36, 0x8c, 0x16, 0xbe, 0xd5, 0xf5, 0xa9, 0x50, + 0x18, 0xa7, 0x64, 0x9d, 0x0c, 0x16, 0x2d, 0x04, 0xb3, 0x0e, 0xfb, 0xa9, 0x2a, 0xda, 0x58, 0xce, + 0x6a, 0xde, 0x5c, 0xad, 0x09, 0x65, 0x90, 0x24, 0xba, 0x65, 0x73, 0x55, 0x69, 0x76, 0xa8, 0x7d, + 0x35, 0xa3, 0x22, 0xd7, 0x21, 0x53, 0x28, 0xa1, 0xdd, 0x39, 0xb9, 0x34, 0x21, 0xab, 0x2d, 0x2d, + 0xcf, 0x0b, 0x92, 0x29, 0x47, 0x33, 0x3a, 0x0a, 0x25, 0xb2, 0x0c, 0xa3, 0x6b, 0x87, 0xb5, 0x8f, + 0x56, 0xc5, 0xea, 0x77, 0x5a, 0xca, 0x35, 0x83, 0x6d, 0xe0, 0xd6, 0x15, 0xc4, 0x2d, 0x6e, 0x1d, + 0x06, 0xdf, 0x6c, 0xaa, 0x2d, 0x46, 0xb4, 0x4f, 0x6f, 0x01, 0xf9, 0x7b, 0xaa, 0x82, 0x22, 0x64, + 0x9d, 0x99, 0xc7, 0x42, 0xe2, 0x8c, 0x58, 0x5d, 0xea, 0x91, 0xb8, 0x48, 0xde, 0xae, 0xf0, 0xd1, + 0xcf, 0xf4, 0x8c, 0xfe, 0xa4, 0xb2, 0xfd, 0xf1, 0x31, 0x8f, 0xfa, 0x22, 0xfb, 0x89, 0xfb, 0x82, + 0xbc, 0x0f, 0x53, 0x6b, 0x4e, 0xdb, 0xd9, 0xa7, 0x8d, 0xad, 0x80, 0xa9, 0xbd, 0x23, 0xb8, 0x0a, + 0x33, 0x3d, 0xe1, 0x5c, 0x8b, 0xc3, 0xed, 0x6e, 0xa0, 0x69, 0xb5, 0x96, 0x46, 0x40, 0x6e, 0x48, + 0xd9, 0x19, 0x4d, 0x91, 0x1d, 0xb9, 0x65, 0x8f, 0xa2, 0xec, 0x08, 0x89, 0x31, 0x7f, 0x38, 0x86, + 0xdf, 0x48, 0x5e, 0x83, 0x31, 0x8b, 0xee, 0xc7, 0xda, 0x09, 0x5a, 0xb9, 0x3e, 0x42, 0xd4, 0x8e, + 0xe1, 0x38, 0xb8, 0xf5, 0xd1, 0x46, 0x70, 0xe0, 0xee, 0x85, 0xa2, 0x77, 0xa2, 0xad, 0x4f, 0x80, + 0x95, 0xad, 0x4f, 0x40, 0xb4, 0xad, 0x4f, 0xc0, 0xd8, 0xfc, 0xb2, 0x4a, 0x35, 0xd1, 0x69, 0xb2, + 0x87, 0xad, 0x92, 0x22, 0xa8, 0xbe, 0xb6, 0xf3, 0x30, 0x6c, 0x72, 0x0b, 0x26, 0x0a, 0xf5, 0xba, + 0xd7, 0x55, 0xcc, 0xc4, 0x85, 0x47, 0x47, 0x8b, 0xf3, 0x0e, 0x07, 0xea, 0xae, 0x8e, 0x18, 0x95, + 0xd4, 0x60, 0xb2, 0xcc, 0x6c, 0x2b, 0xb7, 0xe8, 0xd4, 0x0f, 0x64, 0x27, 0xc9, 0x59, 0xa2, 0x94, + 0x44, 0xba, 0xfe, 0x19, 0x8a, 0xc0, 0x3a, 0x03, 0xaa, 0xbe, 0x03, 0x05, 0x97, 0x6c, 0xc2, 0x64, + 0x8d, 0xd6, 0x7d, 0x1a, 0xd6, 0x42, 0xcf, 0xa7, 0x89, 0x49, 0xaf, 0x94, 0x2c, 0x3f, 0x2f, 0xcd, + 0xbb, 0x00, 0x81, 0x76, 0xc0, 0xa0, 0x2a, 0x57, 0x05, 0x99, 0xeb, 0xe9, 0x2d, 0xcf, 0x3f, 0x2c, + 0x2d, 0x8b, 0x85, 0x20, 0xde, 0x35, 0x38, 0x58, 0xd5, 0xd3, 0x19, 0xa4, 0xb1, 0xab, 0xeb, 0xe9, + 0x1c, 0x0b, 0x47, 0xaa, 0x54, 0xc3, 0xfd, 0x5a, 0x2c, 0x0b, 0xb3, 0x71, 0x2f, 0x23, 0x58, 0x19, + 0xa9, 0x46, 0x80, 0xbb, 0xbd, 0x36, 0x52, 0x02, 0x8b, 0x74, 0x80, 0xc8, 0x51, 0xe3, 0xba, 0x54, + 0x93, 0x06, 0x81, 0x58, 0x2d, 0xce, 0x27, 0x06, 0x3f, 0x46, 0x58, 0x7e, 0x59, 0x30, 0x7f, 0x4e, + 0x8a, 0x81, 0x30, 0xcd, 0x58, 0xa1, 0x52, 0x4f, 0x0a, 0x6f, 0xf2, 0x16, 0x40, 0xf9, 0x61, 0x48, + 0xfd, 0xb6, 0xd3, 0x8c, 0xfc, 0x59, 0xe8, 0xd1, 0xa1, 0x02, 0xaa, 0x0f, 0xb4, 0x82, 0x4c, 0x8a, + 0x30, 0x5d, 0x08, 0x82, 0x6e, 0x8b, 0x5a, 0x5e, 0x93, 0x16, 0xac, 0x75, 0xd4, 0xad, 0x26, 0x96, + 0x9f, 0x7b, 0x74, 0xb4, 0x78, 0xde, 0xc1, 0x02, 0xdb, 0xf7, 0x9a, 0xd4, 0x76, 0x7c, 0x55, 0xba, + 0x75, 0x1a, 0xf3, 0xdb, 0xda, 0xc8, 0x32, 0xa9, 0xbb, 0x4b, 0x0f, 0xab, 0x3e, 0xdd, 0x73, 0x1f, + 0x8a, 0x49, 0x82, 0x52, 0x77, 0x8f, 0x1e, 0xda, 0x1d, 0x84, 0xaa, 0x52, 0x17, 0xa1, 0x92, 0xcf, + 0x41, 0xee, 0xee, 0x5a, 0xed, 0x2e, 0x3d, 0xac, 0x94, 0xc4, 0x2e, 0xc8, 0xc9, 0x5a, 0x81, 0xcd, + 0x48, 0xb5, 0x6f, 0x88, 0x30, 0xcd, 0xe5, 0x78, 0x86, 0xb1, 0x9a, 0x8b, 0xcd, 0x6e, 0x10, 0x52, + 0xbf, 0x52, 0x52, 0x6b, 0xae, 0x73, 0x60, 0x42, 0xde, 0x23, 0x54, 0xf3, 0x5f, 0x1a, 0x38, 0xbb, + 0x58, 0x47, 0x56, 0xda, 0xcc, 0x6c, 0xad, 0xd3, 0x88, 0x01, 0x76, 0xa4, 0x2b, 0xa0, 0x89, 0x8e, + 0x8c, 0x91, 0xf5, 0xaa, 0x33, 0x43, 0x57, 0xcd, 0xaa, 0x94, 0x46, 0xb0, 0xf0, 0x9d, 0x8a, 0x2a, + 0x7d, 0x01, 0x4d, 0x54, 0x19, 0x23, 0x93, 0x4b, 0x30, 0x5e, 0x29, 0xac, 0x15, 0xba, 0xe1, 0x01, + 0xce, 0xed, 0x1c, 0xd7, 0x2c, 0x5c, 0xa7, 0x65, 0x3b, 0xdd, 0xf0, 0xc0, 0x92, 0x85, 0xe6, 0x1f, + 0x1a, 0xb1, 0x68, 0x33, 0x13, 0x5b, 0xf1, 0x20, 0xa2, 0x89, 0xcd, 0x4c, 0x08, 0xd5, 0xc4, 0x46, + 0x5f, 0xa2, 0x05, 0xa4, 0xd8, 0x0d, 0x42, 0xaf, 0x55, 0x6e, 0x37, 0x3a, 0x9e, 0xdb, 0x0e, 0x91, + 0x8a, 0x7f, 0x98, 0xf9, 0xe8, 0x68, 0xf1, 0xf9, 0x3a, 0x96, 0xda, 0x54, 0x14, 0xdb, 0x09, 0x2e, + 0x29, 0xd4, 0x8f, 0xf1, 0xad, 0xe6, 0x7f, 0x95, 0xd1, 0x96, 0x24, 0xd6, 0x3c, 0x8b, 0x76, 0x9a, + 0x6e, 0x1d, 0x0d, 0x83, 0x3b, 0xbe, 0xd7, 0xed, 0x44, 0x23, 0x86, 0xcd, 0xf3, 0xe3, 0x52, 0x7b, + 0x9f, 0x15, 0xeb, 0xbc, 0x53, 0xa8, 0xc9, 0x07, 0x30, 0xc5, 0x76, 0x07, 0xf1, 0x33, 0x58, 0xc8, + 0xe0, 0xae, 0xf2, 0x2c, 0x3a, 0x4b, 0x02, 0xea, 0x47, 0x6c, 0xb4, 0x6d, 0x45, 0xa5, 0x20, 0x0d, + 0x58, 0xd8, 0xf4, 0x9d, 0x76, 0xe0, 0x86, 0xe5, 0x76, 0xdd, 0x3f, 0xc4, 0xdd, 0xac, 0xdc, 0x76, + 0x76, 0x9b, 0xb4, 0x81, 0x9f, 0x9b, 0x5b, 0xbe, 0xfc, 0xe8, 0x68, 0xf1, 0xa5, 0x90, 0xe3, 0xd8, + 0x34, 0x42, 0xb2, 0x29, 0xc7, 0x52, 0x38, 0xf7, 0xe5, 0xc4, 0x76, 0x3f, 0xd9, 0xad, 0xe8, 0x00, + 0x1f, 0x89, 0xac, 0xe4, 0x73, 0xd1, 0x68, 0xb0, 0x65, 0x46, 0x6d, 0xa6, 0x4a, 0x60, 0xfe, 0x9f, + 0x46, 0xbc, 0x68, 0x92, 0x77, 0x60, 0x52, 0x48, 0xa3, 0x22, 0x17, 0x17, 0xd8, 0xf2, 0x2b, 0x45, + 0x37, 0x31, 0xb2, 0x2a, 0x3a, 0xb3, 0x06, 0x0a, 0xc5, 0x55, 0x45, 0x36, 0xd0, 0x1a, 0x70, 0xea, + 0xcd, 0x24, 0x95, 0x44, 0x63, 0x42, 0xb0, 0xb9, 0x5a, 0xd3, 0x7b, 0x05, 0x85, 0x20, 0x6c, 0x06, + 0x29, 0xdd, 0xa0, 0x20, 0x3f, 0xfe, 0x87, 0xff, 0x77, 0x46, 0xda, 0xda, 0x4c, 0x96, 0x61, 0x7a, + 0xc7, 0xf3, 0xef, 0xe1, 0xf8, 0x2a, 0x9d, 0x80, 0x23, 0xff, 0x40, 0x16, 0x24, 0x3f, 0x48, 0x27, + 0x51, 0xdb, 0xa6, 0xf4, 0x86, 0xde, 0xb6, 0x04, 0x07, 0x8d, 0x80, 0x8d, 0x43, 0xc4, 0x31, 0x9a, + 0x1d, 0x38, 0x0e, 0x71, 0x13, 0x34, 0x11, 0x56, 0xd1, 0xcd, 0x9f, 0x33, 0x60, 0x52, 0x51, 0x9c, + 0xd9, 0x72, 0x54, 0xf5, 0xbd, 0x6f, 0xd0, 0x7a, 0xa8, 0xaf, 0x84, 0x1d, 0x0e, 0x4c, 0x2c, 0x47, + 0x11, 0x6a, 0x62, 0x05, 0xcc, 0x9c, 0x60, 0x05, 0x34, 0xff, 0x0f, 0x43, 0x28, 0x55, 0x43, 0xaf, + 0x31, 0xfa, 0x7a, 0x90, 0x39, 0xc9, 0xda, 0xf7, 0x01, 0x8c, 0x5a, 0xb4, 0xe1, 0x06, 0x42, 0x21, + 0x9a, 0x53, 0x15, 0x38, 0x2c, 0x88, 0x75, 0x48, 0x9f, 0xfd, 0x54, 0x75, 0x48, 0x2c, 0x67, 0x3b, + 0x5f, 0x25, 0xb8, 0xdd, 0xa4, 0x0f, 0x5d, 0x2e, 0x09, 0x62, 0x0d, 0xc5, 0x9d, 0xcf, 0x0d, 0xec, + 0x3d, 0x56, 0x22, 0xb6, 0x60, 0x75, 0xd4, 0x35, 0x1a, 0xf3, 0x63, 0x80, 0xb8, 0x4a, 0x72, 0x17, + 0xf2, 0x62, 0x6e, 0xb8, 0xed, 0xfd, 0xaa, 0xd7, 0x74, 0xeb, 0x42, 0x33, 0x5f, 0x5e, 0x7c, 0x74, + 0xb4, 0xf8, 0x4c, 0x3d, 0x2a, 0xb3, 0x3b, 0x58, 0xa8, 0xf0, 0xed, 0x21, 0x34, 0xff, 0xfd, 0x0c, + 0xb3, 0x32, 0x58, 0x1f, 0xdd, 0xa5, 0x87, 0xa1, 0xb3, 0x7b, 0xdb, 0x6d, 0x52, 0x75, 0x4b, 0xba, + 0x87, 0x50, 0x7b, 0xcf, 0xd5, 0x5c, 0xd4, 0x0a, 0x32, 0xb9, 0x09, 0xb9, 0xbb, 0xfe, 0xee, 0x9b, + 0x48, 0x98, 0x89, 0xec, 0xc6, 0xd3, 0xf7, 0xfc, 0xdd, 0x37, 0x93, 0x64, 0x11, 0x22, 0x31, 0x61, + 0xac, 0xe4, 0xb5, 0x1c, 0x57, 0xda, 0xea, 0xc0, 0x0c, 0xde, 0x06, 0x42, 0x2c, 0x51, 0xc2, 0x2c, + 0xd5, 0x5a, 0x75, 0x5d, 0x4c, 0x3f, 0xb4, 0x54, 0x83, 0x4e, 0xdb, 0x62, 0x30, 0x56, 0xe7, 0x6a, + 0xa9, 0x50, 0x45, 0xcb, 0x61, 0x34, 0xae, 0xb3, 0xd9, 0x70, 0x3a, 0x49, 0xdb, 0x21, 0x42, 0x24, + 0xef, 0xc2, 0xe4, 0xdd, 0x52, 0x71, 0xc5, 0x0b, 0xf8, 0xd4, 0x19, 0x8b, 0xa7, 0xce, 0xbd, 0x46, + 0xdd, 0x46, 0x3f, 0x56, 0x72, 0x0d, 0x52, 0xf0, 0xcd, 0xdf, 0x35, 0x60, 0x52, 0x31, 0xdd, 0xc8, + 0xe7, 0xc4, 0x21, 0x8a, 0x81, 0x07, 0x83, 0x67, 0x7b, 0x8d, 0x3b, 0x56, 0xca, 0xfd, 0x1a, 0x2d, + 0xaf, 0x41, 0xc5, 0x91, 0x4a, 0x6c, 0xf1, 0x64, 0x86, 0xb1, 0x78, 0xde, 0x02, 0xe0, 0x32, 0x80, + 0x4d, 0x56, 0xf6, 0x32, 0xe5, 0x20, 0x55, 0x1d, 0x97, 0x18, 0xd9, 0xb4, 0x60, 0x4a, 0xb5, 0x76, + 0xd8, 0xf2, 0x23, 0x1c, 0xc3, 0xc2, 0x4b, 0xa2, 0x2c, 0x3f, 0x82, 0x5b, 0xaf, 0xa3, 0x5a, 0x27, + 0x31, 0xff, 0x8a, 0x11, 0x4f, 0xdc, 0xed, 0x1b, 0xe4, 0x6d, 0x18, 0xe3, 0x2e, 0x75, 0x71, 0xf2, + 0x70, 0x26, 0xd2, 0x3b, 0x55, 0x7f, 0x3b, 0x77, 0x87, 0xfc, 0x31, 0x3f, 0x5a, 0x3b, 0x65, 0x09, + 0x92, 0xc8, 0x93, 0xa2, 0x1b, 0x90, 0x92, 0x3b, 0xfa, 0x0c, 0x6e, 0xa4, 0x79, 0x52, 0xcc, 0x7f, + 0x37, 0x0b, 0x33, 0x3a, 0x9a, 0xea, 0x77, 0x37, 0x86, 0xf2, 0xbb, 0x7f, 0x00, 0x39, 0xf6, 0x65, + 0x6e, 0x9d, 0xca, 0x0d, 0xf8, 0x25, 0xf4, 0x2f, 0x09, 0x98, 0x20, 0x09, 0x3b, 0x87, 0x3f, 0x39, + 0x5a, 0x84, 0xda, 0x61, 0x10, 0xd2, 0x16, 0x53, 0x43, 0xad, 0x88, 0x8a, 0x2c, 0x29, 0x6e, 0xd3, + 0x6c, 0xbc, 0x27, 0x49, 0xb7, 0xa9, 0x2a, 0x81, 0x91, 0x03, 0xf5, 0x75, 0x18, 0x63, 0xaa, 0x52, + 0x64, 0x25, 0x61, 0x2b, 0x99, 0x16, 0x95, 0x38, 0x0d, 0xe6, 0x48, 0x64, 0x07, 0x72, 0xab, 0x4e, + 0x10, 0xd6, 0x28, 0x6d, 0x0f, 0x71, 0xa2, 0xb6, 0x28, 0xba, 0xea, 0x34, 0x1e, 0x57, 0x05, 0x94, + 0xb6, 0x13, 0x47, 0x22, 0x11, 0x33, 0xf2, 0x35, 0x80, 0xa2, 0xd7, 0x0e, 0x7d, 0xaf, 0xb9, 0xea, + 0xed, 0x2f, 0x8c, 0xa1, 0xd3, 0xe6, 0xf9, 0xc4, 0x00, 0xc4, 0x08, 0xdc, 0x55, 0x13, 0xd9, 0x60, + 0x75, 0x5e, 0x60, 0x37, 0xbd, 0x7d, 0x55, 0xf2, 0x62, 0x7c, 0xf3, 0x27, 0x19, 0x38, 0xd7, 0x87, + 0x0d, 0x5b, 0xb4, 0x71, 0x53, 0x55, 0x16, 0xed, 0xc4, 0x5e, 0xca, 0x0f, 0xce, 0xf9, 0x11, 0x2b, + 0x93, 0x8d, 0x91, 0xf4, 0x23, 0x56, 0xf2, 0x21, 0x8c, 0xb0, 0x8f, 0x1f, 0xe2, 0xa8, 0x48, 0x1a, + 0x54, 0x33, 0xa1, 0xab, 0x0e, 0x0c, 0x76, 0x0a, 0xf2, 0x20, 0x9f, 0x83, 0xec, 0xe6, 0xe6, 0x2a, + 0x8e, 0x4a, 0x16, 0x15, 0xbb, 0xe9, 0x30, 0x6c, 0x6a, 0x87, 0x8a, 0xd3, 0x8c, 0xf6, 0x5a, 0x74, + 0xb2, 0xc8, 0xd0, 0xc9, 0x97, 0x12, 0xc7, 0xd4, 0x57, 0x07, 0x77, 0xe1, 0xf0, 0xa7, 0xd6, 0x8f, + 0x73, 0x7c, 0xec, 0xc7, 0x93, 0xe3, 0xb6, 0xdb, 0x0c, 0xa9, 0x4f, 0x2e, 0x70, 0x59, 0x8f, 0xad, + 0x15, 0x2b, 0xfa, 0x4d, 0x16, 0xe2, 0x89, 0xc3, 0x39, 0x45, 0x33, 0xe4, 0xaa, 0x32, 0x43, 0xb2, + 0x38, 0x43, 0x66, 0xfa, 0xcd, 0x05, 0xf3, 0x3b, 0x19, 0x59, 0xc5, 0xf6, 0xd2, 0x53, 0xea, 0xd7, + 0x7d, 0x53, 0xf3, 0xeb, 0x9e, 0x8e, 0xfc, 0x05, 0xd1, 0x29, 0xc5, 0xd2, 0x31, 0x87, 0x4d, 0x6f, + 0xc1, 0x94, 0xec, 0x02, 0x74, 0x8f, 0x5f, 0x81, 0x71, 0x79, 0x5c, 0xca, 0x9d, 0xe3, 0xb3, 0x1a, + 0xcf, 0xed, 0x25, 0x4b, 0x96, 0x9b, 0x7f, 0x7b, 0x54, 0xd2, 0xf2, 0x9a, 0x58, 0x17, 0x16, 0x1a, + 0x0d, 0x5f, 0xed, 0x42, 0xa7, 0xd1, 0xf0, 0x2d, 0x84, 0xb2, 0x3d, 0xa1, 0xda, 0xdd, 0x6d, 0xba, + 0x75, 0xc4, 0x51, 0xf4, 0x99, 0x0e, 0x42, 0x6d, 0x86, 0xaa, 0xce, 0xcc, 0x18, 0x59, 0x3b, 0xeb, + 0xc9, 0x0e, 0x3c, 0xeb, 0xf9, 0x29, 0x98, 0x28, 0xb6, 0x1a, 0x9a, 0x5b, 0xd7, 0x4c, 0xe9, 0x94, + 0x6b, 0x11, 0x12, 0x17, 0xeb, 0x67, 0x45, 0x1f, 0xcd, 0xd7, 0x5b, 0x8d, 0x5e, 0x67, 0x6e, 0xcc, + 0x52, 0x3b, 0xac, 0x19, 0x7d, 0x9c, 0xc3, 0x9a, 0x5b, 0x30, 0xb1, 0x15, 0xd0, 0xcd, 0x6e, 0xbb, + 0x4d, 0x9b, 0xb8, 0xa7, 0xe7, 0xb8, 0x0a, 0xda, 0x0d, 0xa8, 0x1d, 0x22, 0x54, 0x6d, 0x40, 0x84, + 0xaa, 0x8a, 0xd5, 0xf8, 0x00, 0xb1, 0xfa, 0x1c, 0x8c, 0x14, 0x3a, 0x1d, 0x79, 0x8a, 0x15, 0xf9, + 0x1c, 0x3b, 0x1d, 0x9c, 0xc1, 0x33, 0x4e, 0xa7, 0xa3, 0x9f, 0x49, 0x21, 0x36, 0x9e, 0xdd, 0x50, + 0xea, 0xe3, 0x00, 0x4d, 0xc6, 0xfa, 0x49, 0x87, 0x52, 0x3f, 0x39, 0x3c, 0x11, 0xa2, 0x76, 0xe0, + 0x33, 0x35, 0xec, 0x81, 0x4f, 0x0d, 0x66, 0xf4, 0x21, 0x78, 0x02, 0xbe, 0xda, 0x0f, 0x47, 0x72, + 0xb9, 0xfc, 0xc4, 0x87, 0x23, 0x39, 0xc8, 0x4f, 0x9a, 0xdf, 0xcb, 0xc0, 0x64, 0xa1, 0xd3, 0x79, + 0xca, 0xcf, 0x94, 0xbf, 0xa0, 0x4d, 0xef, 0xb3, 0xf1, 0x30, 0x9e, 0xe0, 0x38, 0xf9, 0xf7, 0x32, + 0x30, 0x9b, 0xa0, 0x50, 0x5b, 0x6f, 0x0c, 0x79, 0xc6, 0x9a, 0x19, 0xf2, 0x8c, 0x35, 0xdb, 0xff, + 0x8c, 0x55, 0x9d, 0x3c, 0x23, 0x8f, 0x33, 0x79, 0x5e, 0x81, 0x6c, 0xa1, 0xd3, 0x49, 0xba, 0xa7, + 0x3b, 0x9d, 0xed, 0x9b, 0x5c, 0xe1, 0x76, 0x3a, 0x1d, 0x8b, 0x61, 0x68, 0xb2, 0x39, 0x36, 0xa4, + 0x6c, 0x9a, 0xaf, 0xc3, 0x04, 0xf2, 0xc2, 0xf5, 0xf0, 0xa2, 0x98, 0x48, 0x7c, 0x31, 0xd4, 0xea, + 0xe2, 0x93, 0xc6, 0xfc, 0x37, 0xcc, 0xb2, 0x63, 0xbf, 0x9f, 0x52, 0x19, 0x5b, 0xd2, 0x64, 0x2c, + 0xaf, 0xc8, 0xd8, 0x30, 0xd2, 0xf5, 0x2b, 0x23, 0xd8, 0x5b, 0x42, 0xae, 0xc4, 0x29, 0x9d, 0x91, + 0x72, 0x4a, 0xf7, 0x18, 0xcb, 0xff, 0xbd, 0xe4, 0x79, 0x5d, 0x16, 0x07, 0xe3, 0xc5, 0x64, 0x53, + 0x9f, 0xc8, 0x51, 0xdd, 0x0a, 0x90, 0x4a, 0x3b, 0xa0, 0xf5, 0xae, 0x4f, 0x6b, 0xf7, 0xdc, 0xce, + 0x36, 0xf5, 0xdd, 0xbd, 0x43, 0x61, 0xfe, 0xe2, 0x0a, 0xed, 0x8a, 0x52, 0x3b, 0xb8, 0xe7, 0x76, + 0x98, 0xed, 0xe1, 0xee, 0x1d, 0x5a, 0x29, 0x34, 0xe4, 0x7d, 0x18, 0xb7, 0xe8, 0x03, 0xdf, 0x0d, + 0xe5, 0x19, 0xc1, 0x4c, 0x64, 0x67, 0x20, 0x94, 0xeb, 0xd1, 0x3e, 0xff, 0xa1, 0x8e, 0xbf, 0x28, + 0x27, 0x4b, 0xfc, 0xdc, 0x88, 0x9f, 0x05, 0x4c, 0xc7, 0x5f, 0x5b, 0xd8, 0xa9, 0x2d, 0xcf, 0xf5, + 0x39, 0x34, 0xbc, 0x02, 0xa3, 0xe8, 0xe6, 0x10, 0xbb, 0x03, 0x86, 0xd3, 0xd5, 0x19, 0x40, 0xb5, + 0xf1, 0x11, 0xe3, 0xd3, 0x3b, 0x33, 0xfb, 0xc1, 0x28, 0xce, 0xcf, 0x63, 0xe2, 0x31, 0x07, 0x9c, + 0xe8, 0xea, 0xb2, 0x92, 0x3d, 0x89, 0xac, 0x6c, 0xc3, 0x54, 0x8d, 0xad, 0x12, 0xfa, 0xd1, 0xee, + 0xb3, 0x71, 0xe7, 0x5d, 0x53, 0x8b, 0x07, 0x29, 0xb5, 0x1a, 0x1f, 0x62, 0x27, 0x65, 0x90, 0xeb, + 0xce, 0xcf, 0x29, 0x8c, 0x53, 0xa4, 0x2f, 0x5a, 0xce, 0xea, 0xbc, 0xb3, 0x4e, 0x2c, 0x77, 0x63, + 0x8f, 0x27, 0x77, 0xe3, 0x9f, 0x48, 0xee, 0x12, 0x41, 0xb0, 0xb9, 0x93, 0x04, 0xc1, 0x5e, 0x78, + 0x1f, 0xe6, 0x7a, 0x7a, 0xf8, 0x24, 0x96, 0xc0, 0xa7, 0x27, 0x96, 0x3f, 0x03, 0xca, 0xcc, 0xca, + 0x59, 0xb4, 0xe1, 0xfa, 0xb4, 0x1e, 0xe2, 0xca, 0x2e, 0x16, 0x63, 0x5f, 0xc0, 0x12, 0x67, 0x8c, + 0x08, 0x23, 0xef, 0xc1, 0x38, 0x77, 0x01, 0x70, 0xd3, 0x3b, 0x9e, 0x91, 0xc2, 0x5d, 0xc0, 0x63, + 0xa4, 0x39, 0x86, 0xda, 0xab, 0x82, 0xc8, 0xbc, 0x23, 0xbd, 0x0e, 0xc7, 0xcc, 0x8b, 0x45, 0x18, + 0xdd, 0x8e, 0x7b, 0x06, 0x83, 0xaf, 0xf8, 0x47, 0x58, 0x1c, 0x6e, 0xfe, 0x82, 0x01, 0x33, 0xfa, + 0x57, 0x92, 0x6b, 0x30, 0x26, 0x22, 0x4d, 0x0d, 0xb4, 0x05, 0xd9, 0xd7, 0x8c, 0xf1, 0x18, 0x53, + 0x2d, 0xb2, 0x54, 0x60, 0xb1, 0x9d, 0x45, 0x70, 0x10, 0x6e, 0x04, 0xdc, 0x59, 0x84, 0x90, 0x5a, + 0xb2, 0x8c, 0x98, 0x30, 0x66, 0xd1, 0xa0, 0xdb, 0x0c, 0x55, 0x77, 0x97, 0x8f, 0x10, 0x4b, 0x94, + 0x98, 0x45, 0x18, 0xe3, 0x4b, 0x52, 0xe2, 0xa0, 0xcd, 0x38, 0xc1, 0x41, 0x9b, 0x79, 0x64, 0x00, + 0xd4, 0x6a, 0x2b, 0x77, 0xe9, 0x61, 0xd5, 0x71, 0x7d, 0xf4, 0xcf, 0xe2, 0x94, 0xbe, 0x2b, 0x86, + 0x7c, 0x4a, 0xf8, 0x67, 0xf9, 0xf4, 0xbf, 0x47, 0x0f, 0x35, 0xff, 0xac, 0x44, 0xc5, 0x75, 0xc3, + 0x77, 0xef, 0x3b, 0x21, 0x65, 0x84, 0x19, 0x24, 0xe4, 0xeb, 0x06, 0x87, 0x26, 0x28, 0x15, 0x64, + 0xf2, 0x35, 0x98, 0x89, 0x7f, 0xa1, 0xa9, 0x9f, 0x45, 0x07, 0x99, 0x14, 0x2b, 0xbd, 0x70, 0xf9, + 0xf9, 0x47, 0x47, 0x8b, 0x17, 0x14, 0xae, 0x49, 0xcf, 0x7a, 0x82, 0x99, 0xf9, 0xdb, 0x06, 0x3a, + 0xf6, 0xe5, 0x07, 0x5e, 0x82, 0x91, 0x28, 0x7c, 0x60, 0x8a, 0xbb, 0x13, 0x12, 0x9e, 0x34, 0x2c, + 0x27, 0x2f, 0x42, 0x36, 0xfe, 0x12, 0x5c, 0xf2, 0xf5, 0x2f, 0x60, 0xa5, 0xe4, 0x0e, 0x8c, 0x0f, + 0xd5, 0x66, 0x14, 0xf1, 0x94, 0xb6, 0x4a, 0x6a, 0x1c, 0x85, 0x0f, 0x77, 0x36, 0x3f, 0xbb, 0xa3, + 0xf0, 0xfd, 0x0c, 0xcc, 0xb2, 0x7e, 0x2d, 0x74, 0xc3, 0x03, 0xcf, 0x77, 0xc3, 0xc3, 0xa7, 0xd6, + 0xee, 0x7f, 0x47, 0x53, 0xda, 0x2e, 0xc8, 0xb5, 0x4f, 0xfd, 0xb6, 0xa1, 0xcc, 0xff, 0x3f, 0x1a, + 0x85, 0xd3, 0x29, 0x54, 0xe4, 0x35, 0xcd, 0xdf, 0xb5, 0x20, 0xaf, 0x87, 0xfc, 0xe4, 0x68, 0x71, + 0x4a, 0xa2, 0x6f, 0xc6, 0xd7, 0x45, 0x96, 0xf4, 0x53, 0x32, 0xde, 0x53, 0xe8, 0xfe, 0x52, 0x4f, + 0xc9, 0xf4, 0xb3, 0xb1, 0x2b, 0x30, 0x6a, 0x79, 0x4d, 0xca, 0x37, 0x52, 0xa1, 0xa8, 0xf8, 0x0c, + 0xa0, 0x1d, 0x46, 0x30, 0x00, 0x59, 0x81, 0x71, 0xf6, 0xc7, 0x9a, 0xd3, 0x11, 0x4e, 0x3f, 0x12, + 0x99, 0x0d, 0x08, 0xed, 0xb8, 0xed, 0x7d, 0xd5, 0x72, 0x68, 0x52, 0xbb, 0xe5, 0x74, 0xb4, 0x9d, + 0x8d, 0x23, 0x6a, 0x16, 0x48, 0xae, 0xbf, 0x05, 0x62, 0x1c, 0x6b, 0x81, 0x34, 0x00, 0x6a, 0xee, + 0x7e, 0xdb, 0x6d, 0xef, 0x17, 0x9a, 0xfb, 0xe2, 0x92, 0xcd, 0x95, 0xfe, 0xa3, 0x70, 0x2d, 0x46, + 0x46, 0xc1, 0xe5, 0xbe, 0x70, 0x0e, 0xb3, 0x9d, 0xa6, 0xe6, 0x91, 0x8c, 0x51, 0xc9, 0x3a, 0x40, + 0xa1, 0x1e, 0xba, 0xf7, 0x99, 0x00, 0x07, 0x22, 0xb0, 0x53, 0x36, 0xb8, 0x58, 0xb8, 0x4b, 0x0f, + 0x6b, 0x34, 0x8c, 0x3d, 0x9c, 0x0e, 0xa2, 0xb2, 0x79, 0xa0, 0xf6, 0xa1, 0xc2, 0x81, 0x74, 0xe0, + 0x4c, 0xa1, 0xd1, 0x70, 0xd9, 0x17, 0x38, 0xcd, 0x4d, 0x9f, 0x0d, 0x46, 0x03, 0x59, 0x4f, 0xa5, + 0xb3, 0xbe, 0x22, 0x58, 0xbf, 0xe0, 0x44, 0x54, 0x76, 0xc8, 0xc9, 0x92, 0xd5, 0xa4, 0x33, 0x36, + 0x37, 0x60, 0x46, 0xff, 0x74, 0xfd, 0x6a, 0xd0, 0x14, 0xe4, 0xac, 0x5a, 0xc1, 0xae, 0xad, 0x14, + 0x6e, 0xe4, 0x0d, 0x92, 0x87, 0x29, 0xf1, 0x6b, 0xc9, 0x5e, 0x7a, 0xf3, 0x56, 0x3e, 0xa3, 0x41, + 0xde, 0xbc, 0xb1, 0x94, 0xcf, 0x7e, 0x38, 0x92, 0xcb, 0xe6, 0x47, 0x3e, 0x1c, 0xc9, 0x8d, 0xe4, + 0x47, 0x3f, 0x1c, 0xc9, 0x8d, 0xe7, 0x73, 0xc2, 0xde, 0xff, 0x7d, 0x03, 0x72, 0xb2, 0xdd, 0xe4, + 0x16, 0x64, 0x6b, 0xb5, 0x95, 0x44, 0x74, 0x67, 0xbc, 0xbf, 0xf0, 0x95, 0x34, 0x08, 0x0e, 0xd4, + 0x95, 0xb4, 0x56, 0x5b, 0x61, 0x74, 0x9b, 0xab, 0x35, 0xb1, 0xbd, 0x4b, 0xba, 0x78, 0xd9, 0xe6, + 0x74, 0x29, 0x21, 0x6f, 0xb7, 0x20, 0xfb, 0xe1, 0xce, 0xa6, 0x30, 0x4b, 0x24, 0x5d, 0xbc, 0x92, + 0x72, 0xba, 0x6f, 0x3c, 0x50, 0xd7, 0x77, 0x46, 0x60, 0x5a, 0x30, 0xa9, 0x88, 0x30, 0xdf, 0x6e, + 0x5b, 0x5e, 0x74, 0x6d, 0x46, 0x6c, 0xb7, 0x0c, 0x62, 0x89, 0x12, 0xa6, 0x1d, 0xac, 0x7a, 0x75, + 0xa7, 0x29, 0xf6, 0x6d, 0xd4, 0x0e, 0x9a, 0x0c, 0x60, 0x71, 0xb8, 0xf9, 0x87, 0x06, 0xe4, 0xab, + 0xbe, 0x77, 0xdf, 0x65, 0xcb, 0xcc, 0xa6, 0x77, 0x8f, 0xb6, 0xb7, 0x6f, 0x90, 0xd7, 0xe5, 0x64, + 0x33, 0x22, 0x23, 0x78, 0x14, 0x27, 0x5b, 0xc2, 0x37, 0x2a, 0x26, 0x9c, 0x72, 0xfb, 0x28, 0x33, + 0xfc, 0x8d, 0x86, 0x63, 0x6e, 0x1f, 0x2d, 0xc2, 0x28, 0x36, 0x47, 0x09, 0x2a, 0x1f, 0x0d, 0x19, + 0xc0, 0xe2, 0x70, 0xd5, 0xa8, 0xcc, 0xf4, 0x7c, 0xc3, 0xd2, 0x67, 0xea, 0x56, 0x80, 0xfe, 0x71, + 0x43, 0xad, 0xd4, 0x1f, 0xc3, 0x7c, 0xb2, 0x4b, 0xd0, 0x41, 0x51, 0x80, 0x59, 0x1d, 0x2e, 0x7d, + 0x15, 0xe7, 0x52, 0xeb, 0xda, 0x5e, 0xb2, 0x92, 0xf8, 0xe6, 0x9f, 0x1a, 0x30, 0x81, 0x7f, 0x5a, + 0xdd, 0x26, 0x9e, 0x3b, 0x17, 0x76, 0x6a, 0x22, 0xdc, 0x4d, 0x55, 0xe3, 0x9c, 0x07, 0x81, 0x2d, + 0x62, 0xe3, 0xb4, 0xf5, 0x25, 0x42, 0x16, 0xa4, 0x3c, 0xb8, 0x4f, 0x1e, 0x50, 0x45, 0xa4, 0x3c, + 0x0a, 0x30, 0x48, 0x90, 0x0a, 0x64, 0x0c, 0x95, 0xd8, 0xa9, 0x31, 0xf1, 0x53, 0x8f, 0xa5, 0x90, + 0xce, 0x6b, 0xea, 0xa1, 0x12, 0x1c, 0x0d, 0x4f, 0xa5, 0x76, 0x6a, 0x05, 0x6b, 0x5d, 0x3b, 0x95, + 0x62, 0x6d, 0xd4, 0xa2, 0xb1, 0x04, 0x92, 0xf9, 0xbf, 0x8e, 0x27, 0x3b, 0x50, 0x6c, 0x75, 0x27, + 0x9c, 0x1b, 0x6f, 0xc3, 0x68, 0xa1, 0xd9, 0xf4, 0x1e, 0x88, 0x55, 0x42, 0xfa, 0x4b, 0xa2, 0xfe, + 0xe3, 0x3b, 0x99, 0xc3, 0x50, 0xb4, 0xc0, 0x5a, 0x06, 0x20, 0x45, 0x98, 0x28, 0xec, 0xd4, 0x2a, + 0x95, 0xd2, 0xe6, 0xe6, 0xaa, 0xb8, 0x0a, 0xfa, 0xb2, 0xec, 0x1f, 0xd7, 0x6d, 0xd8, 0xc9, 0xe3, + 0x9b, 0x58, 0x73, 0x8f, 0xe9, 0xc8, 0xbb, 0x00, 0x1f, 0x7a, 0x6e, 0x7b, 0x8d, 0x86, 0x07, 0x5e, + 0x43, 0x7c, 0xfc, 0x73, 0x8f, 0x8e, 0x16, 0x27, 0xbf, 0xe1, 0xb9, 0x6d, 0xbb, 0x85, 0x60, 0xd6, + 0xf6, 0x18, 0xc9, 0x52, 0xfe, 0x66, 0x3d, 0xbd, 0xec, 0xf1, 0xb3, 0xe4, 0xd1, 0xb8, 0xa7, 0x77, + 0xbd, 0x9e, 0x63, 0x64, 0x89, 0x46, 0x5a, 0x30, 0x5b, 0xeb, 0xee, 0xef, 0x53, 0xb6, 0xaa, 0x0b, + 0xeb, 0x77, 0x4c, 0xd8, 0x5c, 0xd1, 0x45, 0x5a, 0x6e, 0x89, 0x30, 0xfb, 0x24, 0x58, 0x7e, 0x8d, + 0x09, 0xf2, 0x8f, 0x8f, 0x16, 0xc5, 0xb1, 0x10, 0x53, 0xd2, 0x02, 0x49, 0xdf, 0xeb, 0x7f, 0x49, + 0xf2, 0x26, 0x1b, 0x30, 0x76, 0xc7, 0x0d, 0x57, 0xba, 0xbb, 0xc2, 0x7c, 0x7d, 0x61, 0xc0, 0xa4, + 0xe1, 0x88, 0xdc, 0x82, 0xdf, 0x77, 0xc3, 0x83, 0xae, 0x1a, 0xbe, 0x28, 0xd8, 0x90, 0x1d, 0xc8, + 0x15, 0x5d, 0xbf, 0xde, 0xa4, 0xc5, 0x8a, 0xd8, 0xf5, 0x5f, 0x1c, 0xc0, 0x52, 0xa2, 0xf2, 0x7e, + 0xa9, 0xe3, 0xaf, 0xba, 0xab, 0x6a, 0x01, 0x12, 0x83, 0xfc, 0x3b, 0x06, 0x3c, 0x13, 0xb5, 0xbe, + 0xb0, 0x4f, 0xdb, 0xe1, 0x9a, 0x13, 0xd6, 0x0f, 0xa8, 0x1f, 0xdd, 0x21, 0x19, 0xd0, 0x4b, 0x5f, + 0xec, 0xe9, 0xa5, 0xcb, 0x71, 0x2f, 0x39, 0x8c, 0x99, 0xdd, 0xe2, 0xdc, 0x7a, 0xfb, 0x6c, 0x50, + 0xad, 0xc4, 0x06, 0xb8, 0xdb, 0xdd, 0xa5, 0x7e, 0x9b, 0x86, 0x34, 0x10, 0x41, 0xd5, 0x2f, 0x0f, + 0xf8, 0xe0, 0x18, 0x59, 0x84, 0x14, 0x46, 0xbf, 0xb5, 0xd0, 0x89, 0x08, 0x4a, 0xee, 0xca, 0xf8, + 0x60, 0xae, 0x91, 0x5c, 0x1c, 0xc0, 0x9b, 0xc7, 0x0c, 0x9f, 0x1e, 0x10, 0x6b, 0xce, 0x47, 0x7b, + 0xd5, 0xd9, 0x15, 0x4a, 0xc8, 0x31, 0xa3, 0xbd, 0xea, 0xc4, 0xa3, 0xdd, 0x74, 0x92, 0xa3, 0xbd, + 0xea, 0xec, 0x9a, 0xff, 0x6a, 0x04, 0x2e, 0xf4, 0x17, 0x15, 0xf2, 0x91, 0x9c, 0xbf, 0x7c, 0x95, + 0xbc, 0x74, 0xac, 0x70, 0x5d, 0x3b, 0x76, 0x56, 0x7f, 0x09, 0xe6, 0xcb, 0xed, 0x90, 0xfa, 0x1d, + 0xdf, 0x95, 0x37, 0x84, 0x56, 0xbc, 0x40, 0x86, 0x4a, 0xbc, 0xf4, 0xe8, 0x68, 0xf1, 0x22, 0x8d, + 0xca, 0x45, 0xd4, 0x0c, 0x06, 0x6e, 0x28, 0xac, 0x52, 0x39, 0x5c, 0xf8, 0xed, 0x2c, 0x8c, 0xe0, + 0xa2, 0xfc, 0x22, 0x64, 0x6b, 0xdd, 0x5d, 0xb1, 0x1a, 0x73, 0xf5, 0x45, 0x13, 0x75, 0x56, 0x4a, + 0xbe, 0x00, 0x60, 0xd1, 0x8e, 0x17, 0xb8, 0xa1, 0xe7, 0x1f, 0xaa, 0x61, 0x96, 0x7e, 0x04, 0xd5, + 0x03, 0x86, 0x24, 0x94, 0xac, 0xc0, 0x6c, 0xfc, 0x6b, 0xe3, 0x41, 0x9b, 0x4a, 0xaf, 0x1b, 0x5a, + 0x58, 0x31, 0xb9, 0xed, 0xb1, 0x32, 0x75, 0xf2, 0x26, 0xc8, 0xc8, 0x12, 0xe4, 0x76, 0x3c, 0xff, + 0xde, 0x1e, 0xeb, 0xe1, 0x91, 0x78, 0x79, 0x79, 0x20, 0x60, 0xea, 0x34, 0x92, 0x78, 0xe4, 0x6d, + 0x98, 0x2c, 0xb7, 0xef, 0xbb, 0xbe, 0xd7, 0x6e, 0xd1, 0xb6, 0x8c, 0x8c, 0xe1, 0x9e, 0x83, 0x18, + 0xac, 0x05, 0x4e, 0xc7, 0x60, 0x66, 0x47, 0x14, 0xea, 0xa1, 0xe7, 0x8b, 0xc0, 0x18, 0x3e, 0x4e, + 0x0c, 0xa0, 0x8d, 0x13, 0x03, 0xb0, 0x4e, 0xb4, 0xe8, 0x9e, 0xf0, 0x8c, 0x62, 0x27, 0xfa, 0x74, + 0x4f, 0x8b, 0x0a, 0xa7, 0x7b, 0x6c, 0x79, 0xb4, 0xe8, 0x1e, 0x1a, 0x3f, 0xb9, 0xb8, 0xfd, 0x3e, + 0xdd, 0xeb, 0x31, 0x9b, 0x05, 0x9a, 0xf9, 0x3b, 0xfd, 0x05, 0x6e, 0xd5, 0x39, 0xa9, 0xc0, 0xad, + 0x3a, 0x43, 0x08, 0xdc, 0x6b, 0x51, 0x18, 0x52, 0x26, 0x8e, 0xb2, 0xe7, 0x61, 0x48, 0xea, 0x84, + 0xe0, 0x38, 0x17, 0xfe, 0x7f, 0x27, 0x12, 0x22, 0xd1, 0x49, 0x99, 0x61, 0x3b, 0x29, 0x3b, 0x54, + 0x27, 0x91, 0x65, 0x98, 0x8e, 0x6e, 0xd9, 0x57, 0x1d, 0x11, 0x94, 0x2b, 0xc2, 0x78, 0xa2, 0x9c, + 0x09, 0x76, 0xc7, 0x09, 0x55, 0xa5, 0x5c, 0x27, 0x21, 0xef, 0xc0, 0xa4, 0x88, 0xc5, 0x43, 0x0e, + 0xa3, 0x71, 0x10, 0xa0, 0x0c, 0xdc, 0x4b, 0xd0, 0xab, 0xe8, 0xa4, 0x0c, 0x33, 0x55, 0xb7, 0x43, + 0x9b, 0x6e, 0x9b, 0xd6, 0x30, 0xcc, 0x47, 0x48, 0x0c, 0xc6, 0xb4, 0x75, 0x44, 0x89, 0xcd, 0x23, + 0x80, 0x34, 0x1f, 0x82, 0x46, 0x94, 0x14, 0xd6, 0xf1, 0x93, 0x08, 0xab, 0xf9, 0xfb, 0x19, 0x78, + 0x76, 0xd0, 0x9e, 0x43, 0x6a, 0xba, 0xb0, 0x5c, 0x1e, 0x62, 0x9f, 0x3a, 0x5e, 0x5c, 0xca, 0x30, + 0xb3, 0xe1, 0xef, 0x3b, 0x6d, 0xf7, 0x5b, 0xa8, 0x4b, 0x44, 0xd1, 0x84, 0xf8, 0xe5, 0x9e, 0x52, + 0xa2, 0x3b, 0xe8, 0x12, 0x44, 0x17, 0xee, 0x0b, 0x31, 0xfa, 0xa4, 0xd1, 0x93, 0xb7, 0x60, 0xa2, + 0xe8, 0xb5, 0x43, 0xfa, 0x30, 0x4c, 0x04, 0x81, 0x73, 0x60, 0x32, 0x08, 0x5c, 0xa2, 0x9a, 0x7f, + 0x64, 0xc0, 0xf3, 0x83, 0xf7, 0x2d, 0xb2, 0xa5, 0x77, 0xdb, 0xd5, 0xa1, 0x76, 0xbb, 0x63, 0x3b, + 0xee, 0xc2, 0x9a, 0xf8, 0xe2, 0x32, 0xcc, 0x88, 0xa0, 0x11, 0x5d, 0x2d, 0xc6, 0x0e, 0x14, 0xc1, + 0x57, 0x29, 0xaa, 0x71, 0x82, 0xc8, 0xfc, 0x0b, 0x03, 0xce, 0xf7, 0xdd, 0x24, 0x49, 0x55, 0xff, + 0x86, 0x97, 0x8f, 0xdb, 0x55, 0x8f, 0x6f, 0xfe, 0x2f, 0x1a, 0xa2, 0xfd, 0xef, 0xc1, 0x54, 0xad, + 0xbb, 0x9b, 0xbc, 0x39, 0x8c, 0x33, 0x27, 0x50, 0xe0, 0xda, 0xe1, 0x87, 0x02, 0x67, 0xdf, 0x2f, + 0x63, 0xe3, 0x30, 0x9a, 0x5b, 0xea, 0xf6, 0xf8, 0xfd, 0x51, 0x38, 0x2a, 0x46, 0xdb, 0xaa, 0x3a, + 0x43, 0x82, 0xc8, 0xfc, 0xc5, 0x0c, 0xcc, 0xf0, 0xb3, 0x01, 0x6e, 0x78, 0x3c, 0xb5, 0x46, 0xdd, + 0xdb, 0x9a, 0x51, 0x27, 0xaf, 0xad, 0xa8, 0x9f, 0x36, 0x94, 0x49, 0x77, 0x00, 0xa4, 0x97, 0x86, + 0x58, 0xf2, 0x04, 0x6b, 0x18, 0x6b, 0xee, 0x46, 0x7c, 0xc3, 0x09, 0x33, 0xe0, 0xd4, 0x6d, 0x34, + 0xa9, 0x03, 0x4b, 0xe3, 0x61, 0xfe, 0x42, 0x06, 0xa6, 0x15, 0xe7, 0xdb, 0x53, 0xdb, 0xf1, 0x5f, + 0xd4, 0x3a, 0x7e, 0x41, 0xfa, 0xab, 0xe2, 0x2f, 0x1b, 0xaa, 0xdf, 0xbb, 0x30, 0xd7, 0x43, 0x92, + 0xf4, 0x61, 0x1a, 0xc3, 0xf8, 0x30, 0x5f, 0xeb, 0xbd, 0xd6, 0xc2, 0x13, 0x8d, 0x44, 0xd7, 0x5a, + 0xd4, 0x7b, 0x34, 0xdf, 0xcf, 0xc0, 0xbc, 0xf8, 0x55, 0xe8, 0x36, 0xdc, 0xb0, 0xe8, 0xb5, 0xf7, + 0xdc, 0xfd, 0xa7, 0x76, 0x2c, 0x0a, 0xda, 0x58, 0x2c, 0xea, 0x63, 0xa1, 0x7c, 0x60, 0xff, 0x21, + 0x31, 0xff, 0x1a, 0xc0, 0x42, 0x3f, 0x82, 0xa1, 0x43, 0x2e, 0xe3, 0x2b, 0x87, 0x99, 0x21, 0xae, + 0x1c, 0xae, 0x42, 0x1e, 0xab, 0xaa, 0xd1, 0x80, 0x75, 0x42, 0x10, 0x67, 0x39, 0xb8, 0xf8, 0xe8, + 0x68, 0xf1, 0x59, 0x87, 0x95, 0xd9, 0x81, 0x28, 0xb4, 0xbb, 0xbe, 0x6a, 0xf8, 0xf5, 0x50, 0x92, + 0xdf, 0x36, 0x60, 0x06, 0x81, 0xe5, 0xfb, 0xb4, 0x1d, 0x22, 0xb3, 0x11, 0x11, 0xaa, 0x13, 0xd9, + 0x7c, 0xb5, 0xd0, 0x77, 0xdb, 0xfb, 0xc2, 0xe8, 0xdb, 0x15, 0x46, 0xdf, 0x3b, 0xdc, 0x58, 0xbd, + 0x56, 0xf7, 0x5a, 0xd7, 0xf7, 0x7d, 0xe7, 0xbe, 0xcb, 0xfd, 0xca, 0x4e, 0xf3, 0x7a, 0x9c, 0xe4, + 0xaa, 0xe3, 0x26, 0xd2, 0x56, 0x09, 0x56, 0x68, 0x50, 0xf3, 0x86, 0x52, 0xac, 0x36, 0xd1, 0xcc, + 0x44, 0x8b, 0xc8, 0x97, 0xe1, 0x1c, 0xbf, 0x23, 0xc2, 0xb6, 0x54, 0xb7, 0xdd, 0xf5, 0xba, 0xc1, + 0xb2, 0x53, 0xbf, 0xc7, 0x96, 0x71, 0x7e, 0xbc, 0x8c, 0x5f, 0x5e, 0x8f, 0x0a, 0xed, 0x5d, 0x5e, + 0xaa, 0xb0, 0xec, 0xc7, 0x80, 0xac, 0xc0, 0x1c, 0x2f, 0x2a, 0x74, 0x43, 0xaf, 0x56, 0x77, 0x9a, + 0x6e, 0x7b, 0x1f, 0x75, 0xa2, 0x1c, 0xdf, 0x5e, 0x9c, 0x6e, 0xe8, 0xd9, 0x01, 0x87, 0x2b, 0xfc, + 0x7a, 0x89, 0x48, 0x85, 0x99, 0x20, 0x4e, 0x63, 0xcd, 0x79, 0x58, 0x74, 0x3a, 0x4e, 0xdd, 0x0d, + 0xf9, 0x45, 0xc3, 0x2c, 0xbf, 0x1d, 0xe0, 0x53, 0xa7, 0x61, 0xb7, 0x9c, 0x87, 0x76, 0x5d, 0x14, + 0xea, 0x36, 0x88, 0x46, 0x17, 0xb1, 0x72, 0xdb, 0x11, 0xab, 0x89, 0x24, 0x2b, 0xb7, 0xdd, 0x9f, + 0x55, 0x4c, 0x27, 0x59, 0x6d, 0x3a, 0xfe, 0x3e, 0x0d, 0xf9, 0xb1, 0x2c, 0x33, 0xa8, 0x0d, 0x85, + 0x55, 0x88, 0x65, 0x36, 0x1e, 0xd1, 0x26, 0x59, 0x29, 0x74, 0x4c, 0xf2, 0x76, 0x7c, 0x37, 0xa4, + 0xea, 0x17, 0x4e, 0x62, 0xb3, 0xb0, 0xff, 0xf1, 0x60, 0xba, 0xdf, 0x27, 0xf6, 0x50, 0xc6, 0xdc, + 0x94, 0x8f, 0x9c, 0xea, 0xe1, 0x96, 0xfe, 0x95, 0x3d, 0x94, 0x11, 0x37, 0xf5, 0x3b, 0xa7, 0xf1, + 0x3b, 0x15, 0x6e, 0x7d, 0x3e, 0xb4, 0x87, 0x92, 0xac, 0xb3, 0x4e, 0x0b, 0x69, 0x9b, 0x49, 0xb4, + 0x38, 0x96, 0x9e, 0xc1, 0xa6, 0xbd, 0x24, 0xce, 0x56, 0xf2, 0xbe, 0x2c, 0xb6, 0x53, 0x0e, 0xa9, + 0x93, 0xc4, 0xe4, 0xa7, 0x61, 0x76, 0x2b, 0xa0, 0xb7, 0x2b, 0xd5, 0x9a, 0xbc, 0x13, 0xb4, 0x30, + 0x8b, 0x27, 0x2e, 0x37, 0x8e, 0x59, 0x74, 0xae, 0xa9, 0x34, 0x98, 0x6e, 0x8a, 0x8f, 0x5b, 0x37, + 0xa0, 0xf6, 0x9e, 0xdb, 0x09, 0xa2, 0xfb, 0x79, 0xea, 0xb8, 0x25, 0xaa, 0x32, 0x57, 0x60, 0xae, + 0x87, 0x0d, 0x99, 0x01, 0x60, 0x40, 0x7b, 0x6b, 0xbd, 0x56, 0xde, 0xcc, 0x9f, 0x22, 0x79, 0x98, + 0xc2, 0xdf, 0xe5, 0xf5, 0xc2, 0xf2, 0x6a, 0xb9, 0x94, 0x37, 0xc8, 0x1c, 0x4c, 0x23, 0xa4, 0x54, + 0xa9, 0x71, 0x50, 0xe6, 0xc3, 0x91, 0xdc, 0x68, 0x7e, 0xcc, 0xca, 0xf3, 0xa9, 0x1b, 0xb2, 0x09, + 0x80, 0x7b, 0x8a, 0xf9, 0xb7, 0x32, 0x70, 0x5e, 0x6e, 0x2b, 0x34, 0x64, 0xa6, 0xb2, 0xdb, 0xde, + 0x7f, 0xca, 0x77, 0x87, 0xdb, 0xda, 0xee, 0xf0, 0x52, 0x62, 0xa7, 0x4e, 0x7c, 0xe5, 0x80, 0x2d, + 0xe2, 0xd7, 0xc6, 0xe1, 0xb9, 0x81, 0x54, 0xe4, 0x23, 0xb6, 0x9b, 0xbb, 0xb4, 0x1d, 0x56, 0x1a, + 0x4d, 0xba, 0xe9, 0xb6, 0xa8, 0xd7, 0x0d, 0x45, 0x18, 0xc4, 0x8b, 0x8f, 0x8e, 0x16, 0x4f, 0xf3, + 0x5c, 0x51, 0xb6, 0xdb, 0x68, 0x52, 0x3b, 0xe4, 0xc5, 0x9a, 0xb8, 0xf5, 0x52, 0x33, 0x96, 0x51, + 0x3e, 0xbb, 0x4a, 0x3b, 0xa4, 0xfe, 0x7d, 0x87, 0xa7, 0xcc, 0x11, 0x2c, 0xef, 0x51, 0xda, 0xb1, + 0x1d, 0x56, 0x6a, 0xbb, 0xa2, 0x58, 0x67, 0xd9, 0x43, 0x4d, 0x6e, 0x2b, 0x2c, 0x8b, 0xcc, 0x1a, + 0x58, 0x73, 0x1e, 0x0a, 0x0f, 0xb0, 0xb8, 0xfe, 0x1b, 0xb1, 0xe4, 0xb7, 0xcf, 0x5b, 0xce, 0x43, + 0xab, 0x97, 0x84, 0x7c, 0x0d, 0xce, 0x88, 0x0d, 0x48, 0x84, 0xe9, 0xcb, 0x2f, 0xe6, 0x97, 0x00, + 0x5e, 0x79, 0x74, 0xb4, 0x78, 0x4e, 0x6c, 0x5f, 0xb6, 0xbc, 0xf2, 0x90, 0xf6, 0xd5, 0xe9, 0x5c, + 0xc8, 0x26, 0xdb, 0x90, 0x13, 0xdd, 0xb1, 0x46, 0x83, 0xc0, 0xd9, 0x97, 0xde, 0x62, 0x1e, 0x8b, + 0xa4, 0x74, 0xa6, 0xdd, 0xe2, 0xe5, 0x56, 0x5f, 0x4a, 0xb2, 0x02, 0x33, 0x3b, 0x74, 0x57, 0x1d, + 0x9f, 0xb1, 0x68, 0xa9, 0xca, 0x3f, 0xa0, 0xbb, 0xfd, 0x07, 0x27, 0x41, 0x47, 0x5c, 0x98, 0xc3, + 0x38, 0xcd, 0x55, 0x37, 0x08, 0x69, 0x9b, 0xfa, 0x78, 0x95, 0x69, 0x1c, 0x17, 0x83, 0x85, 0x58, + 0x43, 0xd6, 0xcb, 0x97, 0x5f, 0x78, 0x74, 0xb4, 0xf8, 0x1c, 0x8f, 0xf9, 0x6c, 0x0a, 0xb8, 0x9d, + 0x48, 0x1c, 0xd7, 0xcb, 0x95, 0x7c, 0x1d, 0x66, 0x2d, 0xaf, 0x1b, 0xba, 0xed, 0xfd, 0x5a, 0xe8, + 0x3b, 0x21, 0xdd, 0xe7, 0x1b, 0x52, 0x7c, 0x67, 0x2a, 0x51, 0x2a, 0x7c, 0x65, 0x1c, 0x68, 0x07, + 0x02, 0xaa, 0xed, 0x08, 0x3a, 0x01, 0xf9, 0x29, 0x98, 0xe1, 0x51, 0xdd, 0x51, 0x05, 0x13, 0x5a, + 0x8e, 0x15, 0xbd, 0x70, 0xfb, 0x06, 0xb7, 0xb7, 0x78, 0x74, 0x78, 0x5a, 0x05, 0x09, 0x6e, 0xe4, + 0x2b, 0xa2, 0xb3, 0xaa, 0x6e, 0x7b, 0x3f, 0x12, 0x63, 0xc0, 0x9e, 0x7f, 0x3d, 0xee, 0x92, 0x0e, + 0x6b, 0xae, 0x14, 0xe3, 0x3e, 0xa7, 0x0f, 0xbd, 0x7c, 0xcc, 0x23, 0x03, 0xf2, 0xc9, 0x06, 0x92, + 0x2f, 0xc1, 0x04, 0x77, 0x48, 0xd3, 0xe0, 0x40, 0x5c, 0xae, 0x92, 0x17, 0x74, 0x22, 0xb8, 0x4e, + 0x24, 0x52, 0x2e, 0x70, 0x77, 0x37, 0x55, 0x8f, 0x64, 0x57, 0x4e, 0x59, 0x31, 0x33, 0xd2, 0x80, + 0x29, 0xde, 0x06, 0x8a, 0xd7, 0x00, 0xc5, 0xb9, 0xe4, 0x0b, 0xea, 0x98, 0x8b, 0xa2, 0x04, 0x7f, + 0xbc, 0x29, 0x27, 0xbe, 0x94, 0x23, 0x68, 0x55, 0x68, 0x5c, 0x97, 0x01, 0x72, 0x92, 0xd0, 0x3c, + 0x0f, 0xe7, 0xfa, 0xb4, 0xd9, 0xbc, 0x8f, 0x0e, 0xbf, 0x3e, 0x35, 0x92, 0x2f, 0xc1, 0x3c, 0x12, + 0x16, 0xbd, 0x76, 0x9b, 0xd6, 0x43, 0x9c, 0x64, 0xd2, 0x67, 0x90, 0xe5, 0xee, 0x60, 0xfe, 0xbd, + 0xf5, 0x08, 0xc1, 0x4e, 0xba, 0x0e, 0x52, 0x39, 0x98, 0xbf, 0x9e, 0x81, 0x05, 0x31, 0x6f, 0x2d, + 0x5a, 0xf7, 0xfc, 0xc6, 0xd3, 0xbf, 0x4f, 0x94, 0xb5, 0x7d, 0xe2, 0xc5, 0xe8, 0xae, 0x46, 0xda, + 0x47, 0x0e, 0xd8, 0x26, 0x7e, 0xcf, 0x80, 0x67, 0x07, 0x11, 0xb1, 0xde, 0x89, 0xae, 0x3d, 0x4e, + 0xf4, 0x5c, 0x6f, 0xec, 0xc0, 0x69, 0x1c, 0xd0, 0xe2, 0x01, 0xad, 0xdf, 0x0b, 0x56, 0xbc, 0x20, + 0xc4, 0xb0, 0x88, 0x8c, 0x16, 0x12, 0xbd, 0xec, 0x79, 0xfc, 0xec, 0x06, 0x0f, 0xb8, 0x8c, 0x1f, + 0x1f, 0x2d, 0x02, 0x03, 0xf1, 0x8b, 0x8a, 0xc2, 0x0b, 0xf9, 0xf0, 0xd0, 0xae, 0x23, 0x0f, 0x7e, + 0x31, 0xf3, 0x1e, 0x3d, 0x0c, 0xac, 0x34, 0xd6, 0x78, 0xc4, 0x5d, 0xe8, 0x86, 0x07, 0x55, 0x9f, + 0xee, 0x51, 0x9f, 0xb6, 0xeb, 0xf4, 0x33, 0x76, 0xc4, 0xad, 0x7f, 0xdc, 0x50, 0x76, 0xf9, 0xff, + 0x35, 0x01, 0xf3, 0x69, 0x64, 0xac, 0x5f, 0x14, 0x53, 0x30, 0x99, 0xac, 0xf6, 0xaf, 0x1a, 0x30, + 0x55, 0xa3, 0x75, 0xaf, 0xdd, 0xb8, 0x8d, 0x8e, 0x7f, 0xd1, 0x3b, 0x36, 0xdf, 0x0a, 0x19, 0xdc, + 0xde, 0x4b, 0x9c, 0x08, 0xfc, 0xe4, 0x68, 0xf1, 0x83, 0xe1, 0x2c, 0xb0, 0xba, 0x87, 0xb7, 0xd2, + 0x42, 0x4c, 0xc2, 0x12, 0x55, 0x81, 0xb1, 0x4f, 0x5a, 0xa5, 0x64, 0x19, 0xa6, 0xc5, 0x74, 0xf5, + 0xd4, 0x5b, 0xaf, 0xe8, 0xe0, 0xae, 0xcb, 0x82, 0x9e, 0x6b, 0xf2, 0x1a, 0x09, 0xb9, 0x09, 0xd9, + 0xad, 0xa5, 0xdb, 0x62, 0x0c, 0xe4, 0xa5, 0x9d, 0xad, 0xa5, 0xdb, 0xe8, 0xe4, 0x61, 0x8a, 0xf3, + 0x74, 0x77, 0x49, 0xf3, 0xc5, 0x6f, 0x2d, 0xdd, 0x26, 0x3f, 0x0b, 0x67, 0x4a, 0x6e, 0x20, 0xaa, + 0xe0, 0xc1, 0x16, 0x0d, 0x0c, 0x2e, 0x1c, 0xeb, 0x23, 0xbd, 0x9f, 0x4f, 0x95, 0xde, 0x17, 0x1a, + 0x11, 0x13, 0x9b, 0x47, 0x72, 0x34, 0x92, 0xb7, 0x7b, 0xd3, 0xeb, 0x21, 0xdf, 0x80, 0x19, 0xf4, + 0x37, 0x62, 0xfc, 0x09, 0x26, 0xdc, 0x18, 0xef, 0x53, 0xf3, 0x1b, 0xa9, 0x35, 0x5f, 0x40, 0xf7, + 0xa5, 0x8d, 0x51, 0x2c, 0x98, 0x9c, 0x43, 0xb3, 0x65, 0x35, 0xce, 0xe4, 0x43, 0x98, 0x15, 0x4a, + 0xc5, 0xc6, 0xde, 0xe6, 0x01, 0x2d, 0x39, 0x87, 0xe2, 0x94, 0x06, 0xed, 0x14, 0xa1, 0x89, 0xd8, + 0xde, 0x9e, 0x1d, 0x1e, 0x50, 0xbb, 0xe1, 0x68, 0xdb, 0x6f, 0x82, 0x90, 0x7c, 0x1b, 0x26, 0x57, + 0xbd, 0x3a, 0xd3, 0x27, 0x71, 0x65, 0x98, 0x40, 0x3e, 0x1f, 0x63, 0xe6, 0x54, 0x0e, 0x4e, 0x28, + 0x09, 0x3f, 0x39, 0x5a, 0x7c, 0xfb, 0xa4, 0x42, 0xa3, 0x54, 0x60, 0xa9, 0xb5, 0x91, 0x22, 0xe4, + 0x76, 0xe8, 0x2e, 0xfb, 0xda, 0x64, 0xd6, 0x3f, 0x09, 0x16, 0x07, 0x67, 0xe2, 0x97, 0x76, 0x70, + 0x26, 0x60, 0xc4, 0x87, 0x39, 0xec, 0x9f, 0xaa, 0x13, 0x04, 0x0f, 0x3c, 0xbf, 0x81, 0xb9, 0x74, + 0x26, 0xfb, 0x74, 0xfe, 0x52, 0x6a, 0xe7, 0x3f, 0xcb, 0x3b, 0xbf, 0xa3, 0x70, 0x50, 0xd5, 0xa2, + 0x1e, 0xf6, 0xe4, 0xeb, 0x30, 0x63, 0xd1, 0x6f, 0x76, 0x5d, 0x9f, 0xae, 0xdd, 0x2e, 0xe0, 0xac, + 0x9c, 0xd2, 0x42, 0x34, 0xf5, 0x42, 0xae, 0x7b, 0xf9, 0x1c, 0x26, 0xfd, 0x2a, 0x76, 0x6b, 0xcf, + 0xd1, 0xdd, 0xc4, 0x2a, 0x09, 0xa9, 0xc2, 0x64, 0x89, 0xde, 0x77, 0xeb, 0x14, 0x03, 0xc9, 0xd0, + 0x0e, 0x55, 0xb2, 0x90, 0xc5, 0x25, 0xdc, 0xc3, 0xd0, 0x40, 0x00, 0x0f, 0x4b, 0xd3, 0x63, 0xd2, + 0x23, 0x44, 0x72, 0x0b, 0xb2, 0x95, 0x52, 0x15, 0x8d, 0xd0, 0x38, 0x3e, 0xab, 0xd2, 0xa8, 0xca, + 0x8c, 0x5a, 0x78, 0xcc, 0xe5, 0x36, 0xb4, 0x24, 0x6a, 0x95, 0x52, 0x95, 0xec, 0xc1, 0x34, 0x76, + 0xc0, 0x0a, 0x75, 0x78, 0xdf, 0xce, 0xf6, 0xe9, 0xdb, 0x6b, 0xa9, 0x7d, 0xbb, 0xc0, 0xfb, 0xf6, + 0x40, 0x50, 0x6b, 0x29, 0x82, 0x54, 0xb6, 0xdc, 0x30, 0x34, 0xff, 0x23, 0x03, 0xa7, 0x3f, 0xb9, + 0x8a, 0xf7, 0x89, 0xa2, 0xb3, 0x15, 0xf4, 0x67, 0x39, 0x9d, 0x44, 0x7e, 0x0b, 0x8e, 0x42, 0x5e, + 0x83, 0xb1, 0xdb, 0x4e, 0x9d, 0x86, 0xd2, 0x23, 0x8f, 0xc8, 0x7b, 0x08, 0x51, 0x9d, 0x5f, 0x1c, + 0x87, 0x69, 0x26, 0xbc, 0x5b, 0x0a, 0x71, 0xc6, 0xf4, 0x62, 0x41, 0x5e, 0x94, 0x45, 0xcd, 0x44, + 0x74, 0xa7, 0x92, 0x52, 0xdd, 0xae, 0x3b, 0x2a, 0xaf, 0x54, 0x0e, 0xe6, 0xff, 0x6e, 0xc4, 0xf2, + 0x4c, 0x5e, 0x81, 0x11, 0xab, 0x1a, 0xb5, 0x9f, 0x47, 0x76, 0x26, 0x9a, 0x8f, 0x08, 0xe4, 0x2b, + 0x70, 0x46, 0xe1, 0x83, 0x7d, 0x42, 0x1b, 0xac, 0x41, 0xfc, 0x63, 0x5e, 0xc6, 0xd0, 0x43, 0xa5, + 0x25, 0x0e, 0xc7, 0x48, 0xb4, 0x28, 0x9d, 0x07, 0xaa, 0x61, 0x71, 0x41, 0x89, 0xb6, 0x5d, 0xce, + 0x5b, 0xf9, 0x58, 0x95, 0x77, 0x03, 0x11, 0x92, 0x1f, 0x9b, 0xc6, 0x81, 0x47, 0x1f, 0x9a, 0x1d, + 0x4d, 0x4c, 0xa3, 0xe4, 0xd4, 0xc6, 0x31, 0xc9, 0xa9, 0xdf, 0x02, 0x28, 0x74, 0x43, 0xaf, 0xdc, + 0xf6, 0xbd, 0x26, 0x37, 0x2a, 0x45, 0x86, 0x17, 0x74, 0x95, 0x51, 0x04, 0x6b, 0x31, 0x52, 0x11, + 0xb2, 0xf9, 0xaf, 0x0d, 0x25, 0x85, 0xf9, 0x53, 0xaa, 0x2c, 0xdc, 0xd2, 0x94, 0x85, 0x79, 0x41, + 0x1a, 0x7d, 0x15, 0x2b, 0x4b, 0x55, 0xf0, 0x66, 0x95, 0xf3, 0x63, 0x04, 0x7c, 0x2f, 0x03, 0x93, + 0x5b, 0x01, 0xf5, 0xf9, 0x39, 0xc8, 0x67, 0xeb, 0x82, 0x67, 0xf4, 0x5d, 0x43, 0x5d, 0xc1, 0xfb, + 0x13, 0x03, 0xfd, 0x63, 0x2a, 0x05, 0xeb, 0x0d, 0x06, 0x52, 0x7b, 0xa3, 0x1b, 0x50, 0xdf, 0x42, + 0x28, 0xbf, 0x7a, 0xb5, 0xaa, 0x5f, 0xbd, 0x6a, 0x5a, 0x0c, 0x46, 0x3e, 0x80, 0xd1, 0x2d, 0xb4, + 0xf6, 0xf5, 0xc0, 0xfb, 0x88, 0x3f, 0x16, 0xf2, 0x39, 0xdd, 0x65, 0x7f, 0xaa, 0x4b, 0x12, 0x96, + 0x91, 0x1a, 0x8c, 0x17, 0x7d, 0x8a, 0xc9, 0xca, 0x47, 0x86, 0x0f, 0x1e, 0xad, 0x73, 0x92, 0x64, + 0xf0, 0xa8, 0xe0, 0x64, 0xfe, 0x6a, 0x06, 0x48, 0xfc, 0x8d, 0x98, 0x4e, 0x2d, 0x78, 0x6a, 0x07, + 0xfd, 0x7d, 0x6d, 0xd0, 0x9f, 0xeb, 0x19, 0x74, 0xfe, 0x79, 0x43, 0x8d, 0xfd, 0x1f, 0x1a, 0x70, + 0x36, 0x9d, 0x90, 0xbc, 0x08, 0x63, 0x1b, 0x9b, 0x55, 0x79, 0x77, 0x43, 0x7c, 0x8a, 0xd7, 0x41, + 0xa3, 0xc4, 0x12, 0x45, 0xe4, 0x75, 0x18, 0xfb, 0xc8, 0x2a, 0xb2, 0x75, 0x4b, 0xc9, 0xeb, 0xf2, + 0x4d, 0xdf, 0xae, 0xeb, 0x4b, 0x97, 0x40, 0x52, 0xc7, 0x36, 0xfb, 0xc4, 0xc6, 0xf6, 0xfb, 0x19, + 0x98, 0x2d, 0xd4, 0xeb, 0x34, 0x08, 0x98, 0x22, 0x40, 0x83, 0xf0, 0xa9, 0x1d, 0xd8, 0xf4, 0x5b, + 0x19, 0xda, 0xb7, 0x0d, 0x35, 0xaa, 0x7f, 0x64, 0xc0, 0x19, 0x49, 0x75, 0xdf, 0xa5, 0x0f, 0x36, + 0x0f, 0x7c, 0x1a, 0x1c, 0x78, 0xcd, 0xc6, 0xd0, 0xc9, 0xa3, 0x98, 0x5e, 0x80, 0x69, 0x34, 0xd4, + 0x43, 0xb1, 0x3d, 0x84, 0x68, 0x7a, 0x01, 0x4f, 0xb5, 0x71, 0x1d, 0xc6, 0x0b, 0x9d, 0x8e, 0xef, + 0xdd, 0xe7, 0xd3, 0x7e, 0x5a, 0xc4, 0xd2, 0x72, 0x90, 0x16, 0x7b, 0xcb, 0x41, 0xac, 0x19, 0x25, + 0xda, 0xe6, 0xd7, 0x62, 0xa7, 0x79, 0x33, 0x1a, 0xb4, 0xad, 0x6a, 0xdb, 0x58, 0x6e, 0xfe, 0xd2, + 0x08, 0x4c, 0xa9, 0x1f, 0x42, 0x4c, 0x9e, 0x4a, 0xc6, 0xf3, 0xd5, 0x10, 0x77, 0x07, 0x21, 0x96, + 0x28, 0x89, 0x6f, 0x86, 0x64, 0x8e, 0xbd, 0x19, 0xb2, 0x03, 0xd3, 0x55, 0xdf, 0xeb, 0x78, 0x01, + 0x6d, 0xf0, 0xf7, 0x26, 0xf8, 0xaa, 0x75, 0x5a, 0xd1, 0x45, 0x59, 0x9f, 0xa3, 0xe7, 0x1f, 0x2d, + 0xb1, 0x8e, 0xc0, 0xb6, 0x93, 0xaf, 0x51, 0xe8, 0x7c, 0xf8, 0xa1, 0xa2, 0x13, 0x88, 0x8b, 0xea, + 0xd1, 0xa1, 0x22, 0x83, 0xe8, 0x87, 0x8a, 0x0c, 0xa2, 0x4e, 0x8b, 0xd1, 0x27, 0x35, 0x2d, 0xc8, + 0xaf, 0x1a, 0x30, 0x59, 0x68, 0xb7, 0xc5, 0x8d, 0x93, 0x63, 0x42, 0x6e, 0xbf, 0x2a, 0xce, 0x15, + 0xdf, 0xfe, 0x44, 0xe7, 0x8a, 0x9b, 0xbe, 0xe3, 0x86, 0x01, 0x2a, 0x21, 0x71, 0x85, 0xaa, 0x32, + 0xad, 0xb4, 0x83, 0xbc, 0x0d, 0xf9, 0x48, 0x1e, 0x2b, 0xed, 0x06, 0x7d, 0x48, 0x83, 0x85, 0xf1, + 0x8b, 0xd9, 0xcb, 0xd3, 0xfc, 0xa9, 0x1c, 0xed, 0xc0, 0x34, 0x89, 0x68, 0x7e, 0xdf, 0x80, 0xb3, + 0xaa, 0x40, 0xd4, 0xba, 0xbb, 0x2d, 0x17, 0x8d, 0x02, 0x72, 0x0d, 0x26, 0xc4, 0x78, 0x45, 0xaa, + 0x63, 0x6f, 0x06, 0x9d, 0x18, 0x85, 0x94, 0xd9, 0x10, 0x31, 0x1e, 0xc2, 0x4d, 0x73, 0x3a, 0x31, + 0xdd, 0x58, 0xd1, 0xf2, 0x82, 0xe8, 0xec, 0xbc, 0x8f, 0xbf, 0xf5, 0xb1, 0x63, 0x10, 0xf3, 0x3d, + 0x98, 0xd3, 0x5b, 0x59, 0xa3, 0x98, 0x05, 0x45, 0x7e, 0x9a, 0x91, 0xfe, 0x69, 0xb2, 0xdc, 0xdc, + 0x01, 0xd2, 0x43, 0x1f, 0xe0, 0xe1, 0x38, 0x0d, 0x65, 0xf0, 0x86, 0x74, 0x4d, 0xf7, 0x20, 0x46, + 0x8f, 0xf8, 0x4c, 0xaa, 0xdd, 0x8d, 0xa4, 0xe6, 0x3f, 0x9b, 0x84, 0xd3, 0x29, 0x4b, 0xc7, 0x31, + 0x5b, 0xfb, 0xa2, 0x3e, 0x79, 0x26, 0xa2, 0x68, 0x76, 0x39, 0x65, 0xde, 0x93, 0x4f, 0xb3, 0x0c, + 0x98, 0x2a, 0x83, 0xde, 0x6b, 0xf9, 0x34, 0xb6, 0x77, 0xf5, 0xc2, 0xc9, 0xe8, 0x13, 0xbb, 0x70, + 0xb2, 0x0c, 0xd3, 0xe2, 0xab, 0xc4, 0x54, 0x1e, 0x8b, 0x3d, 0x32, 0x3e, 0x2f, 0xb0, 0x7b, 0xa6, + 0xb4, 0x4e, 0xc2, 0x79, 0x04, 0x5e, 0xf3, 0x3e, 0x15, 0x3c, 0xc6, 0x55, 0x1e, 0x58, 0x90, 0xca, + 0x43, 0x21, 0x21, 0xff, 0x21, 0xe6, 0x55, 0x44, 0x88, 0x3a, 0x9f, 0x73, 0x83, 0xe6, 0x73, 0xe3, + 0xc9, 0xcc, 0xe7, 0xe7, 0x64, 0x1b, 0xd3, 0xe7, 0x75, 0x4a, 0xb3, 0xc8, 0xef, 0x18, 0x30, 0xc7, + 0x6f, 0x3d, 0xa8, 0x8d, 0x1d, 0x18, 0xc9, 0x5e, 0x7f, 0x32, 0x8d, 0x7d, 0x36, 0xc0, 0x6a, 0xfb, + 0xb4, 0xb5, 0xb7, 0x51, 0xe4, 0xcb, 0x00, 0xd1, 0x8c, 0x0a, 0x16, 0x40, 0xbf, 0xe9, 0x9f, 0xb6, + 0x7d, 0xc6, 0x79, 0x7e, 0xc2, 0x88, 0x4e, 0xcb, 0xa6, 0x19, 0x41, 0xc9, 0xcf, 0xc2, 0x3c, 0x9b, + 0x2f, 0x11, 0x44, 0xdc, 0xd1, 0x5a, 0x98, 0xc4, 0x5a, 0x3e, 0xd7, 0x7f, 0x6b, 0xbf, 0x96, 0x46, + 0xc6, 0xb3, 0x01, 0xc4, 0xc9, 0xa8, 0xc3, 0x96, 0x6a, 0x64, 0xa6, 0x51, 0xe0, 0xa5, 0x47, 0x6c, + 0x3d, 0xcf, 0xaa, 0xd3, 0x67, 0x7d, 0x3b, 0x2f, 0xe7, 0x02, 0x5f, 0xdf, 0x02, 0x3d, 0xf4, 0x16, + 0x41, 0xe4, 0x23, 0x20, 0xd1, 0x75, 0x01, 0x0e, 0xa3, 0xbe, 0x7c, 0x9b, 0x01, 0xdd, 0x33, 0xf1, + 0xb5, 0x03, 0x5f, 0x16, 0xab, 0x42, 0xd2, 0x4b, 0x4c, 0x28, 0xcc, 0x8b, 0x8f, 0x66, 0x50, 0x99, + 0x77, 0x32, 0x58, 0x98, 0xd1, 0x6e, 0xc0, 0xc5, 0x25, 0x71, 0xd6, 0x6a, 0x25, 0x79, 0xa5, 0x66, + 0x68, 0xa7, 0xb1, 0x23, 0xb7, 0x60, 0x62, 0xd5, 0xdb, 0x77, 0xdb, 0x2b, 0xf2, 0xc8, 0x5f, 0x1c, + 0x3f, 0x36, 0x19, 0xd0, 0x3e, 0xd0, 0x0f, 0xee, 0x63, 0x54, 0xa6, 0xd5, 0x96, 0xfc, 0x43, 0xab, + 0xdb, 0x5e, 0xc8, 0xa3, 0x7d, 0x8d, 0xea, 0x4c, 0xc3, 0x3f, 0xb4, 0xfd, 0xae, 0x1e, 0x20, 0x8d, + 0x48, 0x17, 0x76, 0xe1, 0x7c, 0xdf, 0x41, 0x4b, 0x49, 0x3c, 0x70, 0x5d, 0x4f, 0x3c, 0x70, 0xbe, + 0xdf, 0xe2, 0x1e, 0xa8, 0xc9, 0x07, 0x7e, 0xd3, 0x48, 0xac, 0xe6, 0x42, 0xf5, 0xe2, 0x09, 0xe3, + 0xfa, 0x6d, 0x77, 0x19, 0x4c, 0x64, 0xcc, 0xd7, 0xfb, 0x4c, 0xac, 0xf2, 0xb1, 0xf5, 0x5e, 0xdd, + 0x2f, 0x70, 0xe5, 0x7f, 0xcc, 0x85, 0xdd, 0xfc, 0xb5, 0x0c, 0x10, 0xde, 0xc2, 0xa2, 0xd3, 0x71, + 0x76, 0xdd, 0xa6, 0x1b, 0xba, 0x78, 0xd9, 0x23, 0x2f, 0x58, 0x38, 0xbb, 0x4d, 0xaa, 0xde, 0x94, + 0x12, 0x21, 0x30, 0x51, 0x99, 0x9d, 0x54, 0xd2, 0x7a, 0x08, 0xfb, 0x88, 0x62, 0xe6, 0x71, 0x44, + 0xf1, 0xeb, 0xf0, 0x4c, 0xa1, 0x83, 0xd9, 0x8a, 0x65, 0x2d, 0xb7, 0x3d, 0x5f, 0x0a, 0x91, 0xf4, + 0xf6, 0xe0, 0xd1, 0xac, 0x13, 0xa1, 0xf5, 0xb4, 0x74, 0x10, 0x0b, 0xf3, 0x9f, 0x64, 0xe0, 0x7c, + 0x6f, 0xc7, 0x88, 0x6f, 0x8b, 0x86, 0xc7, 0x38, 0x66, 0x78, 0xd2, 0xfa, 0x91, 0x7b, 0x7f, 0x9e, + 0x58, 0x3f, 0xf2, 0x74, 0xc1, 0x9f, 0xb0, 0x1f, 0x6b, 0x30, 0xa9, 0xce, 0xe4, 0x91, 0x4f, 0x3a, + 0x93, 0x55, 0x2e, 0xe6, 0x7f, 0x6a, 0xa8, 0x49, 0x6c, 0xc9, 0xeb, 0x69, 0x31, 0x96, 0x3c, 0xf5, + 0x04, 0x07, 0xeb, 0xe1, 0x95, 0xd2, 0x08, 0xcc, 0xa4, 0x1a, 0x81, 0x32, 0x8b, 0x46, 0x36, 0x35, + 0x8b, 0x46, 0x09, 0x66, 0x6b, 0xdd, 0x5d, 0x59, 0x37, 0x22, 0x8e, 0x68, 0x51, 0xcf, 0xb6, 0x6c, + 0xbf, 0x7e, 0x15, 0x4d, 0x23, 0x31, 0x7f, 0x3e, 0x03, 0x53, 0xd5, 0x66, 0x77, 0xdf, 0x6d, 0x97, + 0x9c, 0xd0, 0x79, 0x6a, 0xed, 0xd2, 0xb7, 0x34, 0xbb, 0x34, 0x0a, 0x25, 0x8e, 0x3e, 0x6c, 0x28, + 0xa3, 0xf4, 0x07, 0x06, 0xcc, 0xc6, 0x24, 0x7c, 0x71, 0x5c, 0x81, 0x11, 0xf6, 0x43, 0xa8, 0xb9, + 0x17, 0x7b, 0x18, 0xf3, 0x04, 0x92, 0xd1, 0x5f, 0xc2, 0x52, 0xd4, 0x1f, 0x03, 0x43, 0x0e, 0x17, + 0x3e, 0xcf, 0x9f, 0xe5, 0x39, 0x79, 0xe2, 0xc8, 0x7f, 0x6c, 0x40, 0x3e, 0xf9, 0x25, 0xe4, 0x2e, + 0x8c, 0x33, 0x4e, 0x6e, 0xf4, 0xc4, 0xcf, 0x4b, 0x7d, 0xbe, 0xf9, 0x9a, 0x40, 0xe3, 0xcd, 0xc3, + 0xce, 0xa7, 0x1c, 0x62, 0x49, 0x0e, 0x17, 0x2c, 0x98, 0x52, 0xb1, 0x52, 0x5a, 0xf7, 0x9a, 0xbe, + 0x23, 0x9c, 0x4d, 0xef, 0x07, 0xb5, 0xd5, 0xbf, 0xa1, 0xb5, 0x5a, 0xec, 0x05, 0xc3, 0x3e, 0xf0, + 0x86, 0xd9, 0x6b, 0xb8, 0x94, 0xaa, 0x72, 0x96, 0x22, 0xd0, 0x11, 0x1e, 0x33, 0x68, 0x79, 0x7d, + 0x42, 0xce, 0xd0, 0xa0, 0xed, 0x20, 0x44, 0xdd, 0x11, 0x39, 0x8e, 0xf9, 0x77, 0xb3, 0x70, 0x36, + 0x6e, 0x1e, 0x7f, 0xee, 0xae, 0xea, 0xf8, 0x4e, 0x2b, 0x38, 0x66, 0x06, 0x5c, 0xee, 0x69, 0x1a, + 0x66, 0x8c, 0x93, 0x4d, 0x53, 0x1a, 0x64, 0x26, 0x1a, 0x84, 0x9e, 0x00, 0xde, 0x20, 0xd9, 0x0c, + 0x72, 0x17, 0xb2, 0x35, 0x1a, 0x8a, 0xb5, 0xe8, 0x52, 0x4f, 0xaf, 0xaa, 0xed, 0xba, 0x56, 0xa3, + 0x21, 0x1f, 0x44, 0x7e, 0xb1, 0x89, 0x6a, 0x97, 0xed, 0x99, 0x4d, 0xb7, 0x03, 0x63, 0xe5, 0x87, + 0x1d, 0x5a, 0x0f, 0x45, 0xea, 0xa6, 0x2b, 0x83, 0xf9, 0x71, 0x5c, 0x25, 0x41, 0x14, 0x45, 0x80, + 0xda, 0x59, 0x1c, 0xe5, 0xc2, 0x2d, 0xc8, 0xc9, 0xca, 0x4f, 0x94, 0xe8, 0xe8, 0x2d, 0x98, 0x54, + 0x2a, 0x39, 0x91, 0xd0, 0xff, 0x85, 0x01, 0x63, 0x6c, 0x27, 0xd8, 0xbe, 0xf5, 0x94, 0xae, 0x48, + 0x37, 0xb5, 0x15, 0x69, 0x4e, 0xc9, 0xe7, 0x81, 0xf3, 0xf2, 0xd6, 0x31, 0x6b, 0xd1, 0x11, 0xdb, + 0x57, 0x22, 0x64, 0x72, 0x07, 0xc6, 0xc5, 0x51, 0x9e, 0x08, 0x3a, 0x52, 0x13, 0x84, 0xc8, 0x43, + 0xbe, 0x48, 0x55, 0xf6, 0x3a, 0x49, 0xdb, 0x42, 0x52, 0x93, 0x52, 0x7c, 0xb9, 0x5b, 0x4b, 0x0c, + 0xed, 0x61, 0xec, 0x33, 0x4f, 0x70, 0xa1, 0x24, 0x4f, 0xef, 0x73, 0xdf, 0xaa, 0x20, 0xbc, 0x63, + 0xd9, 0x41, 0x4c, 0xce, 0xca, 0xec, 0xbe, 0xa9, 0x8e, 0xb3, 0xef, 0xe6, 0x79, 0x6a, 0x08, 0xd9, + 0xb0, 0x77, 0x61, 0xea, 0xb6, 0xe7, 0x3f, 0x70, 0x7c, 0x7e, 0xe1, 0x17, 0x3f, 0x93, 0x9f, 0x1b, + 0x4d, 0xef, 0x71, 0x38, 0xbf, 0x32, 0xfc, 0x93, 0xa3, 0xc5, 0x91, 0x65, 0xcf, 0x6b, 0x5a, 0x1a, + 0x3a, 0xd9, 0x80, 0xe9, 0x35, 0xe7, 0xa1, 0x08, 0x90, 0xd9, 0xdc, 0x5c, 0x15, 0xc1, 0x8c, 0x57, + 0x1e, 0x1d, 0x2d, 0x9e, 0x6f, 0x39, 0x0f, 0xa3, 0x83, 0xd9, 0xfe, 0xf7, 0xcf, 0x75, 0x7a, 0xe2, + 0xc2, 0x4c, 0xd5, 0xf3, 0x43, 0x51, 0x09, 0x33, 0x8c, 0xb2, 0x7d, 0x8e, 0x46, 0xaf, 0xa7, 0x1e, + 0x8d, 0x9e, 0x67, 0xd6, 0xa0, 0xbd, 0x17, 0x91, 0x6b, 0x17, 0xee, 0x34, 0xc6, 0xe4, 0x5d, 0x98, + 0x2b, 0x52, 0x3f, 0x74, 0xf7, 0xdc, 0xba, 0x13, 0xd2, 0xdb, 0x9e, 0xdf, 0x72, 0x42, 0xb1, 0x97, + 0xa3, 0x57, 0xa6, 0x4e, 0x39, 0xa7, 0x96, 0x13, 0x5a, 0xbd, 0x98, 0xe4, 0x2b, 0x69, 0xe1, 0xa1, + 0xa3, 0x71, 0x10, 0x5c, 0x4a, 0x78, 0x68, 0xbf, 0x20, 0xb8, 0xde, 0x40, 0xd1, 0xfd, 0x41, 0xb1, + 0x17, 0xb9, 0xe5, 0x1b, 0x22, 0x6c, 0xe3, 0xf8, 0xd8, 0x8a, 0x68, 0xdc, 0xfa, 0xc4, 0x58, 0x2c, + 0x41, 0x76, 0xb9, 0x7a, 0x1b, 0xfd, 0x6c, 0x22, 0xd6, 0x81, 0xb6, 0x0f, 0x9c, 0x76, 0x1d, 0x15, + 0x3c, 0x11, 0xef, 0xa4, 0x2e, 0x78, 0xcb, 0xd5, 0xdb, 0xc4, 0x81, 0xd3, 0x55, 0xea, 0xb7, 0xdc, + 0xf0, 0x4b, 0x37, 0x6e, 0x28, 0x03, 0x95, 0xc3, 0xa6, 0x5d, 0x17, 0x4d, 0x5b, 0xec, 0x20, 0x8a, + 0xfd, 0xf0, 0xc6, 0x8d, 0xd4, 0xe1, 0x88, 0x1a, 0x96, 0xc6, 0x8b, 0x94, 0x61, 0x66, 0xcd, 0x79, + 0x18, 0x87, 0xa9, 0x05, 0x22, 0xd0, 0xfe, 0x39, 0x29, 0x58, 0x71, 0x88, 0x9b, 0x76, 0x31, 0x4c, + 0x27, 0x22, 0xef, 0xc0, 0x64, 0x2c, 0x5e, 0x81, 0x08, 0x51, 0x44, 0x45, 0x4d, 0x11, 0x4e, 0x4d, + 0xc9, 0x54, 0xd0, 0xc9, 0x56, 0xe4, 0xe7, 0xe1, 0x5a, 0xba, 0x48, 0x5d, 0x7b, 0x5d, 0xf5, 0xf3, + 0x38, 0x58, 0xa2, 0x7d, 0xd6, 0x6c, 0x64, 0x19, 0xf1, 0xb8, 0x3d, 0x4b, 0xe7, 0xa2, 0xb8, 0x8f, + 0xaa, 0xbe, 0xd7, 0xea, 0x84, 0x18, 0xe7, 0x90, 0x70, 0x1f, 0x75, 0xb0, 0x24, 0xc5, 0x7d, 0xc4, + 0x49, 0x08, 0x85, 0x91, 0x55, 0xaf, 0x7e, 0x0f, 0x23, 0x0f, 0x26, 0x96, 0x3f, 0x62, 0xd3, 0xbd, + 0xe9, 0xd5, 0xef, 0x3d, 0xb9, 0x98, 0x12, 0x64, 0x4f, 0xd6, 0x59, 0x53, 0x99, 0x14, 0x88, 0x3e, + 0x11, 0x71, 0x0a, 0xf3, 0x91, 0xf6, 0xae, 0x94, 0x71, 0xbd, 0x82, 0x0b, 0x8d, 0xec, 0x5a, 0x4b, + 0x27, 0x27, 0x14, 0xf2, 0x25, 0x1a, 0xdc, 0x0b, 0xbd, 0x4e, 0xb1, 0xe9, 0x76, 0x76, 0x3d, 0xc7, + 0x6f, 0xa0, 0x25, 0x9d, 0x36, 0xbf, 0x5f, 0x49, 0x9d, 0xdf, 0x73, 0x0d, 0x4e, 0x6f, 0xd7, 0x25, + 0x03, 0xab, 0x87, 0x25, 0xf9, 0x0a, 0xcc, 0x30, 0xe1, 0x2e, 0x3f, 0x0c, 0x69, 0x9b, 0x8f, 0xfc, + 0x1c, 0xee, 0xcc, 0xf3, 0x4a, 0x22, 0xa5, 0xa8, 0x90, 0xcb, 0x14, 0x4e, 0x76, 0x1a, 0x11, 0xa8, + 0x32, 0xa5, 0xb3, 0x22, 0x0d, 0x58, 0x58, 0x73, 0x1e, 0xc6, 0xb7, 0x3d, 0x55, 0x21, 0x25, 0x28, + 0x60, 0xf8, 0xda, 0x0c, 0x13, 0xb0, 0x38, 0xe1, 0x41, 0x1f, 0x79, 0xed, 0xcb, 0x89, 0x7c, 0x1b, + 0xce, 0x89, 0xcf, 0x2a, 0x61, 0x96, 0x40, 0xcf, 0x3f, 0xac, 0x1d, 0x38, 0x18, 0xa1, 0x7a, 0xfa, + 0x64, 0x0b, 0xa2, 0xec, 0xb0, 0x86, 0xe4, 0x63, 0x07, 0x9c, 0x91, 0xd5, 0xaf, 0x06, 0xf2, 0x75, + 0x98, 0xe1, 0x0e, 0xd4, 0x15, 0x2f, 0x08, 0xd1, 0x08, 0x9d, 0xef, 0x53, 0xe7, 0xa5, 0xd4, 0x3a, + 0xf3, 0xdc, 0x2b, 0xcb, 0x43, 0x15, 0xd1, 0x87, 0x9c, 0xe0, 0x47, 0xde, 0x86, 0xc9, 0xaa, 0xdb, + 0xe6, 0x37, 0x9f, 0x2b, 0xd5, 0x85, 0x33, 0xf1, 0xae, 0xd3, 0x71, 0xdb, 0xb6, 0xb4, 0xff, 0x3a, + 0xd1, 0x22, 0xa1, 0x62, 0x93, 0x1d, 0x98, 0xac, 0xd5, 0x56, 0x6e, 0xbb, 0x6c, 0xdb, 0xeb, 0x1c, + 0x2e, 0x9c, 0xed, 0xd3, 0xb6, 0x17, 0x53, 0xdb, 0x36, 0x1d, 0x04, 0x07, 0xf8, 0x0e, 0x87, 0x5d, + 0xf7, 0x3a, 0x87, 0x96, 0xca, 0x29, 0x25, 0x04, 0xe9, 0xdc, 0x13, 0x0e, 0x41, 0xaa, 0xc0, 0xac, + 0x12, 0xdb, 0x81, 0x71, 0x1d, 0x0b, 0xf1, 0x53, 0x25, 0x6a, 0xc8, 0x51, 0x32, 0x90, 0x3c, 0x49, + 0x27, 0x63, 0x8f, 0xce, 0x9f, 0x30, 0xf6, 0xe8, 0xc3, 0x91, 0xdc, 0x74, 0x7e, 0xc6, 0xfc, 0xcf, + 0x33, 0x89, 0xa9, 0x4d, 0x2a, 0x30, 0x2e, 0xe4, 0x41, 0xe8, 0x3a, 0xbd, 0x3d, 0xfa, 0x5c, 0x6a, + 0x8f, 0x8e, 0x0b, 0x09, 0xb3, 0x24, 0x3d, 0x79, 0xc0, 0x58, 0xed, 0x39, 0xdd, 0xa6, 0x4c, 0x55, + 0xf1, 0x35, 0x3e, 0x73, 0x11, 0xa4, 0xad, 0x51, 0xa5, 0x93, 0x07, 0x4b, 0xea, 0xb1, 0xb8, 0xb8, + 0x58, 0xc9, 0xda, 0xc8, 0x3d, 0x9e, 0x9f, 0x2b, 0x1b, 0x45, 0xdc, 0xe9, 0xc9, 0xb8, 0x9e, 0x58, + 0x85, 0xac, 0x16, 0xf3, 0x9f, 0x1a, 0x30, 0xad, 0xad, 0x0d, 0xe4, 0x96, 0x12, 0x4e, 0x1a, 0xdf, + 0x1b, 0xd0, 0x70, 0x50, 0x70, 0x92, 0x81, 0xa6, 0xb7, 0x44, 0x88, 0x4f, 0xa6, 0x3f, 0x5d, 0xea, + 0xe3, 0x29, 0x83, 0x3d, 0x15, 0x51, 0xbe, 0xcf, 0x91, 0x3e, 0xf9, 0x3e, 0xff, 0xcd, 0x1c, 0xcc, + 0xe8, 0xca, 0x23, 0xb3, 0xe6, 0xd0, 0xdb, 0x29, 0x5d, 0x71, 0x3c, 0x83, 0x2d, 0x42, 0xb4, 0x67, + 0x19, 0x10, 0x42, 0x5e, 0x06, 0x88, 0x62, 0x67, 0xa4, 0xb7, 0x6d, 0xf4, 0xd1, 0xd1, 0xa2, 0xf1, + 0xba, 0xa5, 0x14, 0x90, 0x9f, 0x02, 0x58, 0xf7, 0x1a, 0x34, 0xca, 0xb1, 0x3c, 0xc0, 0xe3, 0xff, + 0x4a, 0x4f, 0xee, 0x9a, 0x33, 0x6d, 0xaf, 0x41, 0x7b, 0x13, 0xd5, 0x28, 0x1c, 0xc9, 0x17, 0x61, + 0xd4, 0xea, 0x36, 0xa9, 0xf4, 0x2d, 0x4d, 0xca, 0xd9, 0xda, 0x6d, 0x2a, 0x2f, 0x92, 0xfa, 0xdd, + 0xe4, 0x41, 0x2f, 0x03, 0x90, 0xf7, 0x79, 0x4e, 0x1b, 0x71, 0xfb, 0x7c, 0x34, 0xf6, 0x3f, 0x2a, + 0x6b, 0x77, 0xcf, 0xfd, 0x73, 0x85, 0x84, 0x6c, 0xc0, 0xb8, 0xd8, 0x9a, 0xc5, 0x41, 0xea, 0xf3, + 0x69, 0x2e, 0x7c, 0x45, 0x3f, 0x17, 0x49, 0x72, 0x11, 0xac, 0x7b, 0xd5, 0xb9, 0xdf, 0xef, 0x1d, + 0x98, 0x60, 0xec, 0xf9, 0x13, 0x9b, 0xe3, 0xb1, 0x97, 0x51, 0x69, 0x50, 0xf2, 0x95, 0xcd, 0x98, + 0x80, 0x7c, 0x05, 0xb3, 0x66, 0x8b, 0xae, 0x1e, 0x78, 0x12, 0x74, 0xa9, 0xa7, 0xab, 0xe7, 0x9d, + 0x4e, 0x27, 0xe5, 0x91, 0x82, 0x88, 0x1f, 0xd9, 0x8f, 0x2e, 0x7b, 0x0f, 0x93, 0x87, 0xe8, 0x6a, + 0x4f, 0x05, 0x0b, 0xf2, 0xfe, 0x72, 0x6f, 0xae, 0x6c, 0x8d, 0x2f, 0xe9, 0x40, 0x3e, 0xde, 0x16, + 0x45, 0x5d, 0x30, 0xa8, 0xae, 0xd7, 0x7b, 0xea, 0x52, 0x07, 0xb0, 0xa7, 0xba, 0x1e, 0xee, 0xa4, + 0x11, 0x3f, 0x21, 0x2c, 0xea, 0x9b, 0x1c, 0x54, 0xdf, 0xcb, 0x3d, 0xf5, 0x9d, 0x6e, 0xec, 0xf6, + 0xd6, 0x93, 0xe0, 0x49, 0xde, 0x81, 0x69, 0x09, 0xc1, 0xf9, 0x21, 0xde, 0x35, 0xe0, 0x8f, 0x5f, + 0xef, 0x62, 0x10, 0xb7, 0x9e, 0xc9, 0x59, 0x45, 0x56, 0xa9, 0xb9, 0x74, 0x4c, 0x6b, 0xd4, 0x49, + 0xa9, 0xd0, 0x91, 0xc9, 0xc7, 0x30, 0x59, 0x69, 0xb1, 0x0f, 0xf1, 0xda, 0x4e, 0x48, 0x45, 0xcc, + 0xaa, 0x3c, 0xd5, 0x52, 0x4a, 0x14, 0x51, 0xe5, 0x4f, 0x90, 0xc5, 0x45, 0xaa, 0xa2, 0xac, 0x50, + 0xb0, 0xce, 0xe3, 0xfe, 0x5e, 0x21, 0xc3, 0x32, 0x9e, 0xf5, 0xb9, 0x94, 0x93, 0x25, 0x85, 0xbd, + 0xc8, 0xf2, 0xc0, 0xa0, 0xb6, 0x98, 0x10, 0x89, 0x2c, 0x0f, 0x2a, 0x4f, 0xf2, 0x2e, 0x4c, 0x8a, + 0x14, 0x6d, 0x05, 0x6b, 0x3d, 0x58, 0xc8, 0xc7, 0xaf, 0xcf, 0xca, 0x6c, 0x6e, 0xb6, 0xe3, 0x27, + 0xc2, 0x0b, 0x62, 0x7c, 0xf2, 0x25, 0x98, 0xdf, 0x71, 0xdb, 0x0d, 0xef, 0x41, 0x20, 0xb6, 0x29, + 0xb1, 0xd0, 0xcd, 0xc5, 0x61, 0x9b, 0x0f, 0x78, 0xb9, 0x2d, 0x55, 0xa6, 0x9e, 0x85, 0x2f, 0x95, + 0x03, 0xf9, 0x99, 0x1e, 0xce, 0x5c, 0x82, 0xc8, 0x20, 0x09, 0x5a, 0xea, 0x91, 0xa0, 0xde, 0xea, + 0x93, 0xe2, 0x94, 0x5a, 0x0d, 0xf1, 0x80, 0x08, 0x2d, 0x43, 0xec, 0x55, 0x1f, 0x7a, 0x6e, 0x7b, + 0xe1, 0x34, 0xae, 0x85, 0xcf, 0x24, 0xef, 0xbd, 0x20, 0x1e, 0x7f, 0xeb, 0x4c, 0xbe, 0xd8, 0xa8, + 0xeb, 0x2f, 0xdf, 0xf0, 0x34, 0xc7, 0x5d, 0x0a, 0x6b, 0xf2, 0x31, 0x4c, 0xb1, 0xff, 0x23, 0xb3, + 0x6a, 0x5e, 0x8b, 0x45, 0x50, 0x30, 0x45, 0x3d, 0x38, 0x46, 0x98, 0x43, 0x2e, 0xc5, 0xe2, 0xd2, + 0x58, 0x91, 0xb7, 0x00, 0x98, 0x8e, 0x28, 0x96, 0xe3, 0x33, 0x71, 0xa2, 0x3f, 0x54, 0x25, 0x7b, + 0x17, 0xe2, 0x18, 0x99, 0xd9, 0x7a, 0xec, 0x57, 0xad, 0xdb, 0xf0, 0xd8, 0xdc, 0x38, 0x8b, 0xb4, + 0x68, 0xeb, 0x21, 0x6d, 0xc0, 0xe1, 0xaa, 0x74, 0x28, 0xe8, 0x64, 0x05, 0x66, 0x31, 0xf9, 0x49, + 0xa5, 0x41, 0xdb, 0x21, 0x9e, 0xc3, 0x2c, 0x9c, 0x53, 0x4e, 0x78, 0x58, 0x91, 0xed, 0x46, 0x65, + 0xaa, 0x5e, 0x96, 0x20, 0x23, 0x01, 0x9c, 0x8e, 0x57, 0x97, 0xf8, 0xbc, 0x68, 0x01, 0x3b, 0x49, + 0x9e, 0xe9, 0xf5, 0x62, 0xf0, 0xf5, 0x98, 0x8d, 0x88, 0xb2, 0x70, 0x49, 0xf7, 0xa6, 0x5a, 0x61, + 0x1a, 0x77, 0x62, 0x01, 0xb9, 0x53, 0xac, 0xea, 0x69, 0x61, 0x82, 0x85, 0xf3, 0xf8, 0x05, 0x38, + 0xcc, 0xfb, 0xf5, 0x8e, 0x9d, 0x48, 0x28, 0xa3, 0x1d, 0xdc, 0xf4, 0x52, 0x93, 0x6f, 0xc1, 0x99, + 0xe8, 0x81, 0x6a, 0x5e, 0x24, 0xe4, 0xfa, 0xc2, 0x09, 0x57, 0xe2, 0xc6, 0x6e, 0x54, 0x75, 0x8f, + 0x48, 0xa7, 0x57, 0x41, 0x1c, 0x98, 0xc4, 0x61, 0x15, 0x35, 0x3e, 0x33, 0xa8, 0xc6, 0xcb, 0x3d, + 0x35, 0x9e, 0xe5, 0xef, 0x36, 0xf6, 0x54, 0xa6, 0xf2, 0x34, 0xff, 0x8e, 0x01, 0xa4, 0xb7, 0x2b, + 0x87, 0xf6, 0x95, 0xbf, 0xa9, 0x84, 0x4c, 0xab, 0xef, 0xfc, 0x45, 0x39, 0xa7, 0xd4, 0x2d, 0x34, + 0x0e, 0xae, 0xbe, 0xa4, 0xa9, 0x6c, 0x7d, 0xe3, 0xec, 0xcc, 0x3f, 0x33, 0x60, 0x3e, 0x6d, 0xd2, + 0x1e, 0x93, 0xe3, 0xdd, 0x4c, 0x84, 0xe7, 0xa1, 0xf3, 0x9b, 0x87, 0xe7, 0x45, 0x41, 0x79, 0x8b, + 0x30, 0xca, 0xbe, 0x40, 0x1e, 0x61, 0xa2, 0x5e, 0xc8, 0x3e, 0x31, 0xb0, 0x38, 0x9c, 0x21, 0xf0, + 0x8b, 0x85, 0x4c, 0x71, 0x1c, 0xe5, 0x08, 0x28, 0x13, 0x16, 0x87, 0x33, 0x04, 0xa6, 0x7f, 0x4a, + 0x7d, 0x09, 0x11, 0x98, 0x5a, 0x1a, 0x58, 0x1c, 0x4e, 0x2e, 0xc1, 0xf8, 0x46, 0x7b, 0x95, 0x3a, + 0xf7, 0x65, 0x2e, 0x2c, 0x74, 0xd6, 0x7b, 0x6d, 0xbb, 0xc9, 0x60, 0x96, 0x2c, 0x34, 0x7f, 0x60, + 0xc0, 0x5c, 0xcf, 0x7a, 0x71, 0x7c, 0x1a, 0xfb, 0xc1, 0x81, 0x48, 0xc3, 0x7c, 0x1f, 0x6f, 0xfe, + 0x48, 0x7a, 0xf3, 0xcd, 0xdf, 0x1b, 0x81, 0x73, 0x7d, 0xd4, 0xb7, 0x38, 0x88, 0xd0, 0x38, 0x36, + 0x88, 0xf0, 0xab, 0x4c, 0x5d, 0x72, 0xdc, 0x56, 0xb0, 0xe9, 0xc5, 0x2d, 0x8e, 0xe3, 0x2d, 0xb0, + 0x4c, 0x66, 0x99, 0x7e, 0x41, 0xcc, 0xfe, 0xf3, 0x75, 0xa4, 0xb0, 0x43, 0xaf, 0xe7, 0xb4, 0x56, + 0x67, 0xd6, 0x13, 0xc6, 0x97, 0xfd, 0xb7, 0x24, 0x8c, 0x4f, 0x0f, 0x9e, 0x19, 0x79, 0xa2, 0xc1, + 0x33, 0xe9, 0xc7, 0xd3, 0xa3, 0x8f, 0x73, 0xcc, 0x5f, 0x84, 0xe9, 0x1a, 0x75, 0xfc, 0xfa, 0x41, + 0x21, 0xe0, 0x83, 0x34, 0x16, 0x67, 0xa0, 0x0a, 0xb0, 0xc0, 0x76, 0x82, 0xde, 0xb1, 0xd0, 0x68, + 0xcc, 0x1f, 0x64, 0xf4, 0xe8, 0xc3, 0x7f, 0x1b, 0xe5, 0xe5, 0x0a, 0x8c, 0xee, 0x1c, 0x50, 0x5f, + 0x2e, 0x3d, 0xd8, 0x90, 0x07, 0x0c, 0xa0, 0x36, 0x04, 0x31, 0xc8, 0x6d, 0x98, 0xa9, 0xf2, 0xfe, + 0x93, 0x9d, 0x32, 0x12, 0xef, 0x85, 0x1d, 0xa1, 0xb1, 0xa5, 0xf4, 0x4a, 0x82, 0xca, 0xfc, 0x36, + 0x4c, 0xa9, 0x8d, 0xc6, 0x85, 0x85, 0xfd, 0x16, 0x33, 0x9b, 0x2f, 0x2c, 0x0c, 0x60, 0x71, 0xf8, + 0xb1, 0x4f, 0x54, 0xc4, 0xbd, 0x99, 0x3d, 0xae, 0x37, 0x59, 0xe5, 0x28, 0xb7, 0x4a, 0xe5, 0xf8, + 0x5b, 0xad, 0x3c, 0x64, 0x00, 0x8b, 0xc3, 0x9f, 0x68, 0xe5, 0xff, 0x85, 0xcc, 0x90, 0xf6, 0x26, + 0x4c, 0xc4, 0x3a, 0x40, 0x9c, 0x08, 0xf8, 0x74, 0xda, 0xce, 0x1e, 0x63, 0xb2, 0xaa, 0xb6, 0xa9, + 0xbf, 0xab, 0x85, 0x2a, 0xdf, 0x67, 0x00, 0xb5, 0x2a, 0xc4, 0x38, 0xc9, 0xb8, 0x5e, 0x87, 0xf1, + 0x82, 0xf0, 0x54, 0xf2, 0x01, 0xe5, 0xe1, 0xd8, 0x3d, 0x6e, 0x49, 0x89, 0x65, 0xfe, 0xd0, 0x80, + 0x33, 0xa9, 0xa6, 0x01, 0xab, 0x95, 0xdb, 0x20, 0x8a, 0x58, 0x27, 0x0d, 0x10, 0x8e, 0x71, 0x92, + 0xb0, 0xeb, 0xe1, 0xbf, 0xc5, 0x7c, 0x01, 0x26, 0x22, 0xc7, 0x14, 0x99, 0x97, 0x43, 0x87, 0xc7, + 0x57, 0xd2, 0xbf, 0xf1, 0x17, 0x06, 0x8c, 0xb1, 0x26, 0x3c, 0xb5, 0x17, 0xa0, 0xd3, 0x0f, 0x33, + 0xd9, 0x27, 0x0d, 0x75, 0xed, 0xf9, 0xb7, 0xc7, 0x00, 0x62, 0x64, 0xb2, 0x0b, 0x33, 0x1b, 0x95, + 0x52, 0x51, 0xd1, 0x70, 0xf5, 0x0c, 0x70, 0xd1, 0xb3, 0x29, 0x1c, 0xe1, 0x30, 0x5e, 0x63, 0x3c, + 0xb7, 0x51, 0x4f, 0xd7, 0x7e, 0x13, 0x1c, 0x59, 0x1d, 0xb5, 0xc2, 0xda, 0xaa, 0x52, 0x47, 0x66, + 0xc8, 0x3a, 0x02, 0xa7, 0xd5, 0xec, 0x53, 0x87, 0xce, 0x91, 0x1c, 0x40, 0xfe, 0x0e, 0xee, 0x62, + 0x4a, 0x2d, 0xd9, 0xc1, 0xb5, 0xbc, 0x28, 0x6a, 0x79, 0x86, 0x6f, 0x7f, 0xe9, 0xf5, 0xf4, 0x70, + 0x8d, 0x25, 0x77, 0xe4, 0x58, 0xc9, 0xfd, 0xeb, 0x06, 0x8c, 0xf1, 0x6d, 0x52, 0x8c, 0x56, 0x9f, + 0x8d, 0x78, 0xe7, 0xc9, 0x6c, 0xc4, 0x79, 0x5c, 0xb9, 0x34, 0x9f, 0x1c, 0x2f, 0x23, 0x25, 0x18, + 0xab, 0x85, 0x4e, 0xd8, 0x95, 0x71, 0xfd, 0xf2, 0xc4, 0x1a, 0x6d, 0x55, 0x5e, 0x12, 0x07, 0xaf, + 0x07, 0xf8, 0x5b, 0xe5, 0xc2, 0x31, 0x48, 0x25, 0x8e, 0x9b, 0x1e, 0x3f, 0x36, 0x6e, 0x5a, 0xc6, + 0x9a, 0x8f, 0x8b, 0xb8, 0x69, 0x3d, 0x5a, 0x7a, 0x15, 0x26, 0x44, 0x34, 0xf6, 0xf2, 0xa1, 0xf0, + 0x48, 0x49, 0xcf, 0x72, 0x04, 0x57, 0xde, 0xc9, 0xe4, 0x20, 0x7b, 0x57, 0x7b, 0x03, 0x26, 0x42, + 0x24, 0x1b, 0x30, 0x11, 0x5f, 0x07, 0xd7, 0xb3, 0x9a, 0x44, 0x70, 0x71, 0x5d, 0x49, 0x86, 0x74, + 0xa6, 0xdc, 0xfe, 0x8e, 0x79, 0x98, 0xbf, 0x64, 0x40, 0x3e, 0x29, 0x2f, 0xf8, 0x3a, 0xbf, 0xbc, + 0x40, 0x1f, 0x45, 0x51, 0xf2, 0xd7, 0xf9, 0xa3, 0x1b, 0xf7, 0xfa, 0xab, 0xf0, 0x0a, 0x3a, 0x59, + 0x82, 0x1c, 0x9b, 0x76, 0xed, 0xc4, 0xf3, 0xfc, 0x5d, 0x01, 0x53, 0xc3, 0x68, 0x24, 0x9e, 0x32, + 0x6b, 0xff, 0x45, 0x16, 0x26, 0x95, 0xc1, 0x22, 0x57, 0x20, 0x57, 0x09, 0x56, 0xbd, 0xfa, 0x3d, + 0xda, 0x10, 0xa7, 0xf3, 0xd3, 0x8f, 0x8e, 0x16, 0x27, 0xdc, 0xc0, 0x6e, 0x22, 0xd0, 0x8a, 0x8a, + 0xc9, 0x32, 0x4c, 0xf3, 0xbf, 0x64, 0x66, 0x9d, 0x4c, 0x7c, 0xb2, 0xc8, 0x91, 0x65, 0x4e, 0x1d, + 0x55, 0x4d, 0xd0, 0x48, 0xc8, 0xd7, 0x00, 0x38, 0x60, 0xc8, 0xc7, 0x84, 0xe5, 0x04, 0x3e, 0x23, + 0x2a, 0x48, 0x79, 0x53, 0x58, 0x61, 0x48, 0xbe, 0xce, 0xef, 0xc6, 0x4b, 0xe1, 0x3a, 0x3e, 0xd2, + 0xdf, 0x94, 0x61, 0x81, 0x8c, 0xbf, 0x9d, 0x1e, 0x99, 0xaf, 0xb2, 0x24, 0xdf, 0x37, 0xe0, 0x82, + 0x45, 0xeb, 0xde, 0x7d, 0xea, 0x1f, 0x16, 0x42, 0xc4, 0x52, 0x6b, 0x3c, 0xfe, 0x1a, 0xc0, 0x4d, + 0x51, 0xe3, 0x2b, 0xbe, 0xe0, 0x82, 0x97, 0x96, 0x5b, 0x9d, 0xd0, 0x1e, 0xd0, 0x84, 0x01, 0x55, + 0x9a, 0xff, 0xbd, 0xa1, 0x4c, 0x01, 0xb2, 0x8e, 0xd9, 0x6a, 0xb9, 0xb0, 0x88, 0x93, 0x96, 0x48, + 0xc3, 0x93, 0x70, 0x8b, 0xee, 0x2d, 0x3f, 0x23, 0x0e, 0xd2, 0x4f, 0x47, 0x22, 0x97, 0xc8, 0x62, + 0xcb, 0x81, 0xe4, 0x03, 0xf1, 0xee, 0xf3, 0xf1, 0x0f, 0x6a, 0xc8, 0xad, 0x66, 0x84, 0x8d, 0x91, + 0xf2, 0xda, 0xf3, 0x1b, 0x22, 0xd2, 0x34, 0xab, 0x3d, 0xea, 0xc6, 0x40, 0xac, 0x1d, 0xd1, 0x1e, + 0x13, 0x5f, 0x06, 0x51, 0xa4, 0xf5, 0xd7, 0x32, 0x90, 0x4f, 0x4e, 0x3c, 0xf2, 0x3e, 0x4c, 0xc9, + 0xab, 0xfd, 0x2b, 0x8e, 0x48, 0xd8, 0x33, 0x25, 0x12, 0xe6, 0x08, 0xb8, 0x7d, 0xe0, 0x68, 0xcf, + 0xa4, 0x68, 0x04, 0x6c, 0x43, 0xde, 0x14, 0x77, 0x0c, 0x95, 0x09, 0x14, 0x7a, 0x61, 0x27, 0xf1, + 0xc6, 0x93, 0x44, 0x23, 0x6f, 0x42, 0x76, 0xed, 0x76, 0x41, 0x44, 0x60, 0xc9, 0xf5, 0x65, 0xed, + 0x76, 0x81, 0x9f, 0x9a, 0xf1, 0xc3, 0x30, 0xfd, 0x68, 0x8e, 0xe1, 0x93, 0x55, 0x25, 0x5b, 0xc2, + 0x98, 0x96, 0xfb, 0x53, 0x82, 0xa3, 0x8f, 0x3b, 0x3e, 0x6d, 0x82, 0xfa, 0x86, 0x8c, 0xf9, 0x1f, + 0x64, 0x61, 0x22, 0xaa, 0x9f, 0x10, 0x40, 0x7d, 0x43, 0x04, 0x61, 0xe1, 0xdf, 0xe4, 0x3c, 0xe4, + 0xa4, 0x8a, 0x21, 0x1f, 0x9b, 0x0e, 0x84, 0x7a, 0xb1, 0x00, 0x52, 0x97, 0xe0, 0xea, 0x85, 0x25, + 0x7f, 0x92, 0x1b, 0x10, 0x29, 0x0a, 0xfd, 0x34, 0x8a, 0x11, 0x36, 0x60, 0x56, 0x84, 0x46, 0x66, + 0x20, 0xe3, 0xf2, 0xfb, 0x63, 0x13, 0x56, 0xc6, 0x6d, 0x90, 0xf7, 0x21, 0xe7, 0x34, 0x1a, 0xb4, + 0x61, 0x3b, 0xf2, 0xc8, 0x62, 0x90, 0xd0, 0xe4, 0x18, 0x37, 0xbe, 0xa2, 0x23, 0x55, 0x21, 0x24, + 0x05, 0x98, 0xc0, 0x37, 0xd5, 0xbb, 0x01, 0x6d, 0x0c, 0xb1, 0x3d, 0xc4, 0x1c, 0x72, 0x8c, 0x6c, + 0x2b, 0xa0, 0x0d, 0xf2, 0x0a, 0x8c, 0xb0, 0xd1, 0x14, 0xfb, 0x41, 0xf4, 0x22, 0xce, 0xc6, 0x66, + 0x95, 0x77, 0xd8, 0xca, 0x29, 0x0b, 0x11, 0xc8, 0x4b, 0x90, 0xed, 0x2e, 0xed, 0x89, 0x95, 0x3e, + 0x1f, 0x67, 0x2e, 0x89, 0xd0, 0x58, 0x31, 0xb9, 0x09, 0xb9, 0x07, 0x7a, 0xd2, 0x8b, 0x33, 0x89, + 0x61, 0x8c, 0xf0, 0x23, 0xc4, 0xe5, 0x1c, 0x8c, 0xf1, 0x03, 0x57, 0xf3, 0x79, 0x80, 0xb8, 0xea, + 0xde, 0x78, 0x39, 0xf3, 0x6b, 0x30, 0x11, 0x55, 0x49, 0x9e, 0x03, 0xb8, 0x47, 0x0f, 0xed, 0x03, + 0xa7, 0xdd, 0x68, 0x72, 0x85, 0x73, 0xca, 0x9a, 0xb8, 0x47, 0x0f, 0x57, 0x10, 0x40, 0xce, 0xc1, + 0x78, 0x87, 0x8d, 0xaa, 0x7c, 0xa1, 0xcc, 0x1a, 0xeb, 0x74, 0x77, 0x99, 0x84, 0x2e, 0xc0, 0x38, + 0x3a, 0x51, 0xc4, 0x44, 0x9b, 0xb6, 0xe4, 0x4f, 0xf3, 0x37, 0x33, 0x98, 0xc6, 0x4c, 0x69, 0x27, + 0x79, 0x11, 0xa6, 0xeb, 0x3e, 0xc5, 0xed, 0x08, 0x9f, 0xb7, 0x13, 0xf5, 0x4c, 0xc5, 0xc0, 0x4a, + 0x83, 0x5c, 0x82, 0xd9, 0xf8, 0xc9, 0x34, 0xbb, 0xbe, 0x2b, 0x32, 0xd4, 0x4c, 0x59, 0xd3, 0x1d, + 0xf9, 0x66, 0x5a, 0x71, 0x17, 0xef, 0x3d, 0xe6, 0xd5, 0x84, 0x04, 0x61, 0x94, 0x5d, 0xdd, 0x9a, + 0x55, 0xe0, 0x78, 0x12, 0x79, 0x16, 0xc6, 0x1c, 0x67, 0xbf, 0xeb, 0xf2, 0x3b, 0x58, 0x53, 0x96, + 0xf8, 0x45, 0x5e, 0x85, 0xb9, 0xc0, 0xdd, 0x6f, 0x3b, 0x61, 0xd7, 0x17, 0x79, 0xe4, 0xa8, 0x8f, + 0x22, 0x35, 0x6d, 0xe5, 0xa3, 0x82, 0x22, 0x87, 0x93, 0xd7, 0x81, 0xa8, 0xf5, 0x79, 0xbb, 0xdf, + 0xa0, 0x75, 0x2e, 0x6a, 0x53, 0xd6, 0x9c, 0x52, 0xb2, 0x81, 0x05, 0xe4, 0x05, 0x98, 0xf2, 0x69, + 0x80, 0x2a, 0x19, 0x76, 0x1b, 0x66, 0xf9, 0xb4, 0x26, 0x25, 0xec, 0x2e, 0x3d, 0x34, 0x97, 0x61, + 0xae, 0x67, 0x3e, 0x92, 0xd7, 0xb9, 0x76, 0x2f, 0xf6, 0xe7, 0x29, 0x6e, 0xcc, 0xb0, 0x45, 0x4a, + 0xdf, 0x9a, 0x05, 0x92, 0xd9, 0x86, 0x29, 0x75, 0x7d, 0x3d, 0x26, 0xf7, 0xcf, 0xd9, 0xe8, 0xbd, + 0xfd, 0x89, 0xe5, 0xb1, 0x47, 0x47, 0x8b, 0x19, 0xb7, 0x81, 0x97, 0x26, 0x2e, 0x43, 0x4e, 0x6a, + 0x09, 0xea, 0x8b, 0xe1, 0x42, 0xa1, 0x3c, 0xb4, 0xa2, 0x52, 0xf3, 0x15, 0x18, 0x17, 0x4b, 0xe8, + 0x60, 0x87, 0x96, 0xf9, 0xdd, 0x0c, 0xcc, 0x5a, 0x94, 0x4d, 0x70, 0xf1, 0x16, 0xf7, 0x67, 0xec, + 0xf1, 0x38, 0xed, 0xdb, 0x06, 0xa4, 0xda, 0xfa, 0x5d, 0x03, 0x4e, 0xa7, 0xe0, 0x7e, 0xa2, 0x04, + 0xca, 0xb7, 0x60, 0xa2, 0xe4, 0x3a, 0xcd, 0x42, 0xa3, 0x11, 0x5d, 0x03, 0x41, 0x6d, 0xb0, 0xc1, + 0xa6, 0x93, 0xc3, 0xa0, 0xea, 0x66, 0x1a, 0xa1, 0x92, 0xab, 0x42, 0x28, 0xe2, 0xc7, 0x07, 0xe4, + 0xf3, 0x74, 0xc0, 0xdb, 0x14, 0x3f, 0x4e, 0x87, 0xa9, 0x03, 0x38, 0x30, 0x0e, 0xdc, 0x79, 0x6a, + 0x87, 0x2e, 0x3d, 0x75, 0x40, 0xf2, 0xf3, 0x86, 0x32, 0x3b, 0x7f, 0x29, 0x03, 0x67, 0xd3, 0x09, + 0x3f, 0x69, 0x2e, 0x6c, 0xcc, 0x73, 0xa6, 0xbc, 0x00, 0x88, 0xb9, 0xb0, 0x79, 0x52, 0x34, 0xc4, + 0x8f, 0x11, 0xc8, 0x1e, 0x4c, 0xaf, 0x3a, 0x41, 0xb8, 0x42, 0x1d, 0x3f, 0xdc, 0xa5, 0x4e, 0x38, + 0x84, 0x06, 0xfb, 0x92, 0x7c, 0xc9, 0x19, 0x37, 0xb5, 0x03, 0x49, 0x99, 0x50, 0xf0, 0x74, 0xb6, + 0x91, 0xa0, 0x8c, 0x0c, 0x21, 0x28, 0xdf, 0x84, 0xd9, 0x1a, 0x6d, 0x39, 0x9d, 0x03, 0xcf, 0xa7, + 0xc2, 0x07, 0x7f, 0x0d, 0xa6, 0x23, 0x50, 0xaa, 0xb4, 0xe8, 0xc5, 0x1a, 0xbe, 0xd2, 0x11, 0xf1, + 0x52, 0xa2, 0x17, 0x9b, 0x7f, 0x2b, 0x03, 0xe7, 0x0a, 0x75, 0x71, 0x72, 0x27, 0x0a, 0x64, 0x80, + 0xc1, 0xa7, 0x5c, 0x37, 0xb9, 0x0e, 0x13, 0x6b, 0xce, 0xc3, 0x55, 0xea, 0x04, 0x34, 0x10, 0x99, + 0x48, 0xb9, 0xfa, 0xe5, 0x3c, 0x8c, 0x0f, 0xb4, 0xac, 0x18, 0x47, 0x35, 0x36, 0x47, 0x1e, 0xd3, + 0xd8, 0x34, 0x61, 0x6c, 0xc5, 0x6b, 0x36, 0xc4, 0xe6, 0x24, 0xce, 0x3f, 0x0e, 0x10, 0x62, 0x89, + 0x12, 0xf3, 0xcf, 0x0c, 0x98, 0x89, 0x5a, 0x8c, 0x4d, 0xf8, 0xd4, 0xbb, 0xe4, 0x12, 0x8c, 0x63, + 0x45, 0xd1, 0x33, 0xf6, 0xb8, 0x69, 0x34, 0x19, 0xc8, 0x76, 0x1b, 0x96, 0x2c, 0x54, 0x7b, 0x62, + 0xf4, 0xf1, 0x7a, 0xc2, 0xfc, 0x07, 0x78, 0xb4, 0xa2, 0x7e, 0x25, 0xdb, 0x89, 0x94, 0x86, 0x18, + 0x43, 0x36, 0x24, 0xf3, 0xc4, 0x86, 0x24, 0xdb, 0x77, 0x48, 0xbe, 0x97, 0x81, 0xc9, 0xa8, 0xb1, + 0x9f, 0xb1, 0x9c, 0x3b, 0xd1, 0x77, 0x0d, 0x75, 0x19, 0xaa, 0xa6, 0xac, 0x15, 0xe2, 0xce, 0xd1, + 0x07, 0x30, 0x26, 0x26, 0x93, 0x91, 0x38, 0x68, 0x4f, 0x8c, 0xee, 0xf2, 0x8c, 0x60, 0x3d, 0x86, + 0x03, 0x1a, 0x58, 0x82, 0x0e, 0x6f, 0x9b, 0xed, 0xd0, 0x5d, 0x71, 0xd2, 0xf6, 0xd4, 0xee, 0x51, + 0xe9, 0xb7, 0xcd, 0xe2, 0x0f, 0x1b, 0x6a, 0x77, 0x3a, 0x1a, 0x85, 0x7c, 0x92, 0xe4, 0xf8, 0xac, + 0x46, 0xd5, 0xee, 0xae, 0x78, 0x70, 0x18, 0xb3, 0x1a, 0x75, 0xba, 0xbb, 0x16, 0x83, 0x91, 0x4b, + 0x30, 0x52, 0xf5, 0xdd, 0xfb, 0xf8, 0xd5, 0xe2, 0xbd, 0xe5, 0x8e, 0xef, 0xde, 0x57, 0x8f, 0x73, + 0x59, 0x39, 0x1a, 0xb4, 0xab, 0x35, 0x8c, 0xe0, 0x47, 0xc5, 0x5a, 0x18, 0xb4, 0xcd, 0x20, 0x99, + 0x0a, 0x51, 0xa2, 0xb1, 0xad, 0x72, 0x99, 0x3a, 0xbe, 0xc8, 0xc0, 0x23, 0x96, 0x33, 0xdc, 0x2a, + 0x77, 0x11, 0xcc, 0xdf, 0xe3, 0xb0, 0x54, 0x24, 0xd2, 0x04, 0xa2, 0xfc, 0x94, 0x13, 0xf8, 0x78, + 0x1b, 0xef, 0xa2, 0xf4, 0xbe, 0xa9, 0xac, 0x6d, 0x75, 0x36, 0xa7, 0xf0, 0x7d, 0x92, 0x3e, 0xc2, + 0xaa, 0xb8, 0x8f, 0x8d, 0x8e, 0x8c, 0xdc, 0xb1, 0xcc, 0xe4, 0x15, 0x17, 0xe0, 0xf7, 0xb5, 0x23, + 0x77, 0x46, 0xcc, 0x84, 0xbc, 0x07, 0x93, 0xea, 0xbd, 0x0c, 0x7e, 0x7b, 0xe0, 0x59, 0x7e, 0x0f, + 0xba, 0x4f, 0x4a, 0x68, 0x95, 0x80, 0xec, 0xc2, 0xb9, 0xa2, 0xd7, 0x0e, 0xba, 0x2d, 0xda, 0xd0, + 0x4e, 0x82, 0x2b, 0x25, 0x34, 0x30, 0x27, 0x78, 0x90, 0x77, 0x5d, 0xa0, 0x88, 0x6b, 0x00, 0x32, + 0x8a, 0x49, 0x37, 0x40, 0xfa, 0x31, 0x22, 0x9b, 0x30, 0x59, 0x2b, 0xac, 0xad, 0xca, 0xd8, 0xfa, + 0x49, 0x7d, 0xd9, 0x88, 0x4b, 0x4a, 0x6c, 0x62, 0xf0, 0xeb, 0xa5, 0x4e, 0xab, 0x29, 0x83, 0x68, + 0x54, 0xef, 0xa3, 0x82, 0x6c, 0xbe, 0xa1, 0xca, 0xb7, 0x50, 0x37, 0x06, 0xca, 0xb7, 0xf9, 0xdf, + 0x8e, 0xc1, 0x6c, 0xa2, 0x3a, 0x61, 0xff, 0x18, 0x3d, 0xf6, 0x4f, 0x0d, 0x80, 0xbb, 0xb2, 0x86, + 0xf4, 0x39, 0xc9, 0xf8, 0xcb, 0x49, 0x11, 0x12, 0x1e, 0x8d, 0x95, 0xc2, 0x86, 0x31, 0xe5, 0x92, + 0x30, 0xa4, 0xcf, 0x31, 0x62, 0xca, 0x85, 0x49, 0x61, 0x1a, 0xb3, 0x21, 0x8b, 0x30, 0x8a, 0x17, + 0xe6, 0xd5, 0xf0, 0x57, 0x97, 0x01, 0x2c, 0x0e, 0x27, 0x2f, 0xc2, 0x18, 0xdb, 0x9c, 0x2b, 0x25, + 0x31, 0xb9, 0x70, 0xcd, 0x62, 0xbb, 0x37, 0xdb, 0x09, 0x45, 0x11, 0xb9, 0x05, 0x53, 0xfc, 0x2f, + 0x71, 0x3f, 0x68, 0x4c, 0x8f, 0xdb, 0xb0, 0xdd, 0x86, 0xbc, 0x22, 0xa4, 0xe1, 0x31, 0xad, 0xb5, + 0xd6, 0xdd, 0x15, 0x6f, 0x59, 0x8d, 0xc7, 0x5a, 0x6b, 0xc0, 0x81, 0xf8, 0x82, 0x4b, 0x84, 0xc0, + 0xf6, 0x48, 0x11, 0xf2, 0x94, 0x43, 0x5b, 0x05, 0xf7, 0x48, 0x1e, 0xed, 0x64, 0x89, 0x12, 0x72, + 0x85, 0x7b, 0x95, 0x51, 0xdd, 0xe0, 0x29, 0x45, 0xd1, 0x0f, 0x8c, 0x06, 0x2f, 0xea, 0x1c, 0x51, + 0x31, 0xab, 0x9c, 0xfd, 0x5d, 0x6e, 0x39, 0x6e, 0x53, 0x88, 0x2b, 0x56, 0x8e, 0xb8, 0x94, 0x41, + 0xad, 0x18, 0x81, 0xbc, 0x03, 0x33, 0xec, 0x47, 0xd1, 0x6b, 0xb5, 0xbc, 0x36, 0xb2, 0x9f, 0x8c, + 0x6f, 0x72, 0x22, 0x49, 0x1d, 0x8b, 0x78, 0x2d, 0x09, 0x5c, 0xb6, 0x4e, 0xe1, 0x19, 0x53, 0x97, + 0xfb, 0xbb, 0xa7, 0xe2, 0x75, 0x0a, 0x49, 0x03, 0x0e, 0xb7, 0x54, 0x24, 0xf2, 0x16, 0x4c, 0xb3, + 0x9f, 0x77, 0xdc, 0xfb, 0x94, 0x57, 0x38, 0x1d, 0x1f, 0xf7, 0x21, 0xd5, 0x3e, 0x2b, 0xe1, 0xf5, + 0xe9, 0x98, 0xe4, 0x23, 0x38, 0x83, 0x9c, 0xea, 0x5e, 0x87, 0x36, 0x0a, 0x7b, 0x7b, 0x6e, 0xd3, + 0xe5, 0xaf, 0x6e, 0xf3, 0x9b, 0x30, 0xe8, 0x63, 0xe4, 0x15, 0x23, 0x86, 0xed, 0xc4, 0x28, 0x56, + 0x3a, 0x25, 0xd9, 0x81, 0x7c, 0xb1, 0x1b, 0x84, 0x5e, 0xab, 0x10, 0x86, 0xbe, 0xbb, 0xdb, 0x0d, + 0x69, 0xb0, 0x30, 0xab, 0xdd, 0x17, 0x61, 0x93, 0x23, 0x2a, 0xe4, 0x7e, 0x86, 0x3a, 0x52, 0xd8, + 0x4e, 0x44, 0x62, 0xf5, 0x30, 0x31, 0xff, 0x1b, 0x03, 0xa6, 0x35, 0x52, 0xf2, 0x26, 0x4c, 0xdd, + 0xf6, 0x5d, 0xda, 0x6e, 0x34, 0x0f, 0x15, 0x03, 0x08, 0xb5, 0xe3, 0x3d, 0x01, 0xe7, 0x5f, 0xad, + 0xa1, 0x45, 0xfe, 0x83, 0x4c, 0x6a, 0x40, 0xcc, 0x75, 0x1e, 0x85, 0x2d, 0x04, 0x34, 0x1b, 0x5f, + 0x60, 0x43, 0x01, 0x15, 0xd2, 0xa9, 0xa0, 0x90, 0x77, 0x61, 0x8c, 0x9f, 0x46, 0x89, 0xe8, 0x8c, + 0xf3, 0x69, 0x9f, 0xc9, 0x23, 0xfe, 0x51, 0x10, 0xf1, 0x10, 0x3c, 0xb0, 0x04, 0x91, 0xf9, 0xab, + 0x06, 0x90, 0x5e, 0xd4, 0x63, 0xfc, 0x29, 0xc7, 0x1e, 0xae, 0x7f, 0x10, 0xcd, 0xc6, 0xac, 0xe6, + 0x13, 0x64, 0x35, 0xf1, 0x02, 0xde, 0xf1, 0x62, 0xd6, 0xa9, 0x0e, 0x1e, 0x5e, 0x6c, 0xfe, 0xb5, + 0x0c, 0x40, 0x8c, 0x4d, 0xbe, 0xc0, 0x13, 0x3b, 0x7e, 0xd4, 0x75, 0x9a, 0xee, 0x9e, 0xab, 0x27, + 0x52, 0x40, 0x26, 0xdf, 0x94, 0x25, 0x96, 0x8e, 0x48, 0xde, 0x87, 0xd9, 0x5a, 0x55, 0xa7, 0x55, + 0x92, 0xd8, 0x05, 0x1d, 0x3b, 0x41, 0x9e, 0xc4, 0xc6, 0x28, 0x2c, 0x75, 0x34, 0x78, 0x14, 0x16, + 0x1f, 0x08, 0x51, 0xc2, 0x16, 0x96, 0x5a, 0x15, 0x1f, 0xdd, 0x6a, 0xd0, 0x46, 0xa5, 0x24, 0x56, + 0x29, 0x6c, 0x5d, 0xd0, 0xb1, 0x3b, 0xbc, 0x00, 0x5f, 0x7a, 0xd2, 0xf0, 0xe2, 0x8e, 0x1c, 0xed, + 0x13, 0xd5, 0xff, 0xeb, 0xe8, 0x4e, 0x6a, 0x79, 0x21, 0x15, 0x56, 0xf4, 0x53, 0xab, 0x4f, 0xc7, + 0x47, 0x99, 0xa3, 0x5a, 0xb0, 0xb2, 0xf6, 0x75, 0x1c, 0x63, 0xfb, 0x66, 0xac, 0xfc, 0xf2, 0x43, + 0x4d, 0x79, 0x94, 0xa9, 0xa8, 0x7e, 0x7f, 0xdf, 0x80, 0x33, 0xa9, 0xb4, 0xe4, 0x1a, 0x40, 0xec, + 0xab, 0x10, 0xbd, 0xc4, 0x1f, 0xdc, 0x8a, 0xa0, 0x96, 0x82, 0x41, 0xbe, 0x9a, 0xf4, 0x32, 0x1c, + 0xbf, 0x11, 0x5e, 0x90, 0xd7, 0x72, 0x75, 0x2f, 0x43, 0x8a, 0x6f, 0xc1, 0xfc, 0xdd, 0x2c, 0xcc, + 0x29, 0xb7, 0xc2, 0x78, 0x5b, 0x8f, 0x89, 0x8a, 0xbb, 0x27, 0x1f, 0x77, 0x13, 0x11, 0x93, 0x19, + 0xed, 0xbd, 0xc2, 0x1e, 0x6e, 0xd7, 0x54, 0x64, 0x7e, 0x17, 0x1d, 0x97, 0x4e, 0xf1, 0xd6, 0x5b, + 0x4f, 0xe4, 0xa4, 0xc6, 0x9c, 0x04, 0x30, 0x5d, 0x3a, 0x6c, 0x3b, 0xad, 0xa8, 0x36, 0x7e, 0xfc, + 0xfe, 0x6a, 0xdf, 0xda, 0x34, 0x6c, 0x5e, 0x9d, 0xd4, 0x39, 0x17, 0x1a, 0xbc, 0x2c, 0xe5, 0x4e, + 0x80, 0x46, 0x75, 0xe1, 0x7d, 0x98, 0xeb, 0x69, 0xf4, 0x89, 0xae, 0xc5, 0xef, 0x00, 0xe9, 0x6d, + 0x47, 0x0a, 0x87, 0x57, 0xf5, 0xa4, 0x0b, 0x67, 0xa2, 0xc3, 0xb9, 0x56, 0xcb, 0x69, 0xf3, 0xb7, + 0xa4, 0xb7, 0x97, 0xd4, 0x4b, 0xf3, 0xbf, 0x9e, 0x51, 0x43, 0x7e, 0x9f, 0xf6, 0x59, 0xf7, 0x81, + 0x66, 0x65, 0x3d, 0xdf, 0x6f, 0x4c, 0x87, 0xb2, 0x66, 0x7f, 0x9c, 0x85, 0x73, 0x7d, 0x28, 0xc9, + 0x61, 0x52, 0x88, 0xb8, 0x75, 0x7b, 0x63, 0x70, 0x85, 0x4f, 0x42, 0x94, 0xc8, 0x17, 0xf8, 0xa5, + 0x9f, 0x3a, 0xbe, 0xe3, 0x20, 0xec, 0xba, 0xe8, 0x85, 0x6a, 0x0e, 0x4d, 0xde, 0xf6, 0xe1, 0x50, + 0xf2, 0xbe, 0x7c, 0xa1, 0x5a, 0xbf, 0x95, 0xce, 0x30, 0xf8, 0x8b, 0xd4, 0xf1, 0x15, 0xfe, 0xf4, + 0x57, 0xa9, 0x3f, 0x0f, 0xd9, 0xc2, 0x4e, 0x4d, 0x8c, 0xcb, 0x8c, 0x4a, 0xbe, 0x53, 0x8b, 0xf3, + 0x78, 0x39, 0x5a, 0xc2, 0x2d, 0x46, 0xc1, 0x08, 0xef, 0x14, 0xab, 0x62, 0x54, 0x54, 0xc2, 0x3b, + 0xc5, 0x6a, 0x4c, 0xb8, 0x5f, 0xd7, 0xee, 0xfb, 0xdd, 0x29, 0x56, 0x3f, 0x3d, 0xb1, 0xff, 0x1b, + 0x19, 0x7e, 0x53, 0x89, 0x7f, 0xd8, 0xfb, 0x30, 0xa5, 0x25, 0xc5, 0x31, 0x62, 0x7d, 0x2c, 0x4a, + 0xe8, 0x93, 0x88, 0x7e, 0xd0, 0x08, 0x64, 0x46, 0xbc, 0xe8, 0x59, 0x4f, 0x35, 0x78, 0x41, 0x7f, + 0x0a, 0x34, 0x99, 0x11, 0x2f, 0x22, 0x21, 0x37, 0x21, 0xb7, 0x49, 0xdb, 0x4e, 0x3b, 0x8c, 0x1c, + 0x6d, 0x18, 0x6c, 0x17, 0x22, 0x4c, 0xd7, 0x1a, 0x22, 0x44, 0x7c, 0x84, 0x55, 0x79, 0x94, 0x34, + 0xda, 0x8b, 0x79, 0x08, 0xa8, 0x52, 0x92, 0x78, 0xc5, 0x56, 0x27, 0x32, 0x7f, 0xdd, 0x80, 0x71, + 0x31, 0x90, 0xca, 0xd3, 0x81, 0xc6, 0x10, 0x4f, 0x07, 0xde, 0x82, 0x09, 0x11, 0x74, 0xaf, 0xbf, + 0x5f, 0x2b, 0xe2, 0xf4, 0x13, 0xef, 0xd7, 0x46, 0xa8, 0x43, 0xc7, 0x92, 0xff, 0x5d, 0xd1, 0xb2, + 0x3b, 0xc5, 0x2a, 0x59, 0x82, 0xdc, 0xaa, 0x57, 0x77, 0x94, 0x7d, 0x0e, 0x97, 0x9d, 0xa6, 0x80, + 0xa9, 0x1d, 0x24, 0xf1, 0xf4, 0x77, 0x79, 0x33, 0xc3, 0xbf, 0xcb, 0x3b, 0x6c, 0xfb, 0x68, 0xca, + 0x22, 0xb1, 0x7d, 0x73, 0xd5, 0x0d, 0x42, 0xf2, 0xa1, 0x1a, 0xa3, 0x2f, 0x8a, 0xe4, 0x4a, 0x71, + 0xa1, 0xdf, 0x4a, 0xb1, 0x7d, 0xd3, 0x4a, 0xa1, 0xc2, 0xf3, 0x9a, 0x18, 0xcc, 0x1f, 0x43, 0xff, + 0x8c, 0xa5, 0x7a, 0x4e, 0x7e, 0xde, 0x50, 0x8b, 0xf4, 0xbf, 0xc8, 0xc0, 0xd9, 0x74, 0x42, 0xf5, + 0x5b, 0x8c, 0x01, 0xdf, 0x72, 0x19, 0x72, 0x2b, 0x5e, 0x10, 0x2a, 0x01, 0x4f, 0xe8, 0x56, 0x3e, + 0x10, 0x30, 0x2b, 0x2a, 0x65, 0x36, 0x37, 0xfb, 0x3b, 0x9a, 0x9e, 0xc8, 0x0f, 0xef, 0xe7, 0x30, + 0x9b, 0x9b, 0x17, 0x91, 0x3b, 0x90, 0xb3, 0x44, 0x38, 0x79, 0xa2, 0x6b, 0x24, 0x38, 0xd2, 0xa6, + 0x88, 0x2f, 0x20, 0x5a, 0x6e, 0x22, 0x01, 0x23, 0x05, 0x18, 0x17, 0xa3, 0x9f, 0x38, 0x92, 0x4c, + 0x11, 0x19, 0x3d, 0x5d, 0x98, 0xa4, 0x63, 0x2b, 0x0a, 0x1e, 0x2e, 0x55, 0x4a, 0x32, 0x32, 0x1c, + 0x57, 0x14, 0x7e, 0xf8, 0xa4, 0x27, 0x28, 0x8b, 0x10, 0xcd, 0xef, 0x66, 0x00, 0x76, 0xe8, 0xee, + 0xd3, 0x9d, 0x41, 0xfe, 0xf3, 0x9a, 0x84, 0x29, 0xf1, 0x14, 0xc3, 0x27, 0x90, 0xdf, 0xc0, 0xb8, + 0x86, 0xe1, 0xd3, 0xc7, 0x2f, 0xc2, 0x28, 0xf7, 0x76, 0x2a, 0x46, 0x22, 0x77, 0x73, 0x72, 0xb8, + 0xb9, 0x0b, 0xf3, 0x77, 0x68, 0x18, 0xbb, 0xb7, 0xe4, 0x91, 0xd6, 0x60, 0xb6, 0xaf, 0xc1, 0x84, + 0xc0, 0xd7, 0x5f, 0xd3, 0x95, 0x57, 0xde, 0xd0, 0x17, 0x23, 0x11, 0xd8, 0x6a, 0x54, 0xa2, 0x4d, + 0x1a, 0xd2, 0x4f, 0xb7, 0x9a, 0x1a, 0x10, 0xfe, 0x29, 0xf8, 0x65, 0xc3, 0xd5, 0x70, 0x6c, 0xff, + 0x6c, 0xc3, 0x99, 0xa8, 0xed, 0x4f, 0x92, 0xef, 0x75, 0x66, 0x52, 0x8a, 0x4c, 0x5b, 0x31, 0xc7, + 0x01, 0x31, 0x0d, 0x0f, 0xe1, 0x82, 0x24, 0xd8, 0x71, 0xa3, 0xc0, 0xb0, 0xa1, 0x68, 0xc9, 0x3b, + 0x30, 0xa9, 0xd0, 0x88, 0x5c, 0x86, 0xe8, 0xfe, 0x7c, 0xe0, 0x86, 0x07, 0x76, 0xc0, 0xe1, 0xaa, + 0xfb, 0x53, 0x41, 0x37, 0xbf, 0x02, 0xcf, 0x44, 0x61, 0xf4, 0x29, 0x55, 0x27, 0x98, 0x1b, 0x27, + 0x63, 0xbe, 0x1e, 0x7f, 0x56, 0xa5, 0x1d, 0x5d, 0xea, 0x92, 0xbc, 0x89, 0xfa, 0x59, 0xe2, 0x63, + 0x9e, 0xed, 0xb9, 0x26, 0xa6, 0xdc, 0x06, 0x33, 0xdf, 0x56, 0x1a, 0x9b, 0xc2, 0x50, 0x23, 0x36, + 0x92, 0xc4, 0xdf, 0xcd, 0xc0, 0xec, 0x46, 0xa5, 0x54, 0x8c, 0xa2, 0x5a, 0x3e, 0x63, 0xe9, 0xed, + 0xb5, 0x6f, 0xeb, 0xbf, 0xde, 0x98, 0x5b, 0x70, 0x3a, 0xd1, 0x0d, 0xa8, 0x3a, 0xbc, 0xc7, 0xc3, + 0xdd, 0x23, 0xb0, 0x54, 0x1b, 0xce, 0xa6, 0xb1, 0xdf, 0xbe, 0x69, 0x25, 0xb0, 0xcd, 0x7f, 0x94, + 0x4b, 0xf0, 0x15, 0x4b, 0xd8, 0x6b, 0x30, 0x51, 0x09, 0x82, 0x2e, 0xf5, 0xb7, 0xac, 0x55, 0xd5, + 0x55, 0xe0, 0x22, 0xd0, 0xee, 0xfa, 0x4d, 0x2b, 0x46, 0x20, 0x57, 0x20, 0x27, 0xb2, 0x3b, 0xc9, + 0x35, 0x01, 0xbd, 0xb6, 0x51, 0x72, 0x28, 0x2b, 0x2a, 0x26, 0x6f, 0xc2, 0x14, 0xff, 0x9b, 0x4b, + 0x9b, 0xe8, 0x70, 0x74, 0x0e, 0x0a, 0x74, 0x2e, 0x9d, 0x96, 0x86, 0x46, 0xae, 0x42, 0xb6, 0x50, + 0xb4, 0xd4, 0x47, 0x34, 0x9d, 0xba, 0xcf, 0x1f, 0xd3, 0xd5, 0x8d, 0x88, 0xa2, 0xc5, 0xb4, 0x3f, + 0xe1, 0x4a, 0xf2, 0x85, 0x27, 0x1b, 0x25, 0x40, 0x7a, 0x9b, 0x12, 0x9b, 0x19, 0xc2, 0xc8, 0x75, + 0x18, 0x2f, 0xb9, 0x41, 0xa7, 0xe9, 0x1c, 0x0a, 0x3f, 0x36, 0x4f, 0x7a, 0xcb, 0x41, 0xaa, 0xcc, + 0x08, 0x2c, 0x72, 0x05, 0x46, 0xd1, 0xc9, 0x2a, 0x7c, 0xd9, 0x3c, 0x35, 0x2c, 0x03, 0x68, 0xa9, + 0x61, 0x19, 0x00, 0x93, 0x07, 0xf2, 0x1c, 0x48, 0x13, 0x4a, 0xf2, 0xc0, 0x64, 0xee, 0x23, 0x81, + 0xd3, 0x7b, 0x3f, 0x0a, 0x9e, 0xe4, 0xfd, 0xa8, 0x5d, 0x38, 0x77, 0x07, 0xbd, 0x37, 0xfa, 0x3d, + 0xd8, 0x2d, 0xab, 0x22, 0xfc, 0xe1, 0x78, 0xe2, 0xc3, 0x1d, 0x3c, 0xc9, 0xab, 0xb4, 0x89, 0x87, + 0xb2, 0xfb, 0x31, 0x22, 0x5f, 0x82, 0xf9, 0xb4, 0x22, 0xe1, 0x35, 0xc7, 0x3b, 0xe8, 0xe9, 0x15, + 0xa8, 0x97, 0xc0, 0xd3, 0x38, 0x90, 0x55, 0xc8, 0x73, 0x78, 0xa1, 0xd1, 0x72, 0xdb, 0xdc, 0xf3, + 0x3f, 0x1d, 0x3f, 0x60, 0x26, 0xb8, 0x3a, 0xac, 0x90, 0x9f, 0x00, 0x68, 0x17, 0x1f, 0x12, 0x94, + 0xe4, 0x97, 0x0d, 0x66, 0xcd, 0xf1, 0x8c, 0x41, 0x5b, 0xd6, 0x6a, 0x20, 0xb2, 0x05, 0xf4, 0x7b, + 0x7c, 0x7c, 0xf3, 0x09, 0x3d, 0x3e, 0x3e, 0xe5, 0x8b, 0x3a, 0x71, 0x16, 0x69, 0x2d, 0xc0, 0x57, + 0x97, 0x9a, 0x4d, 0xef, 0xc1, 0x56, 0xfb, 0x3e, 0xf5, 0xdd, 0x3d, 0x97, 0x36, 0xf8, 0x47, 0xce, + 0xe2, 0x0a, 0xce, 0x5f, 0x5d, 0xc2, 0x57, 0xb1, 0xba, 0x11, 0x42, 0xcf, 0x87, 0xa6, 0x72, 0x60, + 0x86, 0xa7, 0x0c, 0xc3, 0xe7, 0xb7, 0xd3, 0xf2, 0xb1, 0xe1, 0x29, 0x63, 0xf6, 0x6d, 0x14, 0x23, + 0x55, 0x78, 0x34, 0x12, 0x11, 0xf3, 0xfb, 0x6b, 0x13, 0x7c, 0x45, 0x2e, 0x74, 0xc3, 0x03, 0xb9, + 0x86, 0x2f, 0xa5, 0x5d, 0x25, 0xe0, 0x21, 0x4f, 0xca, 0x55, 0x02, 0xfd, 0x02, 0x81, 0x74, 0xa5, + 0x67, 0x52, 0x5d, 0xe9, 0xaf, 0xc1, 0x04, 0xbe, 0xf9, 0x18, 0xc5, 0x6c, 0xe7, 0x84, 0xaf, 0x92, + 0x01, 0x79, 0xba, 0xa5, 0x18, 0x81, 0x5c, 0x07, 0xc0, 0x34, 0xcc, 0x7c, 0x83, 0x57, 0xd2, 0xdb, + 0x61, 0xb6, 0x66, 0x71, 0x8a, 0xac, 0xa0, 0x20, 0xfb, 0x9a, 0x75, 0x5b, 0x3d, 0x76, 0xe6, 0xec, + 0x03, 0x7f, 0x4f, 0xa0, 0xc7, 0x08, 0xec, 0xf3, 0x94, 0x61, 0x12, 0x8b, 0x4a, 0xbe, 0x67, 0x2c, + 0x55, 0x24, 0x8c, 0xe8, 0x92, 0x01, 0xaa, 0xb8, 0xa6, 0x4c, 0x89, 0x88, 0xae, 0x28, 0x98, 0xd5, + 0x8a, 0x11, 0xc8, 0xe7, 0x61, 0xbc, 0x48, 0xfd, 0x70, 0x73, 0x73, 0x55, 0xbc, 0xdb, 0xce, 0xec, + 0xf2, 0x1c, 0xe6, 0xeb, 0x0a, 0xc3, 0xe6, 0x4f, 0x8e, 0x16, 0xa7, 0x43, 0xb7, 0x45, 0xaf, 0x45, + 0xc7, 0xb8, 0x12, 0x9b, 0x2c, 0x43, 0x9e, 0x9f, 0x31, 0xc6, 0x8a, 0x1c, 0x2e, 0x33, 0x39, 0xbe, + 0xe8, 0x89, 0x03, 0xc9, 0x07, 0x74, 0x37, 0xca, 0x56, 0xd6, 0x83, 0x4f, 0xca, 0x32, 0xc9, 0x9f, + 0xfa, 0x91, 0x10, 0x7b, 0x16, 0xc4, 0xc2, 0xac, 0x7d, 0x6b, 0x2f, 0x05, 0x29, 0xc0, 0x74, 0xd1, + 0x6b, 0x75, 0x9c, 0xd0, 0xc5, 0x2c, 0xcf, 0x87, 0x62, 0x45, 0x41, 0xef, 0x48, 0x5d, 0x2d, 0xd0, + 0x9f, 0x70, 0x54, 0x0a, 0xc8, 0x6d, 0x98, 0xb1, 0xbc, 0x2e, 0x1b, 0x24, 0x69, 0xd2, 0xf0, 0x45, + 0x23, 0x7a, 0x1c, 0x98, 0x8d, 0xa5, 0x2d, 0xec, 0x17, 0x2d, 0x8b, 0x86, 0x46, 0x45, 0xd6, 0x53, + 0x7c, 0xcb, 0xea, 0x4a, 0xa1, 0xe6, 0x2c, 0xeb, 0x61, 0x96, 0xe2, 0x96, 0xbe, 0x09, 0x93, 0xb5, + 0xda, 0xc6, 0x26, 0x0d, 0xc2, 0xdb, 0x4d, 0xef, 0x01, 0x2e, 0x14, 0x39, 0x91, 0x2a, 0x35, 0xf0, + 0xec, 0x90, 0x06, 0xa1, 0xbd, 0xd7, 0xf4, 0x1e, 0x58, 0x2a, 0x16, 0xf9, 0x29, 0xe5, 0x4d, 0x4b, + 0xdc, 0xf9, 0x67, 0x8f, 0xdd, 0xf9, 0x13, 0xef, 0x5d, 0xb2, 0xfd, 0x3f, 0xf5, 0xbd, 0x4b, 0x86, + 0x8e, 0x17, 0x10, 0x98, 0x31, 0x56, 0x68, 0x34, 0x7c, 0x1a, 0x04, 0x62, 0x46, 0x2b, 0x2f, 0xf6, + 0x3a, 0xbc, 0x40, 0xbb, 0x80, 0xa0, 0x10, 0x90, 0xef, 0x19, 0x70, 0x46, 0x8d, 0x61, 0xc6, 0xc9, + 0xd2, 0xa2, 0xed, 0x70, 0x61, 0x0e, 0x5b, 0xfa, 0xfa, 0x35, 0xb9, 0xa2, 0x5d, 0x53, 0xd0, 0xae, + 0xdd, 0xbf, 0x71, 0x4d, 0x79, 0xd8, 0xad, 0x26, 0x89, 0xf0, 0x71, 0xef, 0xc5, 0x54, 0x7e, 0xea, + 0xea, 0xe4, 0xa4, 0x90, 0x92, 0x22, 0xdb, 0xf4, 0x98, 0x3c, 0x61, 0x6c, 0x43, 0xa5, 0x8a, 0x59, + 0x45, 0x84, 0x73, 0x4a, 0x48, 0x1f, 0x8f, 0x82, 0x70, 0x3b, 0xfa, 0xde, 0xa6, 0xd0, 0xa0, 0xaa, + 0x58, 0x2b, 0xac, 0xad, 0xc6, 0xfa, 0xce, 0x67, 0x2b, 0xc4, 0x58, 0xfb, 0xb6, 0x01, 0x21, 0xc6, + 0x5b, 0x70, 0x3a, 0xd1, 0x0d, 0x52, 0x55, 0xd4, 0xc0, 0x49, 0x55, 0x31, 0x41, 0x63, 0x25, 0xb0, + 0xcd, 0x7f, 0x38, 0x9e, 0xe0, 0x2b, 0xc2, 0x8a, 0x4c, 0x18, 0xe3, 0x9a, 0xa0, 0xfa, 0x28, 0x11, + 0xd7, 0x13, 0x2d, 0x51, 0x42, 0xce, 0x43, 0xb6, 0x56, 0xdb, 0x50, 0x9f, 0x4c, 0x0b, 0x02, 0xcf, + 0x62, 0x30, 0x36, 0x42, 0x18, 0x31, 0xa4, 0xa4, 0xf7, 0x62, 0xcb, 0x9e, 0x85, 0x50, 0xd6, 0xdf, + 0x52, 0x2f, 0x1b, 0x89, 0xfb, 0x5b, 0xe8, 0x65, 0xb1, 0x36, 0x56, 0x84, 0x85, 0x42, 0x10, 0x50, + 0x9f, 0x3f, 0xf6, 0x8c, 0x81, 0x28, 0xbe, 0xd0, 0x1d, 0xc4, 0xea, 0x8e, 0x95, 0x3a, 0xf5, 0xc0, + 0xea, 0x8b, 0x48, 0x2e, 0x43, 0xae, 0xd0, 0x6d, 0xb8, 0xb4, 0x5d, 0xd7, 0x12, 0x3a, 0x38, 0x02, + 0x66, 0x45, 0xa5, 0xe4, 0x23, 0x38, 0x23, 0x88, 0xa4, 0x02, 0x29, 0x7a, 0x60, 0x3c, 0x9e, 0x82, + 0x52, 0xb7, 0x89, 0x0f, 0x39, 0x79, 0x97, 0xa4, 0x53, 0x92, 0x02, 0xe4, 0xcb, 0x18, 0x52, 0x5f, + 0xa2, 0xdc, 0xdf, 0xea, 0xf9, 0xe2, 0x6d, 0x56, 0xd4, 0x44, 0x79, 0xb8, 0xbd, 0xdd, 0x88, 0x0a, + 0xad, 0x1e, 0x74, 0x72, 0x17, 0x4e, 0x27, 0x61, 0x6c, 0x21, 0xe7, 0x4a, 0x27, 0xe6, 0x97, 0xe9, + 0xe1, 0x82, 0x4b, 0x79, 0x1a, 0x15, 0xd9, 0x85, 0xb9, 0xf8, 0x90, 0x5f, 0x57, 0x45, 0x65, 0x4c, + 0x5a, 0x54, 0x2e, 0xd5, 0xd1, 0x67, 0x84, 0x30, 0x9e, 0x8e, 0x03, 0x06, 0x22, 0x95, 0xd4, 0xea, + 0x65, 0x47, 0x1a, 0x30, 0x53, 0x73, 0xf7, 0xdb, 0x6e, 0x7b, 0xff, 0x2e, 0x3d, 0xac, 0x3a, 0xae, + 0x2f, 0xa2, 0x83, 0x64, 0xec, 0x5f, 0x21, 0x38, 0x6c, 0xb5, 0x68, 0xe8, 0xe3, 0x16, 0xc9, 0xca, + 0xf1, 0x9e, 0x9c, 0xc1, 0xf6, 0x82, 0x80, 0xd3, 0xe1, 0x9d, 0x90, 0x8e, 0xe3, 0x6a, 0x7b, 0x81, + 0xce, 0x53, 0x33, 0x07, 0xa6, 0x86, 0x34, 0x07, 0x9a, 0x30, 0x57, 0x6e, 0xd7, 0xfd, 0x43, 0x74, + 0x7b, 0xcb, 0xc6, 0x4d, 0x1f, 0xd3, 0xb8, 0x97, 0x44, 0xe3, 0x9e, 0x75, 0xa4, 0x84, 0xa5, 0x35, + 0xaf, 0x97, 0x31, 0xa9, 0x89, 0x87, 0x68, 0x2b, 0xa5, 0x6a, 0xa5, 0xed, 0x86, 0x2e, 0x3e, 0x0f, + 0xc4, 0xf7, 0x98, 0x97, 0x05, 0xcf, 0xe7, 0xb8, 0xda, 0xe7, 0x36, 0x3a, 0xb6, 0x2b, 0x51, 0x7a, + 0x5e, 0x9a, 0x55, 0xe9, 0xcd, 0xff, 0x24, 0xc7, 0x57, 0x43, 0x55, 0x4d, 0xeb, 0x17, 0xef, 0x94, + 0x50, 0xdf, 0x32, 0x27, 0x51, 0xdf, 0xb2, 0xc7, 0xab, 0x6f, 0x23, 0xc7, 0xa9, 0x6f, 0x09, 0xfd, + 0x6a, 0xf4, 0xc4, 0xfa, 0xd5, 0xd8, 0x09, 0xf4, 0xab, 0xf1, 0x13, 0xe9, 0x57, 0x9a, 0xa2, 0x98, + 0x3b, 0x4e, 0x51, 0xfc, 0xff, 0xb4, 0xb1, 0xa7, 0x55, 0x1b, 0x4b, 0xdb, 0x5c, 0x4f, 0xa4, 0x8d, + 0xf5, 0x57, 0xa6, 0xf2, 0x7f, 0xd9, 0xca, 0xd4, 0xdc, 0x27, 0x50, 0xa6, 0x7e, 0x1a, 0xf2, 0xc9, + 0xf5, 0xfd, 0xf8, 0x94, 0x45, 0x4f, 0x2c, 0xb3, 0x08, 0xdb, 0x7d, 0x92, 0xeb, 0x2b, 0x33, 0xf2, + 0xaa, 0xbe, 0x7b, 0xdf, 0x09, 0x69, 0xfc, 0x2c, 0x27, 0x1a, 0x79, 0x1d, 0x0e, 0xc5, 0x39, 0xaf, + 0xa0, 0x44, 0xaa, 0x45, 0x26, 0x4d, 0xb5, 0x30, 0x7f, 0x3e, 0x03, 0x73, 0x3c, 0x19, 0xc2, 0xd3, + 0xef, 0x5b, 0x7c, 0x4f, 0x53, 0x18, 0x65, 0x08, 0x51, 0xe2, 0xeb, 0x06, 0x78, 0x17, 0xbf, 0x06, + 0x67, 0x7a, 0xba, 0x02, 0x95, 0xc6, 0x92, 0x4c, 0x43, 0xd1, 0xa3, 0x36, 0x2e, 0xa4, 0x57, 0xb2, + 0x7d, 0xd3, 0xea, 0xa1, 0x30, 0xff, 0x55, 0xb6, 0x87, 0xbf, 0xf0, 0x33, 0xaa, 0x9e, 0x43, 0xe3, + 0x64, 0x9e, 0xc3, 0xcc, 0x70, 0x9e, 0xc3, 0xc4, 0xde, 0x92, 0x1d, 0x66, 0x6f, 0xf9, 0x08, 0xa6, + 0x37, 0xa9, 0xd3, 0x0a, 0x36, 0x3d, 0x91, 0x3e, 0x91, 0x87, 0x10, 0xca, 0x2c, 0x13, 0xac, 0x4c, + 0xea, 0x3c, 0x51, 0x28, 0x44, 0xc8, 0x08, 0xd8, 0x7a, 0xc8, 0xf3, 0x29, 0x5a, 0x3a, 0x07, 0x55, + 0x91, 0x1d, 0x1d, 0xa0, 0xc8, 0xd6, 0x60, 0x4a, 0xd0, 0xc5, 0x79, 0x9a, 0x62, 0x8d, 0x8b, 0x15, + 0x21, 0x5c, 0xd6, 0x1e, 0x3d, 0x83, 0x10, 0xd5, 0xce, 0x95, 0x2d, 0x8d, 0x09, 0xeb, 0x82, 0x72, + 0xbb, 0xd1, 0xf1, 0xdc, 0x36, 0x76, 0xc1, 0x78, 0xdc, 0x05, 0x54, 0x80, 0x79, 0x17, 0x28, 0x48, + 0xe4, 0x1d, 0x98, 0x29, 0x54, 0x2b, 0x2a, 0x59, 0x4e, 0x7d, 0x4f, 0xdd, 0xb5, 0x35, 0xd2, 0x04, + 0xae, 0xf9, 0x73, 0x13, 0x72, 0x6e, 0x7d, 0xba, 0x5e, 0x22, 0xdd, 0xef, 0x93, 0x3d, 0xa1, 0xdf, + 0x67, 0xe4, 0xb8, 0xed, 0x5c, 0xd3, 0x31, 0x46, 0x4f, 0xa0, 0x63, 0x8c, 0x3d, 0xb6, 0x0f, 0x67, + 0xfc, 0x84, 0x5a, 0x43, 0x42, 0xcc, 0x73, 0xc3, 0x88, 0x79, 0xaa, 0xa6, 0x31, 0xf1, 0xf8, 0x9a, + 0x06, 0x9c, 0x58, 0xd3, 0x50, 0x5e, 0xb0, 0x9c, 0x1c, 0xea, 0x05, 0x4b, 0x63, 0x88, 0x17, 0x2c, + 0x3f, 0x53, 0xea, 0xcb, 0xd7, 0xd3, 0xd5, 0x97, 0xc1, 0x4b, 0xfd, 0xff, 0x9b, 0x15, 0x18, 0x1f, + 0x7b, 0x79, 0xc7, 0xf1, 0x99, 0x2d, 0x18, 0x90, 0xeb, 0x30, 0x2e, 0xf3, 0xc5, 0x18, 0xb1, 0x59, + 0xdd, 0x9b, 0x28, 0x46, 0x62, 0x31, 0xb3, 0x51, 0x12, 0x8b, 0xbb, 0xd5, 0x3c, 0x35, 0x86, 0x80, + 0x69, 0xa9, 0x31, 0x04, 0xcc, 0xfc, 0xf7, 0x46, 0xe4, 0x4c, 0x66, 0x66, 0x8d, 0x78, 0xf2, 0x69, + 0x59, 0x19, 0x39, 0x45, 0x7d, 0x4a, 0x8c, 0x4d, 0x22, 0x66, 0x48, 0x27, 0xf9, 0x24, 0xc9, 0x76, + 0x94, 0x2c, 0xe7, 0xd9, 0x21, 0xb2, 0x9c, 0xbf, 0xa5, 0xa5, 0x08, 0x1f, 0x89, 0x73, 0xd2, 0x32, + 0xe9, 0x1e, 0x9c, 0x1c, 0xfc, 0x96, 0x9a, 0xcb, 0x7b, 0x34, 0xbe, 0x86, 0x8e, 0x94, 0x03, 0xb2, + 0x78, 0x47, 0xfa, 0xe0, 0xd8, 0x49, 0x12, 0x4f, 0x8d, 0xff, 0xa5, 0x26, 0x9e, 0x2a, 0x03, 0x28, + 0xef, 0x00, 0x71, 0x57, 0xfd, 0xcb, 0xac, 0x9b, 0x8e, 0x7f, 0x03, 0x48, 0x21, 0x34, 0xff, 0xf5, + 0x1c, 0xcc, 0xd5, 0x6a, 0x1b, 0x25, 0xd7, 0xd9, 0x6f, 0x7b, 0x41, 0xe8, 0xd6, 0x2b, 0xed, 0x3d, + 0x8f, 0x29, 0x43, 0xd1, 0xaa, 0xa0, 0x24, 0x41, 0x8a, 0x57, 0x84, 0xa8, 0x98, 0x29, 0xdb, 0x65, + 0xdf, 0xf7, 0x7c, 0x55, 0xd9, 0xa6, 0x0c, 0x60, 0x71, 0x38, 0xd3, 0x37, 0x6a, 0x5d, 0xfe, 0xa0, + 0x0b, 0x3f, 0x3d, 0x41, 0x7d, 0x23, 0xe0, 0x20, 0x4b, 0x96, 0x11, 0xda, 0x2b, 0xb0, 0x42, 0xff, + 0x3c, 0xa7, 0xa5, 0xaf, 0x8a, 0x8b, 0xf9, 0x9a, 0x27, 0xf6, 0x24, 0xbc, 0x84, 0xd2, 0x41, 0xb8, + 0x7a, 0xd4, 0xd6, 0x33, 0x07, 0x0e, 0xe1, 0x8c, 0x76, 0x99, 0x62, 0x58, 0x8f, 0xd2, 0x55, 0xa1, + 0xdf, 0x98, 0x78, 0x27, 0x2c, 0xc5, 0xad, 0xa4, 0x26, 0xd9, 0x4d, 0xad, 0x81, 0xfc, 0xbc, 0x01, + 0xcf, 0xa5, 0x96, 0x44, 0xb3, 0x7b, 0x52, 0x4b, 0x21, 0xa6, 0x2c, 0x1a, 0xf8, 0x08, 0xce, 0xab, + 0xfd, 0xaa, 0xb6, 0x53, 0x96, 0x82, 0xc1, 0x35, 0x91, 0xff, 0xd8, 0x80, 0x73, 0x1a, 0x46, 0xb4, + 0xe6, 0x05, 0xb8, 0x37, 0xf5, 0x95, 0xeb, 0x6f, 0x3c, 0x19, 0xb9, 0x7e, 0x51, 0xff, 0x96, 0x78, + 0x49, 0x56, 0xbf, 0xa1, 0x5f, 0x0b, 0xc9, 0x7d, 0x98, 0xc3, 0x22, 0xe9, 0xdd, 0x62, 0x32, 0x2b, + 0x9c, 0x62, 0xf3, 0x71, 0xb3, 0xf9, 0x05, 0x21, 0x7c, 0x01, 0x62, 0xe9, 0xc7, 0x47, 0x8b, 0xd3, + 0x1a, 0x3a, 0x66, 0x2f, 0xc5, 0x36, 0x44, 0x2e, 0x32, 0xb7, 0xbd, 0xe7, 0x69, 0x0f, 0x15, 0x27, + 0xab, 0x20, 0xff, 0x99, 0x01, 0x0b, 0x0c, 0xca, 0x3f, 0xe3, 0xb6, 0xef, 0xb5, 0xa2, 0x72, 0x79, + 0x66, 0xdb, 0xa7, 0xdb, 0x9a, 0x4f, 0xa6, 0xdb, 0x5e, 0xc6, 0x26, 0xf3, 0x35, 0xc1, 0xde, 0xf3, + 0xbd, 0x56, 0xdc, 0x7c, 0xed, 0x9d, 0x9b, 0x7e, 0x8d, 0x24, 0xdf, 0x31, 0xe0, 0xbc, 0xe6, 0x60, + 0x50, 0x73, 0x76, 0x8a, 0x6b, 0x58, 0xf2, 0x80, 0x5f, 0x2d, 0x5a, 0xbe, 0x26, 0xe4, 0xff, 0x12, + 0xb6, 0x20, 0xde, 0x2d, 0xb0, 0x2d, 0x76, 0x8b, 0x63, 0x29, 0x4d, 0xe8, 0x5f, 0x0b, 0x71, 0x61, + 0x0e, 0x4f, 0x9c, 0xb4, 0xd8, 0x82, 0xf9, 0xfe, 0xb1, 0x05, 0x51, 0xa6, 0x6e, 0xcc, 0x8b, 0xd8, + 0x3f, 0xc0, 0xa0, 0x97, 0x2b, 0xf9, 0x19, 0x38, 0xdf, 0x03, 0x8c, 0x66, 0xdb, 0x99, 0xbe, 0xb3, + 0xed, 0xd5, 0x47, 0x47, 0x8b, 0xaf, 0xa4, 0xd5, 0x96, 0x36, 0xd3, 0xfa, 0xd7, 0x40, 0x1c, 0x80, + 0xb8, 0x50, 0x3c, 0x9c, 0x93, 0x2e, 0xa0, 0xaf, 0x0a, 0xf9, 0x50, 0xf0, 0xd9, 0x5a, 0xae, 0xb4, + 0x41, 0xdd, 0xf2, 0x62, 0x24, 0x42, 0x61, 0x4a, 0xc9, 0x09, 0x79, 0x88, 0x2f, 0xe8, 0xf4, 0xad, + 0xe4, 0xc7, 0x47, 0x8b, 0x1a, 0x36, 0xd3, 0x8b, 0xd5, 0x64, 0x93, 0xaa, 0x5e, 0xac, 0x21, 0x92, + 0x7f, 0x6c, 0xc0, 0x3c, 0x03, 0xc4, 0x42, 0x25, 0x3e, 0x6a, 0x61, 0x90, 0xd4, 0x1f, 0x3c, 0x19, + 0xa9, 0x7f, 0x01, 0xdb, 0xa8, 0x4a, 0x7d, 0x4f, 0x97, 0xa4, 0x36, 0x0e, 0xa5, 0x5d, 0x3b, 0xdc, + 0xd4, 0xa4, 0xfd, 0xfc, 0x10, 0xd2, 0xce, 0x07, 0xe0, 0x78, 0x69, 0xef, 0x5b, 0x0b, 0xd9, 0x84, + 0x29, 0xa1, 0x12, 0xf3, 0x0e, 0x7b, 0x5e, 0x4b, 0x41, 0xa7, 0x16, 0x71, 0x3b, 0x45, 0xa4, 0xcc, + 0xec, 0xf9, 0x42, 0x8d, 0x0b, 0x69, 0xc3, 0x69, 0xfe, 0x5b, 0xf7, 0x0e, 0x2c, 0xf6, 0xf5, 0x0e, + 0x5c, 0x16, 0x5f, 0x74, 0x51, 0xf0, 0x4f, 0x38, 0x09, 0xd4, 0x84, 0xf7, 0x29, 0x8c, 0x49, 0x07, + 0x88, 0x06, 0xe6, 0x93, 0xf6, 0xe2, 0x60, 0x9f, 0xc0, 0x2b, 0xa2, 0xce, 0xc5, 0x64, 0x9d, 0xc9, + 0x99, 0x9b, 0xc2, 0x9b, 0x38, 0x30, 0x2b, 0xa0, 0xcc, 0x00, 0xc6, 0x15, 0xfe, 0x05, 0xed, 0xc6, + 0x76, 0xa2, 0x94, 0x3f, 0x23, 0x23, 0x6b, 0xc2, 0x1b, 0xf5, 0x89, 0x05, 0x3d, 0xc9, 0xcf, 0xfc, + 0x9e, 0xd1, 0x53, 0x07, 0x33, 0xb4, 0xf1, 0x87, 0x72, 0xb7, 0x12, 0x0d, 0x6d, 0xce, 0x11, 0x0d, + 0xfe, 0x18, 0x81, 0xe9, 0x36, 0x6a, 0xde, 0x8e, 0xac, 0x78, 0x79, 0x96, 0x83, 0x62, 0xfb, 0x6f, + 0x51, 0x86, 0x68, 0x65, 0x63, 0x1d, 0x09, 0x43, 0xb4, 0x44, 0x60, 0x96, 0xf9, 0x9d, 0x8c, 0x2e, + 0x25, 0xe4, 0xb2, 0xa2, 0x66, 0x2b, 0x99, 0x43, 0xa4, 0x9a, 0xad, 0x28, 0xd7, 0x7f, 0xdf, 0x80, + 0xd3, 0x1b, 0xfe, 0xbe, 0xd3, 0x76, 0xbf, 0xc5, 0xf3, 0x8a, 0x79, 0xd8, 0x8d, 0xd1, 0xb5, 0x92, + 0x4f, 0x35, 0x3f, 0xb9, 0xa7, 0x54, 0xcc, 0x06, 0x16, 0x47, 0xd8, 0x4a, 0x6b, 0x0f, 0x06, 0xbd, + 0x62, 0xc3, 0x94, 0x34, 0xf1, 0x1c, 0x9d, 0xc3, 0xcd, 0x5f, 0xca, 0xc0, 0xa4, 0x22, 0xb1, 0xe4, + 0x73, 0x30, 0xa5, 0xf2, 0x51, 0x9d, 0x34, 0x6a, 0xb5, 0x96, 0x86, 0x85, 0x5e, 0x1a, 0xea, 0xb4, + 0x34, 0x2f, 0x0d, 0x93, 0x4b, 0x84, 0x9e, 0xd0, 0x12, 0x79, 0x3f, 0xc5, 0x12, 0x39, 0xd1, 0x63, + 0x45, 0xef, 0xf4, 0xda, 0x23, 0xc3, 0xbf, 0x2d, 0x64, 0xfe, 0x8a, 0x01, 0xf9, 0xe4, 0x9c, 0xfa, + 0x54, 0x7a, 0xe5, 0x04, 0xee, 0xf0, 0x5f, 0xcc, 0x40, 0x1e, 0xdf, 0x44, 0xa3, 0x0d, 0x19, 0xca, + 0xff, 0xb4, 0x86, 0x36, 0xbc, 0xab, 0x79, 0xaa, 0x9f, 0x89, 0xb6, 0x01, 0xf5, 0xe3, 0x06, 0xa4, + 0x38, 0x19, 0xf9, 0xe1, 0x6f, 0x2d, 0x9e, 0x32, 0x3f, 0x86, 0xf9, 0x64, 0x77, 0xa0, 0xb7, 0xba, + 0x00, 0xb3, 0x3a, 0x3c, 0x99, 0xfd, 0x39, 0x49, 0x65, 0x25, 0xf1, 0xcd, 0x3f, 0xce, 0x24, 0x79, + 0x8b, 0x30, 0x07, 0xb6, 0xe8, 0xb4, 0x9d, 0xdd, 0x66, 0x94, 0xa0, 0x56, 0x3c, 0x77, 0x8d, 0x20, + 0x4b, 0x96, 0x9d, 0x24, 0x0f, 0x78, 0x14, 0x90, 0x9e, 0x4d, 0x0f, 0x48, 0x27, 0xb7, 0x12, 0x01, + 0x3e, 0xca, 0xed, 0xe9, 0x07, 0x74, 0xd7, 0x8e, 0x83, 0x7c, 0x12, 0x71, 0x3d, 0x45, 0x98, 0xd7, + 0x52, 0xcc, 0x49, 0xfa, 0xd1, 0xd8, 0x3f, 0x1a, 0x62, 0x01, 0x27, 0x4e, 0x45, 0x26, 0x2b, 0x30, + 0xce, 0x9a, 0xb9, 0xe6, 0x74, 0x84, 0x13, 0x5a, 0x7d, 0x15, 0x58, 0xee, 0x35, 0xca, 0x0d, 0x95, + 0x26, 0x65, 0x3b, 0xb4, 0xf6, 0xd6, 0x17, 0x47, 0x34, 0xff, 0xdc, 0x60, 0xf3, 0xbf, 0x7e, 0xef, + 0x33, 0x96, 0xa1, 0x9c, 0x7d, 0xd2, 0x80, 0x28, 0x9c, 0x3f, 0xc9, 0xf0, 0x1c, 0xc3, 0x42, 0x7c, + 0xde, 0x82, 0xb1, 0x4d, 0xc7, 0xdf, 0xa7, 0xa1, 0xc8, 0x86, 0xab, 0x72, 0xe1, 0x05, 0xf1, 0xdd, + 0xee, 0x10, 0x7f, 0x5b, 0x82, 0x40, 0x75, 0x5d, 0x65, 0x86, 0x72, 0x5d, 0x29, 0xde, 0xd4, 0xec, + 0x13, 0xf3, 0xa6, 0x7e, 0x39, 0x4a, 0xef, 0x5b, 0x08, 0x87, 0xc8, 0x60, 0x76, 0x31, 0x99, 0xeb, + 0xba, 0x27, 0xd7, 0x5c, 0xcc, 0x8e, 0xdc, 0x52, 0xb3, 0x67, 0x2b, 0x31, 0xde, 0xc7, 0xe4, 0xc9, + 0x36, 0xff, 0x41, 0x96, 0xf7, 0xb1, 0xe8, 0xa8, 0x4b, 0xda, 0xfd, 0x0f, 0x9c, 0x27, 0x6c, 0xa1, + 0x57, 0xaf, 0xe2, 0x61, 0xb8, 0xc1, 0x25, 0x18, 0x61, 0xb2, 0x29, 0x7a, 0x93, 0xbf, 0xe8, 0xea, + 0x35, 0xb5, 0x2b, 0x7b, 0xac, 0x9c, 0xcd, 0x65, 0xdc, 0x93, 0xd4, 0x44, 0xfd, 0xb8, 0x6d, 0xa9, + 0x73, 0x19, 0x31, 0xf0, 0x16, 0xa0, 0xd7, 0xa0, 0xea, 0x14, 0x6d, 0xeb, 0x4f, 0x5b, 0x62, 0x39, + 0xfb, 0xd2, 0x28, 0x5f, 0xae, 0xfa, 0xa5, 0xad, 0x3d, 0xc7, 0xe6, 0x79, 0x5a, 0xd5, 0x2f, 0x8d, + 0x53, 0xeb, 0x96, 0x61, 0x46, 0x7f, 0x16, 0x4b, 0x44, 0x28, 0xa1, 0x4f, 0x34, 0xf1, 0xa4, 0x96, + 0xea, 0xca, 0xd6, 0x89, 0xc8, 0x32, 0x4c, 0x6b, 0xf9, 0x79, 0xc4, 0x59, 0x10, 0xfa, 0x22, 0xf5, + 0xec, 0x3e, 0xaa, 0x2f, 0x52, 0x23, 0x61, 0xbb, 0xb9, 0x68, 0xbf, 0x72, 0x22, 0xd4, 0xd3, 0x76, + 0x81, 0xa3, 0xdc, 0x93, 0x7a, 0x03, 0xf2, 0x62, 0x6d, 0x89, 0x5e, 0x58, 0xc0, 0x13, 0xda, 0x4a, + 0xc9, 0x52, 0xd7, 0x83, 0xba, 0xdb, 0xf0, 0x2d, 0x84, 0x9a, 0x3f, 0x30, 0xe0, 0xfc, 0x3a, 0x0d, + 0x1f, 0x78, 0xfe, 0x3d, 0x8b, 0x06, 0xa1, 0xef, 0xf2, 0x07, 0x1b, 0x70, 0x46, 0x7d, 0x8e, 0xbc, + 0x23, 0x5f, 0x1b, 0xd7, 0x97, 0xf8, 0x64, 0x1d, 0xcb, 0xd3, 0x42, 0x12, 0x47, 0x31, 0x84, 0x46, + 0xbe, 0x32, 0xfe, 0x96, 0x78, 0x65, 0x3c, 0x33, 0x98, 0x38, 0x9a, 0xd9, 0x0d, 0xda, 0x96, 0xaf, + 0x8b, 0xff, 0x4a, 0x06, 0xce, 0xa4, 0x34, 0x6b, 0xfb, 0x73, 0x4f, 0xe9, 0xf2, 0xb6, 0xac, 0x2d, + 0x6f, 0x17, 0x05, 0x69, 0xdf, 0x8e, 0x4f, 0x5d, 0xed, 0x7e, 0xc3, 0x80, 0x73, 0xba, 0xac, 0x89, + 0x30, 0xb7, 0xed, 0x9b, 0xe4, 0x6d, 0x18, 0x5b, 0xa1, 0x4e, 0x83, 0xca, 0x44, 0xe0, 0xf1, 0x43, + 0xb3, 0xfc, 0x52, 0x10, 0x2f, 0xe4, 0x6c, 0xff, 0x98, 0x2f, 0x46, 0xa7, 0x2c, 0x41, 0x42, 0x4a, + 0xa2, 0x71, 0x5c, 0xb1, 0x36, 0xe5, 0x05, 0xbd, 0xb4, 0xaa, 0x06, 0x9c, 0x6f, 0xff, 0xd8, 0x80, + 0x67, 0x06, 0xd0, 0xb0, 0x81, 0x63, 0x43, 0xaf, 0x0e, 0x1c, 0x6e, 0x8d, 0x08, 0x25, 0xef, 0xc1, + 0xec, 0xa6, 0x50, 0xcc, 0xe5, 0x70, 0x64, 0x62, 0xd1, 0x97, 0x3a, 0xbb, 0x2d, 0xc7, 0x25, 0x89, + 0xac, 0xdd, 0x1c, 0xcd, 0x0e, 0xbc, 0x39, 0xaa, 0x5e, 0xc4, 0x1c, 0x19, 0xf6, 0x22, 0xe6, 0xc7, + 0xc9, 0x97, 0xf9, 0x44, 0x3e, 0xac, 0xf8, 0x1a, 0xaa, 0xd1, 0xff, 0x1a, 0xea, 0xc0, 0xac, 0x3b, + 0xf8, 0x6e, 0x80, 0xce, 0xfb, 0x71, 0xc7, 0xf3, 0x5d, 0x6d, 0x3c, 0x9f, 0x49, 0x1f, 0xcf, 0xfe, + 0x03, 0xf9, 0x9b, 0x46, 0xf2, 0x63, 0x87, 0x1a, 0x41, 0x13, 0xc6, 0x4a, 0x5e, 0xcb, 0x71, 0xdb, + 0xea, 0x8b, 0x61, 0x0d, 0x84, 0x58, 0xa2, 0x64, 0xb8, 0x5b, 0xbb, 0x17, 0x61, 0x74, 0xdd, 0x6b, + 0x17, 0x4a, 0x22, 0xa6, 0x0d, 0xf9, 0xb4, 0xbd, 0xb6, 0xed, 0x34, 0x2c, 0x5e, 0x60, 0xfe, 0xfc, + 0x28, 0x9c, 0xb7, 0xe8, 0xbe, 0xcb, 0x54, 0xc7, 0xad, 0xc0, 0x6d, 0xef, 0x6b, 0x57, 0x14, 0xcd, + 0xc4, 0x98, 0x88, 0x3c, 0x91, 0x0c, 0x12, 0xd5, 0x71, 0x05, 0x72, 0x6c, 0xaf, 0x50, 0x86, 0x05, + 0x8f, 0x01, 0xf0, 0x89, 0x58, 0x2e, 0x2f, 0xb2, 0x98, 0x5c, 0x15, 0x3b, 0x99, 0x92, 0xc9, 0x97, + 0xed, 0x64, 0x3f, 0x39, 0x5a, 0x84, 0xda, 0x61, 0x10, 0x52, 0xb4, 0x62, 0xc4, 0x6e, 0x16, 0xa9, + 0x9b, 0x23, 0x7d, 0xd4, 0xcd, 0x35, 0x98, 0x2f, 0x34, 0xf8, 0xba, 0xe7, 0x34, 0xab, 0xbe, 0xdb, + 0xae, 0xbb, 0x1d, 0xa7, 0x29, 0x4d, 0x28, 0x3c, 0x0c, 0x72, 0xa2, 0x72, 0xbb, 0x13, 0x21, 0x58, + 0xa9, 0x64, 0xec, 0x33, 0x4a, 0xeb, 0x35, 0xfe, 0x02, 0x28, 0x3f, 0xe1, 0xc1, 0xcf, 0x68, 0xb4, + 0x03, 0xfe, 0x04, 0xa8, 0x15, 0x15, 0xa3, 0xa2, 0x8b, 0xc7, 0xe8, 0x9b, 0xab, 0xb5, 0xf8, 0xba, + 0x04, 0x4f, 0x34, 0xc8, 0x8f, 0xda, 0xc3, 0x66, 0x80, 0xc7, 0xed, 0x1a, 0x5e, 0x4c, 0x57, 0xab, + 0xad, 0x30, 0xba, 0x5c, 0x0f, 0x5d, 0x10, 0x1c, 0xa8, 0x74, 0x1c, 0x8f, 0x5c, 0x07, 0xe0, 0x29, + 0x72, 0x50, 0x64, 0x26, 0x62, 0xb5, 0xd8, 0x47, 0x28, 0x57, 0x8b, 0x15, 0x14, 0xf2, 0x0e, 0x9c, + 0x2e, 0x17, 0x97, 0xa4, 0x5f, 0xae, 0xe4, 0xd5, 0xbb, 0x78, 0x30, 0x0a, 0x58, 0x1f, 0x8e, 0x21, + 0xad, 0x2f, 0x31, 0x39, 0x49, 0x43, 0x23, 0x97, 0x60, 0xbc, 0x52, 0xe2, 0x7d, 0x3f, 0xa9, 0x66, + 0xd3, 0x16, 0x01, 0x07, 0xb2, 0x90, 0x6c, 0xc4, 0x7a, 0xdb, 0xd4, 0xb1, 0x0a, 0xd6, 0xf9, 0xe3, + 0x75, 0x36, 0x91, 0x74, 0x9b, 0x3f, 0xd9, 0x50, 0xf4, 0x1a, 0x34, 0xd8, 0xbe, 0xf1, 0x19, 0x4b, + 0xba, 0xad, 0x7c, 0x1b, 0x2e, 0x04, 0x37, 0x52, 0x57, 0x8d, 0xbf, 0x8d, 0x49, 0xb7, 0x7b, 0x70, + 0xc9, 0x17, 0x60, 0x14, 0x7f, 0x0a, 0x15, 0xe2, 0x74, 0x0a, 0xdb, 0x58, 0x7d, 0xa8, 0xf3, 0xc7, + 0xf3, 0x90, 0x80, 0x54, 0x60, 0x5c, 0xa8, 0xa1, 0x27, 0x49, 0x1d, 0x2b, 0xf4, 0x59, 0x3e, 0x48, + 0x82, 0xde, 0x6c, 0xc0, 0x94, 0x5a, 0x21, 0x13, 0xce, 0x15, 0x27, 0x38, 0xa0, 0x0d, 0xf6, 0x4b, + 0x64, 0x7d, 0x47, 0xe1, 0x3c, 0x40, 0xa8, 0xcd, 0xda, 0x61, 0x29, 0x28, 0x6c, 0xe1, 0xaa, 0x04, + 0x5b, 0x81, 0x68, 0x8a, 0x30, 0x4c, 0x5d, 0x74, 0x72, 0x34, 0x2c, 0x51, 0x64, 0x7e, 0x19, 0xe6, + 0xd7, 0xbb, 0xcd, 0x26, 0x33, 0x52, 0x65, 0x56, 0xd0, 0xd0, 0x09, 0x29, 0x59, 0x86, 0x51, 0xfc, + 0x43, 0x3c, 0xe7, 0x7d, 0x5a, 0x7f, 0xdf, 0x14, 0x8b, 0x30, 0xc6, 0xc9, 0xc0, 0x0b, 0x8e, 0xa1, + 0xfe, 0x3e, 0x2e, 0x27, 0x35, 0x7f, 0x14, 0x3f, 0xe3, 0xb8, 0xe9, 0x3b, 0xf5, 0x7b, 0xd4, 0x17, + 0x3b, 0xd0, 0xb0, 0xcf, 0x4c, 0x7e, 0x28, 0x1b, 0xa1, 0xef, 0x0a, 0x69, 0x0d, 0x3e, 0xae, 0x31, + 0xe4, 0x1d, 0x98, 0x14, 0x3b, 0x83, 0x92, 0x96, 0x03, 0xef, 0x3e, 0xcb, 0x17, 0x67, 0x13, 0x27, + 0xe6, 0x2a, 0x3a, 0x6e, 0x78, 0xfa, 0xa7, 0x6c, 0xdf, 0xf8, 0x34, 0x36, 0x3c, 0xbd, 0x8e, 0x01, + 0xa2, 0xfb, 0x5d, 0x48, 0xf6, 0xad, 0x90, 0xdd, 0x5b, 0xea, 0x45, 0x7c, 0x23, 0xb6, 0x24, 0xe2, + 0x8b, 0xf8, 0xaa, 0x25, 0x11, 0xa1, 0x46, 0x63, 0x92, 0x39, 0x66, 0x4c, 0xde, 0x93, 0x63, 0x92, + 0xed, 0x2f, 0x18, 0xa7, 0x07, 0x8c, 0x43, 0x2d, 0x9e, 0x21, 0x23, 0x43, 0x19, 0xa1, 0xa7, 0x30, + 0xe3, 0x20, 0x27, 0x49, 0x2e, 0x68, 0x82, 0x93, 0x6a, 0xd9, 0x8e, 0x0e, 0xcf, 0xf4, 0x18, 0xcb, + 0xf6, 0x8b, 0x30, 0x55, 0x08, 0x43, 0xa7, 0x7e, 0x40, 0x1b, 0x25, 0xb6, 0x3c, 0x29, 0x77, 0x86, + 0x1d, 0x01, 0x57, 0x4f, 0x04, 0x54, 0x5c, 0x9e, 0x03, 0xc7, 0x09, 0x44, 0xc0, 0x56, 0x94, 0x03, + 0x87, 0x41, 0xf4, 0x1c, 0x38, 0x0c, 0xc2, 0x2c, 0xf9, 0x4a, 0xfb, 0xbe, 0xcb, 0xfa, 0x24, 0x17, + 0x3f, 0x4d, 0xe7, 0x72, 0x90, 0xba, 0xb8, 0x0a, 0x2c, 0xf2, 0x96, 0xa2, 0x39, 0x4e, 0xc4, 0x06, + 0x1f, 0x77, 0x10, 0xd8, 0x52, 0x81, 0x54, 0xb5, 0xc2, 0x48, 0x95, 0xbc, 0x05, 0xe3, 0xd2, 0xef, + 0x03, 0xb1, 0x91, 0x27, 0x28, 0x7b, 0x6f, 0x86, 0x49, 0x64, 0x7c, 0x15, 0x4a, 0xc9, 0x5e, 0x3f, + 0xa9, 0xbc, 0x0a, 0xa5, 0x64, 0xaf, 0xd7, 0x5e, 0x85, 0x52, 0xf2, 0xd8, 0x47, 0x26, 0xf3, 0xd4, + 0xb1, 0x26, 0xf3, 0x36, 0x4c, 0x55, 0x1d, 0x3f, 0x74, 0x99, 0xba, 0xd0, 0x0e, 0xf9, 0x3b, 0xdf, + 0xb1, 0x97, 0x49, 0x29, 0x5a, 0x7e, 0x5e, 0xbe, 0x8e, 0xd4, 0x51, 0xf0, 0xf5, 0x67, 0x75, 0x62, + 0x78, 0x7a, 0xb8, 0xd6, 0xcc, 0xe3, 0x84, 0x6b, 0x61, 0xa7, 0xa2, 0x67, 0x61, 0x36, 0x0e, 0x8e, + 0x43, 0xcd, 0x30, 0xe1, 0x5e, 0x88, 0x10, 0xc9, 0x57, 0x61, 0x8a, 0xfd, 0x8d, 0x6f, 0xbd, 0xba, + 0x94, 0xbf, 0xe3, 0x1d, 0xe7, 0x19, 0xd3, 0x27, 0x34, 0x7f, 0x10, 0xb6, 0x46, 0x43, 0x3e, 0x81, + 0x91, 0x71, 0xd2, 0x65, 0xa8, 0x71, 0x23, 0xef, 0xc3, 0x94, 0xfa, 0x68, 0xba, 0x88, 0x8f, 0xc2, + 0x83, 0xac, 0x86, 0x80, 0xf7, 0xa4, 0xa1, 0x52, 0x09, 0xd8, 0x36, 0x5f, 0xe8, 0xf0, 0x05, 0x92, + 0x28, 0xd2, 0xde, 0xe9, 0x59, 0x1c, 0x25, 0x1a, 0xf9, 0x00, 0xa6, 0x0a, 0x9d, 0x4e, 0xbc, 0xe2, + 0x9c, 0x56, 0x1c, 0x07, 0x9d, 0x8e, 0x9d, 0xba, 0xea, 0x68, 0x14, 0xc9, 0x85, 0x79, 0xfe, 0x64, + 0x0b, 0xf3, 0x9f, 0x19, 0x70, 0xae, 0x4f, 0xb7, 0x45, 0x29, 0x98, 0x8c, 0xc1, 0x29, 0x98, 0xd8, + 0xf4, 0xd3, 0xed, 0x37, 0x9c, 0x7e, 0x42, 0x55, 0x51, 0x3f, 0x5a, 0x2a, 0x2d, 0xe9, 0x8f, 0x8e, + 0x67, 0x3f, 0xb5, 0x47, 0xc7, 0xcd, 0x23, 0x03, 0x26, 0x15, 0x61, 0x26, 0x17, 0x95, 0x0b, 0x3b, + 0x79, 0x9e, 0xd7, 0x59, 0xe1, 0x90, 0xe1, 0xcb, 0x39, 0x4a, 0x66, 0xe6, 0x78, 0x9f, 0xd7, 0x1a, + 0xd3, 0x27, 0x94, 0x34, 0x55, 0xad, 0x84, 0x83, 0x8a, 0x95, 0xe3, 0xcb, 0x68, 0x4e, 0x10, 0x16, + 0xea, 0xa1, 0x7b, 0x9f, 0x0e, 0xb1, 0x72, 0xc7, 0x2f, 0xa3, 0x39, 0x41, 0x68, 0x3b, 0x48, 0xd6, + 0xf3, 0x32, 0x5a, 0xc4, 0xd0, 0xfc, 0x2b, 0x06, 0xc0, 0x56, 0xa5, 0x88, 0x79, 0xe6, 0x1e, 0x77, + 0x67, 0x4d, 0xcf, 0xdd, 0x23, 0xb9, 0x0f, 0xd8, 0x53, 0xab, 0x30, 0xa3, 0x63, 0x31, 0x0b, 0xbf, + 0x56, 0xf7, 0xbd, 0x66, 0x73, 0xd7, 0xa9, 0xdf, 0x5b, 0x75, 0xdb, 0x94, 0x27, 0x4d, 0x19, 0xe5, + 0xeb, 0x79, 0x10, 0x15, 0xd9, 0x4d, 0x56, 0x66, 0x25, 0x91, 0xcd, 0xbf, 0x30, 0x60, 0xb2, 0xd2, + 0x0e, 0x42, 0xa7, 0xd9, 0x44, 0x8d, 0xe1, 0xb3, 0x94, 0xda, 0x3f, 0xfa, 0xae, 0x01, 0x3d, 0xfa, + 0x26, 0xcc, 0x26, 0xd0, 0x98, 0xa5, 0x5b, 0xc3, 0xfb, 0x84, 0xaa, 0xa5, 0xcb, 0x6f, 0x18, 0x5a, + 0xa2, 0xc4, 0x2c, 0x2b, 0x64, 0xdb, 0x37, 0xf0, 0x08, 0x67, 0x09, 0xc0, 0x95, 0x20, 0xa9, 0x97, + 0x93, 0x64, 0x4b, 0xb6, 0x6f, 0x58, 0x0a, 0x96, 0xb9, 0x0e, 0x63, 0x35, 0xcf, 0x0f, 0x97, 0x0f, + 0xb9, 0x2a, 0x5c, 0xa2, 0x41, 0x5d, 0x3d, 0xa3, 0x71, 0xd1, 0x33, 0x5a, 0xb7, 0x44, 0x11, 0x33, + 0x84, 0x6f, 0xbb, 0xb4, 0xd9, 0x50, 0x63, 0xe7, 0xf6, 0x18, 0xc0, 0xe2, 0x70, 0x66, 0x2e, 0x9c, + 0x8d, 0xf3, 0xa0, 0xc6, 0x41, 0x7a, 0x8f, 0x2b, 0xb0, 0x45, 0xad, 0x7f, 0x5f, 0xd0, 0xdf, 0xc3, + 0xd3, 0x6a, 0x1a, 0xd0, 0xd5, 0xff, 0xc8, 0x80, 0x0b, 0xfd, 0x49, 0xd4, 0xb8, 0x3f, 0x63, 0x40, + 0xdc, 0xdf, 0xcb, 0xc9, 0x33, 0x05, 0x44, 0x13, 0x67, 0x0a, 0xf1, 0x49, 0x42, 0x09, 0xc3, 0x2e, + 0xeb, 0xd1, 0xdb, 0xa3, 0x17, 0x07, 0xb4, 0x19, 0x11, 0xf9, 0x30, 0x87, 0x48, 0x63, 0x09, 0x5a, + 0xf3, 0x9f, 0x8e, 0xc0, 0xf9, 0xbe, 0x14, 0x64, 0x45, 0x49, 0xa9, 0x3c, 0x13, 0x25, 0x73, 0xed, + 0x8b, 0x7f, 0x0d, 0xff, 0xc5, 0xc8, 0x9a, 0xe4, 0x6d, 0x80, 0x8d, 0x28, 0x95, 0x6e, 0x06, 0x79, + 0xbd, 0x7a, 0x2c, 0x2f, 0x8e, 0x8e, 0xcc, 0xa0, 0x37, 0xab, 0x2e, 0x5e, 0xda, 0xa0, 0xa1, 0xe3, + 0x36, 0x03, 0x75, 0xda, 0x35, 0x38, 0xc8, 0x92, 0x65, 0x71, 0x30, 0xe6, 0x48, 0x7a, 0x30, 0xa6, + 0xf9, 0x7f, 0x1b, 0x30, 0x11, 0x35, 0x9b, 0x5c, 0x80, 0xb3, 0x9b, 0x56, 0xa1, 0x58, 0xb6, 0x37, + 0x3f, 0xae, 0x96, 0xed, 0xad, 0xf5, 0x5a, 0xb5, 0x5c, 0xac, 0xdc, 0xae, 0x94, 0x4b, 0xf9, 0x53, + 0x64, 0x0e, 0xa6, 0xb7, 0xd6, 0xef, 0xae, 0x6f, 0xec, 0xac, 0xdb, 0x65, 0xcb, 0xda, 0xb0, 0xf2, + 0x06, 0x99, 0x86, 0x09, 0x6b, 0xb9, 0x50, 0xb4, 0xd7, 0x37, 0x4a, 0xe5, 0x7c, 0x86, 0xe4, 0x61, + 0xaa, 0xb8, 0xb1, 0xbe, 0x5e, 0x2e, 0x6e, 0x56, 0xb6, 0x2b, 0x9b, 0x1f, 0xe7, 0xb3, 0x84, 0xc0, + 0x0c, 0x22, 0x54, 0xad, 0xca, 0x7a, 0xb1, 0x52, 0x2d, 0xac, 0xe6, 0x47, 0x18, 0x8c, 0xe1, 0x2b, + 0xb0, 0xd1, 0x88, 0xd1, 0xdd, 0xad, 0xe5, 0x72, 0x7e, 0x8c, 0xa1, 0xb0, 0xbf, 0x14, 0x94, 0x71, + 0x56, 0x3d, 0xa2, 0x94, 0x0a, 0x9b, 0x85, 0xe5, 0x42, 0xad, 0x9c, 0xcf, 0x91, 0x73, 0x70, 0x5a, + 0x03, 0xd9, 0xab, 0x1b, 0x77, 0x2a, 0xeb, 0xf9, 0x09, 0x32, 0x0f, 0xf9, 0x08, 0x56, 0x5a, 0xb6, + 0xb7, 0x6a, 0x65, 0x2b, 0x0f, 0x49, 0xe8, 0x7a, 0x61, 0xad, 0x9c, 0x9f, 0x34, 0xdf, 0xe5, 0xf7, + 0x34, 0x78, 0x57, 0x93, 0xb3, 0x40, 0x6a, 0x9b, 0x85, 0xcd, 0xad, 0x5a, 0xe2, 0xe3, 0x27, 0x61, + 0xbc, 0xb6, 0x55, 0x2c, 0x96, 0x6b, 0xb5, 0xbc, 0x41, 0x00, 0xc6, 0x6e, 0x17, 0x2a, 0xab, 0xe5, + 0x52, 0x3e, 0x63, 0xfe, 0xb2, 0x01, 0x73, 0x52, 0x7f, 0x91, 0x7e, 0xe5, 0xc7, 0x9c, 0x8b, 0xef, + 0x69, 0x66, 0x99, 0x0c, 0xa3, 0x4f, 0x54, 0x32, 0x60, 0x1a, 0xfa, 0x70, 0x26, 0x15, 0x99, 0x7c, + 0x0c, 0x79, 0xd9, 0x80, 0x35, 0x27, 0xac, 0x1f, 0xc4, 0xcb, 0xd8, 0xf3, 0x89, 0x4a, 0x12, 0x68, + 0xdc, 0x3d, 0x16, 0xbf, 0x1d, 0xd4, 0xc3, 0xc6, 0xfc, 0x29, 0x38, 0xd7, 0x87, 0x96, 0x14, 0x61, + 0x2c, 0x4a, 0x30, 0x3b, 0x20, 0x02, 0x65, 0xfe, 0xc7, 0x47, 0x8b, 0x02, 0x11, 0x5f, 0x50, 0xc1, + 0xbf, 0x2c, 0x01, 0x31, 0xff, 0xba, 0x01, 0x53, 0x42, 0xeb, 0x2d, 0x34, 0xa9, 0x1f, 0x3e, 0x5e, + 0x0f, 0xbf, 0xa5, 0xf5, 0x70, 0x14, 0x4e, 0xac, 0xf0, 0x67, 0xc5, 0xa9, 0x9d, 0xfb, 0x5f, 0x1b, + 0x90, 0x4f, 0x22, 0x92, 0xf7, 0x20, 0x57, 0xa3, 0xf7, 0xa9, 0xef, 0x86, 0x87, 0x62, 0xad, 0x90, + 0x99, 0xeb, 0x39, 0x8e, 0x28, 0xe3, 0xce, 0xb5, 0x40, 0xfc, 0xb2, 0x22, 0x9a, 0x61, 0x97, 0x3c, + 0xc5, 0x6e, 0xcd, 0x3e, 0x29, 0xbb, 0xd5, 0xfc, 0x27, 0x19, 0x38, 0x77, 0x87, 0x86, 0xea, 0x37, + 0x45, 0xe7, 0x69, 0x6f, 0x0c, 0xf7, 0x5d, 0xca, 0x97, 0x2c, 0xc0, 0x38, 0x16, 0xc9, 0xab, 0xda, + 0x96, 0xfc, 0x49, 0x96, 0x23, 0x31, 0xc8, 0x6a, 0xa9, 0xb1, 0xfb, 0xd4, 0x7d, 0x4d, 0x49, 0x96, + 0x2b, 0xa5, 0x80, 0x5c, 0x82, 0x19, 0xcc, 0x06, 0xd7, 0x65, 0xd2, 0x43, 0x1b, 0xc2, 0x7e, 0xcf, + 0x59, 0x09, 0x28, 0xb9, 0x0a, 0x79, 0x06, 0x29, 0xd4, 0xef, 0xb5, 0xbd, 0x07, 0x4d, 0xda, 0xd8, + 0xa7, 0xfc, 0xfd, 0xcd, 0x9c, 0xd5, 0x03, 0xbf, 0xf0, 0x16, 0x4c, 0x7e, 0xc2, 0x84, 0xd6, 0xe6, + 0xbf, 0x34, 0x60, 0x1e, 0x1b, 0xad, 0x30, 0x44, 0xaf, 0xea, 0x1b, 0x71, 0x2f, 0x28, 0x39, 0x5e, + 0x1d, 0x06, 0xd2, 0xcd, 0x90, 0xa8, 0x77, 0x62, 0x63, 0x3d, 0x33, 0x84, 0xb1, 0x5e, 0x3b, 0xc9, + 0x83, 0x5d, 0x43, 0xfa, 0x1a, 0xf8, 0xe3, 0xa9, 0xf1, 0x50, 0x9a, 0x7f, 0x35, 0x03, 0xe3, 0x16, + 0xc5, 0x97, 0x8c, 0xc8, 0x25, 0x18, 0x5f, 0xf7, 0x42, 0x1a, 0xac, 0x69, 0xcf, 0x56, 0xb5, 0x19, + 0xc8, 0x6e, 0x35, 0x2c, 0x59, 0xc8, 0x04, 0xb9, 0xea, 0x7b, 0x8d, 0x6e, 0x3d, 0x54, 0x05, 0xb9, + 0xc3, 0x41, 0x96, 0x2c, 0x23, 0xaf, 0xc1, 0x84, 0xe0, 0x1c, 0x1d, 0x69, 0x60, 0x4c, 0x9d, 0x4f, + 0xa3, 0x97, 0xb0, 0x62, 0x04, 0x54, 0xd7, 0xf8, 0xde, 0x39, 0xa2, 0xa8, 0x6b, 0x3d, 0xdb, 0xa1, + 0xd4, 0x42, 0x47, 0x07, 0x68, 0xa1, 0x6f, 0xc0, 0x58, 0x21, 0x08, 0x68, 0x28, 0x6f, 0x2f, 0x4e, + 0x45, 0x19, 0x13, 0x02, 0x1a, 0x72, 0xc6, 0x0e, 0x96, 0x5b, 0x02, 0xcf, 0xfc, 0xf3, 0x0c, 0x8c, + 0xe2, 0x9f, 0x78, 0x8c, 0xe3, 0xd7, 0x0f, 0xb4, 0x63, 0x1c, 0xbf, 0x7e, 0x60, 0x21, 0x94, 0xdc, + 0x40, 0x13, 0x52, 0xa6, 0x23, 0x16, 0x5f, 0x8f, 0xbe, 0xd1, 0x46, 0x0c, 0xb6, 0x54, 0x9c, 0xe8, + 0x7c, 0x2b, 0x9b, 0x7a, 0x67, 0xf9, 0x2c, 0x64, 0x36, 0x6a, 0xe2, 0x8b, 0x31, 0x21, 0x82, 0x17, + 0x58, 0x99, 0x8d, 0x1a, 0xf6, 0xc6, 0x4a, 0x61, 0xe9, 0xcd, 0x5b, 0xea, 0x0b, 0x6b, 0xc1, 0x81, + 0xb3, 0xf4, 0xe6, 0x2d, 0x4b, 0x94, 0xb0, 0xfe, 0xc5, 0x36, 0xd7, 0xdc, 0x6f, 0x51, 0x71, 0xe1, + 0x0f, 0xfb, 0x17, 0xbf, 0xcd, 0x0e, 0xdc, 0x6f, 0x51, 0x2b, 0x46, 0x20, 0x4b, 0x30, 0x29, 0xee, + 0x78, 0x22, 0xbe, 0x72, 0x07, 0x53, 0xdc, 0x01, 0xe5, 0x14, 0x2a, 0x12, 0x3f, 0xa6, 0x10, 0x03, + 0x24, 0x1f, 0x4d, 0x11, 0xc7, 0x14, 0x72, 0x08, 0x03, 0x4b, 0x41, 0x89, 0xef, 0x2b, 0xc6, 0x17, + 0xf9, 0xd4, 0xfb, 0x8a, 0x98, 0xb5, 0x2f, 0x42, 0x30, 0x7f, 0x27, 0x03, 0xb9, 0x6a, 0xb3, 0xbb, + 0xef, 0xb6, 0xb7, 0x6f, 0xfc, 0xa5, 0xbe, 0xdd, 0xfb, 0x3a, 0xe0, 0xe2, 0x2f, 0xf4, 0x62, 0xe9, + 0x69, 0xe4, 0x4d, 0x13, 0x5b, 0x30, 0x27, 0x41, 0x34, 0x72, 0x13, 0x84, 0x60, 0x8a, 0x47, 0x9f, + 0xce, 0xe8, 0x04, 0xfc, 0xb9, 0x03, 0x49, 0x22, 0x50, 0xc9, 0x3b, 0x30, 0x19, 0x3f, 0x2b, 0x1b, + 0xbf, 0xe5, 0xa4, 0x52, 0x16, 0xe3, 0xf2, 0xed, 0x1b, 0x96, 0x8a, 0x6e, 0xfe, 0x81, 0x01, 0x53, + 0x6a, 0x7b, 0x88, 0x05, 0xa7, 0x83, 0x26, 0x33, 0x08, 0x45, 0xd4, 0x44, 0x07, 0x0b, 0xc5, 0x36, + 0x79, 0x51, 0x6f, 0x10, 0xc3, 0xe3, 0x21, 0x14, 0x35, 0x1a, 0x86, 0x6e, 0x7b, 0x3f, 0x58, 0x39, + 0x65, 0xcd, 0x05, 0x31, 0x98, 0xe3, 0x91, 0x02, 0xe4, 0xbc, 0x4e, 0xb0, 0x4f, 0xdb, 0xae, 0x74, + 0x84, 0xbf, 0xa8, 0x31, 0xda, 0x10, 0x85, 0x3d, 0xbc, 0x22, 0xb2, 0x2f, 0x8e, 0xfc, 0x6f, 0xbf, + 0xb5, 0x68, 0x2c, 0x03, 0xe4, 0x02, 0x51, 0x6a, 0xae, 0xc2, 0xf9, 0xbe, 0xcd, 0x20, 0x57, 0x20, + 0xbf, 0xe7, 0x08, 0xcb, 0xb6, 0x7e, 0xe0, 0xb4, 0xdb, 0xb4, 0x29, 0x04, 0x60, 0x56, 0xc2, 0x8b, + 0x1c, 0xcc, 0x39, 0x9b, 0xbf, 0x65, 0xc0, 0xb3, 0x83, 0x1a, 0xc3, 0xc4, 0xc8, 0x89, 0x8e, 0x61, + 0x2d, 0xfc, 0x9b, 0x5c, 0x80, 0x5c, 0xc7, 0x77, 0x3d, 0xdc, 0xe0, 0xb8, 0x18, 0x45, 0xbf, 0xc9, + 0x73, 0x00, 0x7c, 0xc5, 0x0e, 0x9d, 0x7d, 0x11, 0x09, 0x69, 0x4d, 0x20, 0x64, 0xd3, 0xd9, 0x0f, + 0xc8, 0xab, 0x30, 0xd7, 0xa0, 0x7b, 0x4e, 0xb7, 0x19, 0xda, 0x41, 0xfd, 0x80, 0x36, 0xba, 0x4d, + 0xf1, 0x9e, 0xcb, 0x84, 0x95, 0x17, 0x05, 0x35, 0x09, 0x17, 0x4d, 0xfc, 0x8d, 0xa8, 0x89, 0xcb, + 0x9e, 0x17, 0x06, 0xa1, 0xef, 0x74, 0xb4, 0x81, 0x25, 0x2d, 0x38, 0xef, 0x39, 0xdd, 0xf0, 0x60, + 0x09, 0xdf, 0xcb, 0xf7, 0x7c, 0x19, 0x48, 0x5b, 0x97, 0xc7, 0x2d, 0x93, 0x4b, 0xd7, 0xf5, 0x7e, + 0x2f, 0x30, 0xec, 0x82, 0x8a, 0x5c, 0xf4, 0x1a, 0x54, 0xe1, 0xba, 0x72, 0xca, 0x3a, 0xc7, 0x79, + 0xf6, 0x60, 0x2d, 0x4f, 0x6b, 0x82, 0x67, 0xfe, 0x34, 0x5c, 0x1e, 0x96, 0x2b, 0x3e, 0x31, 0x9c, + 0xde, 0xc4, 0x09, 0x6b, 0xce, 0x49, 0x52, 0xf2, 0x27, 0x86, 0xa3, 0xab, 0xba, 0xae, 0xe8, 0xeb, + 0x49, 0x09, 0xdb, 0xf2, 0x5d, 0xf3, 0x5d, 0x98, 0xd1, 0x67, 0x09, 0x79, 0x15, 0x46, 0x22, 0xae, + 0x33, 0x91, 0x96, 0xa6, 0x22, 0x31, 0xde, 0x16, 0x22, 0x99, 0xdf, 0x31, 0xe0, 0x74, 0xca, 0x5c, + 0x21, 0x5f, 0x81, 0xd3, 0xb2, 0x4b, 0xf9, 0x74, 0xc0, 0x83, 0x4d, 0xd1, 0x99, 0x57, 0xd2, 0x3a, + 0x13, 0xd1, 0xf0, 0xd4, 0x53, 0xef, 0xc6, 0x39, 0xd1, 0x8d, 0x71, 0x79, 0xb2, 0x03, 0xff, 0xa1, + 0x01, 0xe6, 0xf1, 0xac, 0x58, 0x67, 0xf4, 0xb4, 0x65, 0xc2, 0x9a, 0x74, 0x62, 0x6c, 0xf2, 0x22, + 0x4c, 0xfb, 0x74, 0xcf, 0xa7, 0xc1, 0x81, 0xc0, 0xe1, 0x1d, 0x36, 0x25, 0x80, 0x1c, 0xe9, 0x3d, + 0x90, 0x81, 0xe5, 0x43, 0xa8, 0x83, 0xca, 0x33, 0xe2, 0x82, 0xc8, 0x7c, 0x4b, 0x2e, 0x1c, 0xab, + 0x6e, 0x10, 0x6e, 0xdf, 0x20, 0x57, 0x60, 0x9c, 0xaf, 0x15, 0xd2, 0x2a, 0x98, 0xd5, 0xba, 0x67, + 0xfb, 0x86, 0x25, 0xcb, 0xcd, 0xdf, 0x11, 0xf7, 0x9e, 0x2a, 0x8d, 0x6a, 0x22, 0x67, 0xd4, 0xe3, + 0x1a, 0x3f, 0x65, 0x4d, 0x35, 0x7f, 0x51, 0x49, 0x81, 0xd2, 0x5b, 0x57, 0x7f, 0x1b, 0x48, 0x89, + 0xed, 0xfa, 0x1b, 0x06, 0x3c, 0x3b, 0x88, 0x3c, 0x35, 0xbd, 0x95, 0x71, 0xb2, 0xf4, 0x56, 0x57, + 0x20, 0xc7, 0x61, 0x7a, 0x92, 0x59, 0x41, 0xea, 0x36, 0xac, 0xa8, 0xd8, 0x2c, 0x00, 0x54, 0x1a, + 0xd5, 0x8d, 0x0e, 0xbf, 0x7d, 0x75, 0x13, 0x46, 0x58, 0xdb, 0x12, 0x1d, 0xc5, 0x9a, 0x5a, 0x58, + 0x5b, 0x15, 0x48, 0x5c, 0x33, 0x08, 0x9c, 0x56, 0xd3, 0x42, 0x64, 0x73, 0x07, 0x66, 0x74, 0x0c, + 0x52, 0xd6, 0x03, 0x80, 0xe3, 0x77, 0x31, 0x96, 0x3d, 0x8f, 0xdb, 0x57, 0xcb, 0xe7, 0x7f, 0x7c, + 0xb4, 0x08, 0xec, 0x27, 0xa7, 0x49, 0x0b, 0x10, 0x36, 0xbf, 0x9f, 0x81, 0xf9, 0xf8, 0x90, 0x41, + 0x0e, 0xd7, 0x53, 0xeb, 0x33, 0x2c, 0x68, 0x3e, 0xad, 0xc5, 0x9e, 0xd4, 0xf3, 0xf2, 0x03, 0x07, + 0x98, 0xd2, 0x77, 0x60, 0xa1, 0x1f, 0x3e, 0x79, 0xb5, 0x27, 0x39, 0xb4, 0x08, 0x86, 0x89, 0xb2, + 0x48, 0x2b, 0xb9, 0xa2, 0xff, 0xb9, 0x01, 0x17, 0x84, 0x99, 0xb3, 0xe6, 0xb8, 0x6d, 0x7c, 0x10, + 0xa3, 0x4e, 0x9f, 0x8c, 0xb3, 0xf9, 0x8e, 0x36, 0x65, 0x5e, 0xd6, 0xad, 0xd9, 0x9e, 0xda, 0xfa, + 0x7f, 0x2d, 0xb9, 0x82, 0x11, 0x44, 0x75, 0xae, 0x91, 0x8e, 0xf0, 0x13, 0xb2, 0x36, 0x03, 0xa8, + 0x27, 0x64, 0x88, 0x61, 0xfe, 0x2c, 0x3c, 0x3f, 0xb8, 0x02, 0xf2, 0x35, 0x98, 0x2e, 0xec, 0xd3, + 0x76, 0xb8, 0xd5, 0xd9, 0xf7, 0x9d, 0x06, 0x95, 0xd6, 0xbf, 0x7c, 0xeb, 0x4c, 0x2d, 0xe3, 0x51, + 0x53, 0xe2, 0xc4, 0x86, 0xc1, 0xed, 0xae, 0x20, 0xd2, 0x42, 0x3d, 0x55, 0x6e, 0xe6, 0xcf, 0x19, + 0x40, 0x7a, 0x79, 0x90, 0x5b, 0x30, 0xb5, 0xb5, 0x59, 0xac, 0x85, 0x8e, 0x1f, 0xae, 0x78, 0x5d, + 0xde, 0x9d, 0xd3, 0xe2, 0xec, 0x21, 0xac, 0xdb, 0x01, 0x2b, 0xb0, 0x0f, 0xbc, 0xae, 0x6f, 0x69, + 0x78, 0x78, 0xa5, 0x9e, 0xd2, 0x7b, 0x0d, 0xe7, 0x50, 0xbf, 0x52, 0x2f, 0x60, 0xda, 0x95, 0x7a, + 0x01, 0x33, 0xff, 0x9e, 0x01, 0xcf, 0xc8, 0x2d, 0xbe, 0x91, 0xd2, 0x96, 0x22, 0x1e, 0x53, 0xfb, + 0x32, 0xac, 0x7a, 0xd0, 0xea, 0x3c, 0x27, 0x23, 0x39, 0xb0, 0x81, 0xb8, 0x4c, 0x73, 0x5a, 0x7c, + 0x0d, 0x28, 0xf4, 0x3a, 0x43, 0x84, 0x72, 0xe4, 0xa3, 0x11, 0x0d, 0xbd, 0x0e, 0xb2, 0x40, 0x4a, + 0x93, 0xc2, 0xbc, 0xda, 0x38, 0xd9, 0x62, 0xb2, 0x06, 0xe3, 0x22, 0x5c, 0x4d, 0x2c, 0xf7, 0x32, + 0x82, 0x71, 0xc0, 0x37, 0x2d, 0xcf, 0xca, 0x78, 0x11, 0x11, 0xd8, 0x6b, 0x49, 0x1e, 0xe6, 0x26, + 0x7f, 0x87, 0x10, 0x2f, 0xba, 0x3c, 0xa6, 0x44, 0x2b, 0xab, 0xf7, 0xff, 0xdf, 0x80, 0xf9, 0x8d, + 0x7b, 0xa1, 0x53, 0x69, 0x75, 0x3c, 0x3f, 0xb4, 0xba, 0x4d, 0x39, 0xfb, 0x2e, 0x43, 0xae, 0x2a, + 0x35, 0x37, 0x7e, 0x1e, 0x82, 0x26, 0xa9, 0xd4, 0xde, 0xac, 0xa8, 0x94, 0xac, 0x40, 0x4e, 0xdc, + 0x09, 0x90, 0xaf, 0x72, 0x49, 0x6f, 0x97, 0xce, 0x58, 0x20, 0xb1, 0xb9, 0x81, 0x0b, 0x8a, 0xa0, + 0xb1, 0x22, 0x6a, 0xf3, 0xcf, 0x0d, 0x38, 0xd7, 0x87, 0x86, 0xbc, 0x0b, 0xa3, 0xe8, 0xf0, 0x12, + 0x7d, 0xf9, 0x6c, 0x9f, 0x2a, 0xc2, 0xfa, 0xc1, 0xf6, 0x0d, 0xee, 0x86, 0x6d, 0xb1, 0x1f, 0x16, + 0xa7, 0x22, 0x5f, 0x81, 0x89, 0x42, 0xa3, 0xa1, 0xbd, 0x1d, 0xf6, 0xfa, 0xe0, 0x56, 0x5e, 0x8b, + 0xf0, 0xf9, 0x23, 0x4c, 0xdc, 0xc0, 0x6b, 0x34, 0xc4, 0xe3, 0x4b, 0x56, 0xcc, 0xef, 0xc2, 0x3b, + 0x30, 0xa3, 0x23, 0x9f, 0xc8, 0xcb, 0xf1, 0x43, 0x03, 0xf2, 0x7a, 0x1b, 0x3e, 0x9d, 0xb8, 0x93, + 0xb4, 0x61, 0x3e, 0x66, 0x6f, 0xff, 0x36, 0x9c, 0x49, 0xed, 0x60, 0xf2, 0x3a, 0x8c, 0x15, 0x3a, + 0x1d, 0x66, 0x9a, 0x1a, 0x71, 0x30, 0x83, 0xd3, 0xe9, 0x24, 0x02, 0x55, 0x05, 0x12, 0xb9, 0x09, + 0x39, 0x94, 0x5b, 0x46, 0x90, 0x89, 0x63, 0x5b, 0xf1, 0x2a, 0x57, 0x32, 0xb6, 0x55, 0x22, 0x46, + 0xfd, 0x52, 0x08, 0x02, 0x77, 0xbf, 0xdd, 0xa2, 0xed, 0xf0, 0xd3, 0xeb, 0x97, 0xb8, 0x8e, 0xa1, + 0xfa, 0xe5, 0x07, 0x23, 0x7c, 0xd6, 0x24, 0xc9, 0x8e, 0x79, 0x86, 0xa2, 0x04, 0xe3, 0xfc, 0xba, + 0x82, 0x14, 0xc1, 0xe7, 0x52, 0x9b, 0xc0, 0x71, 0xb6, 0x6f, 0xf0, 0x5d, 0x9b, 0x87, 0x6d, 0x04, + 0x96, 0x24, 0x25, 0xdb, 0x30, 0x59, 0x6c, 0x52, 0xa7, 0xdd, 0xed, 0x0c, 0xf9, 0x9a, 0xec, 0x82, + 0xf8, 0x96, 0xa9, 0x3a, 0x27, 0x8b, 0x9f, 0x93, 0x55, 0x19, 0x91, 0xcd, 0xc8, 0xb6, 0x1e, 0x41, + 0x83, 0xe0, 0x8d, 0x01, 0xfd, 0x93, 0x04, 0x22, 0x9d, 0xee, 0x38, 0x12, 0xc6, 0xb7, 0x0d, 0x33, + 0xab, 0x4e, 0x10, 0x6e, 0xfa, 0x4e, 0x3b, 0xc0, 0x40, 0xd1, 0x21, 0xa2, 0x77, 0x64, 0x32, 0xd1, + 0x59, 0x3c, 0x58, 0x0e, 0x23, 0x52, 0x6c, 0x73, 0x82, 0x1d, 0x53, 0x13, 0x6e, 0xbb, 0x6d, 0xa7, + 0xe9, 0x7e, 0x8b, 0x36, 0xd0, 0x2b, 0x20, 0x52, 0x67, 0xec, 0x49, 0xa0, 0x15, 0x97, 0x9b, 0x5f, + 0xed, 0x19, 0x37, 0xde, 0xca, 0x49, 0x18, 0x17, 0x67, 0x2f, 0xfc, 0x2c, 0xa2, 0x5a, 0x5e, 0x2f, + 0x55, 0xd6, 0xef, 0xe4, 0x0d, 0x32, 0x03, 0x50, 0xb5, 0x36, 0x8a, 0xe5, 0x5a, 0x8d, 0xfd, 0xce, + 0xb0, 0xdf, 0xe2, 0xa0, 0xe2, 0xf6, 0xd6, 0x6a, 0x3e, 0xab, 0x9c, 0x55, 0x8c, 0x98, 0xff, 0xcc, + 0x80, 0xb3, 0xe9, 0x43, 0x49, 0x36, 0x01, 0x4f, 0xab, 0x84, 0xad, 0x75, 0x6b, 0xe0, 0xb8, 0xa7, + 0x82, 0x93, 0xa7, 0x5e, 0x21, 0x3f, 0x4d, 0xc9, 0xb8, 0x52, 0x29, 0x8c, 0x92, 0x7a, 0xba, 0x0d, + 0xb3, 0x08, 0x0b, 0xfd, 0x78, 0xe8, 0x9f, 0x3a, 0x0b, 0x93, 0x85, 0x6a, 0x75, 0xb5, 0x52, 0x2c, + 0x6c, 0x56, 0x36, 0xd6, 0xf3, 0x06, 0x99, 0x80, 0xd1, 0x3b, 0xd6, 0xc6, 0x56, 0x35, 0x9f, 0x31, + 0xff, 0xa6, 0x01, 0xd3, 0x95, 0x76, 0x48, 0xf7, 0x79, 0x12, 0x93, 0xc7, 0x9d, 0x7c, 0x5f, 0xd4, + 0x26, 0xdf, 0x42, 0x74, 0xae, 0x1b, 0x55, 0x30, 0xd4, 0xcc, 0x7b, 0x00, 0x73, 0x3d, 0x24, 0xa4, + 0x06, 0xe3, 0x85, 0x9d, 0xda, 0x46, 0xa5, 0x54, 0x14, 0x0d, 0x93, 0xba, 0xa8, 0x80, 0xf6, 0x56, + 0xc2, 0xfd, 0xc5, 0x0f, 0x02, 0xdb, 0x73, 0x1b, 0x4a, 0x5e, 0xa4, 0x95, 0x53, 0x96, 0xe4, 0xc4, + 0x6c, 0x4f, 0xa1, 0x4e, 0xa3, 0xa6, 0xba, 0x0a, 0x0b, 0xfd, 0xb8, 0x31, 0x05, 0xdd, 0xf2, 0x9a, + 0xb4, 0x60, 0xad, 0xab, 0xee, 0x68, 0xbc, 0x17, 0xe7, 0xf8, 0xed, 0xe4, 0xbd, 0xb8, 0x82, 0xb5, + 0x6e, 0xfe, 0x9d, 0x0c, 0x9c, 0x65, 0xfd, 0xd2, 0xa4, 0x41, 0xc0, 0x4c, 0x59, 0x66, 0xc9, 0x88, + 0xc7, 0xc8, 0x3e, 0x0f, 0x63, 0x07, 0x43, 0x74, 0x72, 0x4e, 0x76, 0xb2, 0x25, 0xd0, 0x09, 0x01, + 0x5c, 0x6b, 0xc4, 0x06, 0x83, 0x7f, 0x93, 0xe7, 0x40, 0x49, 0x58, 0xc6, 0x1f, 0x71, 0xb7, 0x26, + 0x3a, 0x51, 0xda, 0xb2, 0x2f, 0xc0, 0x28, 0x86, 0xf0, 0x89, 0x19, 0x2f, 0x15, 0x94, 0xf4, 0x96, + 0x61, 0x6c, 0x9f, 0xc5, 0x09, 0xc8, 0x75, 0x80, 0xf8, 0xde, 0x92, 0x98, 0xd2, 0xd2, 0x28, 0x8a, + 0xae, 0x2e, 0x59, 0x13, 0xad, 0x3d, 0x47, 0xdc, 0x62, 0xba, 0x0a, 0x73, 0x32, 0xb3, 0x5f, 0x47, + 0xc6, 0xa0, 0xf1, 0x70, 0x3b, 0x6b, 0x96, 0x17, 0x54, 0x3a, 0x22, 0x0e, 0xcd, 0xfc, 0x5f, 0x32, + 0x30, 0xb1, 0xc3, 0x76, 0x1a, 0x34, 0x66, 0x06, 0x1b, 0x47, 0x4b, 0x30, 0xb9, 0xea, 0x39, 0x0d, + 0xfd, 0x31, 0x1d, 0x74, 0xae, 0x36, 0x3d, 0xa7, 0x21, 0xdf, 0xbb, 0xb1, 0x54, 0xa4, 0x63, 0x1c, + 0xc3, 0x1f, 0xc2, 0x18, 0x8f, 0x61, 0x15, 0xa9, 0xff, 0xa4, 0xaa, 0x11, 0xb5, 0xe8, 0x1a, 0x2f, + 0xe6, 0x6a, 0x01, 0x1e, 0x24, 0xec, 0x21, 0x40, 0xdd, 0xf8, 0x44, 0x14, 0xac, 0x62, 0xba, 0x8d, + 0x0e, 0x67, 0xba, 0x29, 0x81, 0x4a, 0x63, 0xc3, 0x04, 0x2a, 0x5d, 0x78, 0x0b, 0x26, 0x95, 0xf6, + 0x9c, 0x48, 0xf3, 0xf8, 0x4e, 0x06, 0xa6, 0xf1, 0xab, 0x22, 0x97, 0xd0, 0xd3, 0x69, 0x88, 0x7e, + 0x51, 0x33, 0x44, 0x17, 0xd4, 0xf1, 0xe2, 0x5f, 0x36, 0xc0, 0x02, 0xfd, 0x10, 0xe6, 0x7a, 0x10, + 0xc9, 0x9b, 0x30, 0xca, 0x9a, 0x2f, 0x15, 0xf7, 0x7c, 0x52, 0x02, 0xe2, 0xc8, 0x70, 0xf6, 0xe1, + 0x81, 0xc5, 0xb1, 0xaf, 0xbe, 0x0f, 0xb3, 0xf2, 0x90, 0x76, 0x73, 0xb5, 0x86, 0x31, 0x55, 0xb3, + 0x30, 0xb9, 0x5d, 0xb6, 0x2a, 0xb7, 0x3f, 0xb6, 0x6f, 0x6f, 0xad, 0xae, 0xe6, 0x4f, 0x91, 0x69, + 0x98, 0x10, 0x80, 0x62, 0x21, 0x6f, 0x90, 0x29, 0xc8, 0x55, 0xd6, 0x6b, 0xe5, 0xe2, 0x96, 0x55, + 0xce, 0x67, 0xae, 0x2e, 0xc1, 0x4c, 0x9c, 0xc3, 0x14, 0x57, 0xeb, 0x71, 0xc8, 0x5a, 0x85, 0x9d, + 0xfc, 0x29, 0xb6, 0xcf, 0x54, 0xef, 0x16, 0x6b, 0x37, 0x6e, 0xe4, 0x0d, 0xb6, 0x84, 0xdf, 0x29, + 0x56, 0xed, 0xbb, 0x6b, 0xb5, 0x7c, 0xe6, 0xea, 0x1b, 0x30, 0x87, 0xd7, 0x81, 0x56, 0xdd, 0x20, + 0xa4, 0x6d, 0xea, 0x63, 0xb5, 0x53, 0x90, 0xab, 0xd1, 0x8e, 0xe3, 0x3b, 0x21, 0xe5, 0x75, 0xae, + 0x75, 0x9b, 0xa1, 0xdb, 0x69, 0xd2, 0x87, 0x79, 0xe3, 0xea, 0x5b, 0x30, 0x6b, 0x79, 0xdd, 0xd0, + 0x6d, 0xef, 0xd7, 0x42, 0x86, 0xb1, 0x7f, 0x48, 0xce, 0xc0, 0xdc, 0xd6, 0x7a, 0x61, 0x6d, 0xb9, + 0x72, 0x67, 0x6b, 0x63, 0xab, 0x66, 0xaf, 0x15, 0x36, 0x8b, 0x2b, 0x7c, 0x7b, 0x58, 0xdb, 0xa8, + 0x6d, 0xda, 0x56, 0xb9, 0x58, 0x5e, 0xdf, 0xcc, 0x1b, 0x57, 0x7f, 0xc1, 0xe0, 0x6f, 0xa9, 0xa3, + 0x83, 0x6c, 0x0b, 0x0f, 0x4d, 0x2f, 0xc2, 0xb3, 0x5b, 0xb5, 0xb2, 0x65, 0x6f, 0x6e, 0xdc, 0x2d, + 0xaf, 0xdb, 0x5b, 0xb5, 0xc2, 0x9d, 0x64, 0x60, 0xc3, 0x22, 0x3c, 0xa3, 0x60, 0x58, 0xe5, 0xe2, + 0xc6, 0x76, 0xd9, 0xb2, 0xab, 0x85, 0x5a, 0x6d, 0x67, 0xc3, 0x2a, 0xe5, 0x0d, 0x72, 0x01, 0xce, + 0xa6, 0x20, 0xac, 0xdd, 0x2e, 0xe4, 0x33, 0x3d, 0x65, 0xeb, 0xe5, 0x9d, 0xc2, 0xaa, 0xbd, 0xbc, + 0xb1, 0x99, 0xcf, 0x5e, 0xc5, 0x27, 0x39, 0xf1, 0x34, 0x93, 0xc7, 0x1d, 0xe7, 0x60, 0x64, 0x7d, + 0x63, 0xbd, 0x9c, 0xdc, 0xc2, 0xa7, 0x20, 0x57, 0xa8, 0x56, 0xad, 0x8d, 0xed, 0x72, 0x29, 0x9f, + 0x61, 0x1d, 0x59, 0x2a, 0xaf, 0xb3, 0x96, 0x65, 0xaf, 0x9a, 0x30, 0x57, 0xa4, 0x7e, 0x58, 0x7e, + 0x18, 0xd2, 0x36, 0x13, 0x44, 0xec, 0xbb, 0x69, 0x98, 0x28, 0x7f, 0x69, 0xb3, 0xbc, 0x5e, 0x63, + 0x3b, 0xe2, 0xa9, 0xab, 0xcf, 0x26, 0x70, 0xe4, 0xb0, 0xd4, 0x6a, 0x2b, 0xf9, 0x53, 0x57, 0xbf, + 0x0a, 0x53, 0x5a, 0x4c, 0xfd, 0x39, 0x38, 0xad, 0xfe, 0xae, 0xd2, 0x76, 0xc3, 0x6d, 0xef, 0xe7, + 0x4f, 0x25, 0x0b, 0xac, 0x6e, 0xbb, 0xcd, 0x0a, 0xf0, 0xe3, 0xd5, 0x82, 0x4d, 0xea, 0xb7, 0xdc, + 0xb6, 0x13, 0xd2, 0x46, 0x3e, 0x73, 0xf5, 0x1a, 0x4c, 0x6b, 0x07, 0xc1, 0xac, 0xde, 0xd5, 0x0d, + 0x21, 0x0e, 0x6b, 0xe5, 0x52, 0x65, 0x6b, 0x2d, 0x3f, 0xca, 0x3e, 0x7b, 0xa5, 0x72, 0x67, 0x25, + 0x0f, 0x57, 0xbf, 0x0a, 0x33, 0x22, 0xb2, 0x70, 0xed, 0x76, 0x41, 0x36, 0x74, 0xe3, 0xf6, 0x6d, + 0x11, 0x60, 0xc1, 0x94, 0x18, 0xdc, 0xe5, 0x9f, 0x85, 0x05, 0xf1, 0xc3, 0x2e, 0xac, 0x97, 0xec, + 0x95, 0x82, 0x55, 0xda, 0x29, 0x58, 0x65, 0xfb, 0x6e, 0xf9, 0xe3, 0x7c, 0x86, 0x9c, 0x05, 0xa2, + 0x42, 0xec, 0xcd, 0x8d, 0xad, 0xe2, 0x4a, 0x3e, 0x7b, 0xd5, 0x85, 0x7c, 0xd2, 0x39, 0xdc, 0xa3, + 0x38, 0x59, 0x5b, 0xeb, 0xeb, 0xbc, 0xd7, 0x67, 0x61, 0x72, 0x63, 0x73, 0xa5, 0x6c, 0x89, 0x60, + 0x16, 0x8c, 0x5e, 0xd9, 0x5a, 0x2f, 0x6c, 0x6d, 0xae, 0x6c, 0x58, 0x95, 0x2f, 0xb3, 0xee, 0x27, + 0x0b, 0x30, 0x5f, 0x5b, 0x2d, 0x14, 0xef, 0xda, 0xeb, 0x1b, 0x9b, 0x76, 0x65, 0xdd, 0x2e, 0xae, + 0x14, 0xd6, 0xd7, 0xcb, 0xab, 0x79, 0xb8, 0xfa, 0xcf, 0x0d, 0x78, 0x66, 0xc0, 0x2e, 0x44, 0x5e, + 0x87, 0x2b, 0x2b, 0xe5, 0x42, 0x69, 0xb5, 0x5c, 0xab, 0xd9, 0x8c, 0x65, 0x79, 0x7d, 0x53, 0xe8, + 0x30, 0x76, 0x6d, 0xb3, 0xb0, 0x99, 0x94, 0xc0, 0x2b, 0xf0, 0xf2, 0x60, 0xf4, 0x58, 0x58, 0x2e, + 0xc3, 0x4b, 0x83, 0x51, 0x85, 0xf0, 0x64, 0xc8, 0x55, 0xb8, 0x34, 0x18, 0x33, 0x12, 0xba, 0xec, + 0xf2, 0xbb, 0x3f, 0xfa, 0x93, 0xe7, 0x4f, 0xfd, 0xe8, 0x4f, 0x9f, 0x37, 0xfe, 0xf8, 0x4f, 0x9f, + 0x37, 0xfe, 0xa7, 0x3f, 0x7d, 0xde, 0xf8, 0xf2, 0xab, 0x27, 0x48, 0x04, 0xb2, 0x3b, 0x86, 0x4a, + 0xf2, 0xcd, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x18, 0x99, 0xde, 0x0f, 0x2a, 0x30, 0x01, 0x00, } func (this *PluginSpecV1) Equal(that interface{}) bool { @@ -33181,20 +33122,41 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.CleanupTime != nil { - n292, err292 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.CleanupTime):]) - if err292 != nil { - return 0, err292 + if m.Finalized { + i-- + if m.Finalized { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= n292 - i = encodeVarintTypes(dAtA, i, uint64(n292)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x30 } - if len(m.Actions) > 0 { - for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { + n292, err292 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) + if err292 != nil { + return 0, err292 + } + i -= n292 + i = encodeVarintTypes(dAtA, i, uint64(n292)) + i-- + dAtA[i] = 0x2a + if m.Status != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x20 + } + n293, err293 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime):]) + if err293 != nil { + return 0, err293 + } + i -= n293 + i = encodeVarintTypes(dAtA, i, uint64(n293)) + i-- + dAtA[i] = 0x1a + if len(m.Targets) > 0 { + for iNdEx := len(m.Targets) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Actions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Targets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -33215,59 +33177,7 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *OktaAssignmentActionV1) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OktaAssignmentActionV1) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OktaAssignmentActionV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - n293, err293 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) - if err293 != nil { - return 0, err293 - } - i -= n293 - i = encodeVarintTypes(dAtA, i, uint64(n293)) - i-- - dAtA[i] = 0x1a - if m.Target != nil { - { - size, err := m.Target.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Status != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Status)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *OktaAssignmentActionTargetV1) Marshal() (dAtA []byte, err error) { +func (m *OktaAssignmentTargetV1) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -33277,12 +33187,12 @@ func (m *OktaAssignmentActionTargetV1) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *OktaAssignmentActionTargetV1) MarshalTo(dAtA []byte) (int, error) { +func (m *OktaAssignmentTargetV1) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *OktaAssignmentActionTargetV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *OktaAssignmentTargetV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -41279,44 +41189,29 @@ func (m *OktaAssignmentSpecV1) Size() (n int) { if l > 0 { n += 1 + l + sovTypes(uint64(l)) } - if len(m.Actions) > 0 { - for _, e := range m.Actions { + if len(m.Targets) > 0 { + for _, e := range m.Targets { l = e.Size() n += 1 + l + sovTypes(uint64(l)) } } - if m.CleanupTime != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CleanupTime) - n += 1 + l + sovTypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OktaAssignmentActionV1) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime) + n += 1 + l + sovTypes(uint64(l)) if m.Status != 0 { n += 1 + sovTypes(uint64(m.Status)) } - if m.Target != nil { - l = m.Target.Size() - n += 1 + l + sovTypes(uint64(l)) - } l = github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition) n += 1 + l + sovTypes(uint64(l)) + if m.Finalized { + n += 2 + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *OktaAssignmentActionTargetV1) Size() (n int) { +func (m *OktaAssignmentTargetV1) Size() (n int) { if m == nil { return 0 } @@ -91605,7 +91500,7 @@ func (m *OktaAssignmentSpecV1) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Targets", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -91632,8 +91527,8 @@ func (m *OktaAssignmentSpecV1) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &OktaAssignmentActionV1{}) - if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Targets = append(m.Targets, &OktaAssignmentTargetV1{}) + if err := m.Targets[len(m.Targets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -91666,65 +91561,11 @@ func (m *OktaAssignmentSpecV1) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CleanupTime == nil { - m.CleanupTime = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CleanupTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.CleanupTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OktaAssignmentActionV1) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OktaAssignmentActionV1: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OktaAssignmentActionV1: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } @@ -91738,14 +91579,14 @@ func (m *OktaAssignmentActionV1) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Status |= OktaAssignmentActionV1_OktaAssignmentActionStatus(b&0x7F) << shift + m.Status |= OktaAssignmentSpecV1_OktaAssignmentStatus(b&0x7F) << shift if b < 0x80 { break } } - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastTransition", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -91772,18 +91613,15 @@ func (m *OktaAssignmentActionV1) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Target == nil { - m.Target = &OktaAssignmentActionTargetV1{} - } - if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.LastTransition, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransition", wireType) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finalized", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -91793,25 +91631,12 @@ func (m *OktaAssignmentActionV1) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.LastTransition, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.Finalized = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -91834,7 +91659,7 @@ func (m *OktaAssignmentActionV1) Unmarshal(dAtA []byte) error { } return nil } -func (m *OktaAssignmentActionTargetV1) Unmarshal(dAtA []byte) error { +func (m *OktaAssignmentTargetV1) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -91857,10 +91682,10 @@ func (m *OktaAssignmentActionTargetV1) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: OktaAssignmentActionTargetV1: wiretype end group for non-group") + return fmt.Errorf("proto: OktaAssignmentTargetV1: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: OktaAssignmentActionTargetV1: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OktaAssignmentTargetV1: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -91877,7 +91702,7 @@ func (m *OktaAssignmentActionTargetV1) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType(b&0x7F) << shift + m.Type |= OktaAssignmentTargetV1_OktaAssignmentTargetType(b&0x7F) << shift if b < 0x80 { break } diff --git a/lib/auth/api.go b/lib/auth/api.go index 663be4fd2f26c..b502e7b3c753a 100644 --- a/lib/auth/api.go +++ b/lib/auth/api.go @@ -19,6 +19,7 @@ package auth import ( "context" "io" + "time" "github.com/gravitational/trace" @@ -803,10 +804,9 @@ type OktaAccessPoint interface { // UpdateOktaAssignment updates an existing Okta assignment resource. UpdateOktaAssignment(context.Context, types.OktaAssignment) (types.OktaAssignment, error) - // UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the - // status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses - // will be updated if possible. - UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) + // UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed + // since the last transition. + UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error // DeleteOktaAssignment removes the specified Okta assignment resource. DeleteOktaAssignment(ctx context.Context, name string) error @@ -1273,11 +1273,10 @@ func (w *OktaWrapper) UpdateOktaAssignment(ctx context.Context, assignment types return w.NoCache.UpdateOktaAssignment(ctx, assignment) } -// UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the -// status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses -// will be updated if possible. -func (w *OktaWrapper) UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) { - return w.NoCache.UpdateOktaAssignmentActionStatuses(ctx, name, status) +// UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed +// since the last transition. +func (w *OktaWrapper) UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error { + return w.NoCache.UpdateOktaAssignmentStatus(ctx, name, status, timeHasPassed) } // DeleteOktaAssignment removes the specified Okta assignment resource. diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 91406c1d4baea..b1dd3593748d2 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -215,7 +215,7 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) { cfg.UsageReporter = usagereporter.DiscardUsageReporter{} } if cfg.Okta == nil { - cfg.Okta, err = local.NewOktaService(cfg.Backend) + cfg.Okta, err = local.NewOktaService(cfg.Backend, cfg.Clock) if err != nil { return nil, trace.Wrap(err) } diff --git a/lib/auth/okta/service.go b/lib/auth/okta/service.go index de00fd643c339..8eb005594123d 100644 --- a/lib/auth/okta/service.go +++ b/lib/auth/okta/service.go @@ -63,7 +63,7 @@ func (c *ServiceConfig) CheckAndSetDefaults() error { var err error var oktaSvc *local.OktaService if c.OktaImportRules == nil || c.OktaAssignments == nil { - oktaSvc, err = local.NewOktaService(c.Backend) + oktaSvc, err = local.NewOktaService(c.Backend, c.Backend.Clock()) if err != nil { return trace.Wrap(err) } @@ -283,6 +283,17 @@ func (s *Service) UpdateOktaAssignment(ctx context.Context, req *oktapb.UpdateOk return returnedAssignmentV1, trace.Wrap(err) } +// UpdateOktaAssignmentStatus will update the status for an Okta assignment. +func (s *Service) UpdateOktaAssignmentStatus(ctx context.Context, req *oktapb.UpdateOktaAssignmentStatusRequest) (*emptypb.Empty, error) { + _, err := authz.AuthorizeWithVerbs(ctx, s.log, s.authorizer, true, types.KindOktaAssignment, types.VerbUpdate) + if err != nil { + return nil, trace.Wrap(err) + } + err = s.oktaAssignments.UpdateOktaAssignmentStatus(ctx, req.GetName(), types.OktaAssignmentStatusProtoToString(req.GetStatus()), + req.TimeHasPassed.AsDuration()) + return &emptypb.Empty{}, trace.Wrap(err) +} + // DeleteOktaAssignment removes the specified Okta assignment resource. func (s *Service) DeleteOktaAssignment(ctx context.Context, req *oktapb.DeleteOktaAssignmentRequest) (*emptypb.Empty, error) { _, err := authz.AuthorizeWithVerbs(ctx, s.log, s.authorizer, true, types.KindOktaAssignment, types.VerbDelete) diff --git a/lib/auth/okta/service_test.go b/lib/auth/okta/service_test.go index df9838b376db3..ad1aba003453d 100644 --- a/lib/auth/okta/service_test.go +++ b/lib/auth/okta/service_test.go @@ -23,6 +23,7 @@ import ( "github.com/google/go-cmp/cmp/cmpopts" "github.com/stretchr/testify/require" + "github.com/gravitational/teleport/api/constants" oktapb "github.com/gravitational/teleport/api/gen/proto/go/teleport/okta/v1" "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/lib/authz" @@ -123,13 +124,24 @@ func TestOktaAssignments(t *testing.T) { a1.SetExpiry(time.Now().Add(30 * time.Minute)) updateResp, err := svc.UpdateOktaAssignment(ctx, &oktapb.UpdateOktaAssignmentRequest{Assignment: a1}) require.NoError(t, err) - require.Empty(t, cmp.Diff(newOktaAssignment(t, "1"), updateResp)) + require.Empty(t, cmp.Diff(a1, updateResp)) a, err := svc.GetOktaAssignment(ctx, &oktapb.GetOktaAssignmentRequest{Name: a1.GetName()}) require.NoError(t, err) require.Empty(t, cmp.Diff(a1, a, cmpopts.IgnoreFields(types.Metadata{}, "ID"))) + _, err = svc.UpdateOktaAssignmentStatus(ctx, &oktapb.UpdateOktaAssignmentStatusRequest{Name: a1.GetName(), + Status: types.OktaAssignmentSpecV1_PROCESSING}) + require.NoError(t, err) + + require.NoError(t, a1.SetStatus(constants.OktaAssignmentStatusProcessing)) + a, err = svc.GetOktaAssignment(ctx, &oktapb.GetOktaAssignmentRequest{Name: a1.GetName()}) + require.NoError(t, err) + a1.SetLastTransition(a.GetLastTransition()) + require.Empty(t, cmp.Diff(a1, a, + cmpopts.IgnoreFields(types.Metadata{}, "ID"))) + _, err = svc.DeleteOktaAssignment(ctx, &oktapb.DeleteOktaAssignmentRequest{Name: a1.GetName()}) require.NoError(t, err) @@ -273,22 +285,17 @@ func newOktaAssignment(t *testing.T, name string) *types.OktaAssignmentV1 { }, types.OktaAssignmentSpecV1{ User: "test-user@test.user", - Actions: []*types.OktaAssignmentActionV1{ + Targets: []*types.OktaAssignmentTargetV1{ { - Status: types.OktaAssignmentActionV1_PENDING, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_APPLICATION, - Id: "123456", - }, + Type: types.OktaAssignmentTargetV1_APPLICATION, + Id: "123456", }, { - Status: types.OktaAssignmentActionV1_SUCCESSFUL, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_GROUP, - Id: "234567", - }, + Type: types.OktaAssignmentTargetV1_GROUP, + Id: "234567", }, }, + Status: types.OktaAssignmentSpecV1_PENDING, }, ) require.NoError(t, err) diff --git a/lib/cache/cache.go b/lib/cache/cache.go index aad3fe3239c1a..db55053b46e16 100644 --- a/lib/cache/cache.go +++ b/lib/cache/cache.go @@ -777,7 +777,7 @@ func New(config Config) (*Cache, error) { return nil, trace.Wrap(err) } - oktaCache, err := local.NewOktaService(config.Backend) + oktaCache, err := local.NewOktaService(config.Backend, config.Clock) if err != nil { cancel() return nil, trace.Wrap(err) diff --git a/lib/cache/cache_test.go b/lib/cache/cache_test.go index 75aa6102033c2..cf52d8eccc163 100644 --- a/lib/cache/cache_test.go +++ b/lib/cache/cache_test.go @@ -226,7 +226,7 @@ func newPackWithoutCache(dir string, opts ...packOption) (*testPack, error) { if err != nil { return nil, trace.Wrap(err) } - oktaSvc, err := local.NewOktaService(p.backend) + oktaSvc, err := local.NewOktaService(p.backend, p.backend.Clock()) if err != nil { return nil, trace.Wrap(err) } @@ -1977,20 +1977,14 @@ func TestOktaAssignments(t *testing.T) { }, types.OktaAssignmentSpecV1{ User: "test-user@test.user", - Actions: []*types.OktaAssignmentActionV1{ + Targets: []*types.OktaAssignmentTargetV1{ { - Status: types.OktaAssignmentActionV1_PENDING, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_APPLICATION, - Id: "123456", - }, + Type: types.OktaAssignmentTargetV1_APPLICATION, + Id: "123456", }, { - Status: types.OktaAssignmentActionV1_SUCCESSFUL, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_GROUP, - Id: "234567", - }, + Type: types.OktaAssignmentTargetV1_GROUP, + Id: "234567", }, }, }, diff --git a/lib/services/local/okta.go b/lib/services/local/okta.go index 8cdd15b0192db..766f01621b904 100644 --- a/lib/services/local/okta.go +++ b/lib/services/local/okta.go @@ -18,8 +18,10 @@ package local import ( "context" + "time" "github.com/gravitational/trace" + "github.com/jonboulle/clockwork" "github.com/sirupsen/logrus" "github.com/gravitational/teleport/api/types" @@ -38,12 +40,13 @@ const ( // OktaService manages Okta resources in the Backend. type OktaService struct { log logrus.FieldLogger + clock clockwork.Clock importRuleSvc *generic.Service[types.OktaImportRule] assignmentSvc *generic.Service[types.OktaAssignment] } // NewOktaService creates a new OktaService. -func NewOktaService(backend backend.Backend) (*OktaService, error) { +func NewOktaService(backend backend.Backend, clock clockwork.Clock) (*OktaService, error) { importRuleSvc, err := generic.NewService(&generic.ServiceConfig[types.OktaImportRule]{ Backend: backend, PageLimit: oktaImportRuleMaxPageSize, @@ -70,6 +73,7 @@ func NewOktaService(backend backend.Backend) (*OktaService, error) { return &OktaService{ log: logrus.WithFields(logrus.Fields{trace.Component: "okta:local-service"}), + clock: clock, importRuleSvc: importRuleSvc, assignmentSvc: assignmentSvc, }, nil @@ -122,64 +126,31 @@ func (o *OktaService) CreateOktaAssignment(ctx context.Context, assignment types // UpdateOktaAssignment updates an existing Okta assignment resource. func (o *OktaService) UpdateOktaAssignment(ctx context.Context, assignment types.OktaAssignment) (types.OktaAssignment, error) { - var previousAssignment types.OktaAssignment - err := o.assignmentSvc.UpdateAndSwapResource(ctx, assignment.GetName(), func(currentAssignment types.OktaAssignment) error { - previousAssignment = currentAssignment.Copy() - currentActions := currentAssignment.GetActions() + return assignment, o.assignmentSvc.UpdateResource(ctx, assignment) +} - if len(currentActions) != len(assignment.GetActions()) { - return trace.BadParameter("Update to Okta assignment %s failed because the previous version has a different number of actions", assignment.GetName()) +// UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed +// since the last transition. +func (o *OktaService) UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error { + err := o.assignmentSvc.UpdateAndSwapResource(ctx, name, func(currentAssignment types.OktaAssignment) error { + // Only update the status if the given duration has passed. + sinceLastTransition := o.clock.Since(currentAssignment.GetLastTransition()) + if sinceLastTransition < timeHasPassed { + return trace.BadParameter("only %s has passed since last transition", sinceLastTransition) } - // Make sure that the status transitions of the updated assignment are valid. - for i, action := range assignment.GetActions() { - currentAction := currentActions[i] - - // Ensure that the previous actions are equal - if !actionsMatch(currentAction, action) { - return trace.BadParameter("action mismatch when updating Okta assignment %s", assignment.GetName()) - } - - // Don't check the status transition if the statuses are equal and the last transitions are equal. - if currentAction.GetStatus() == action.GetStatus() && - currentAction.GetLastTransition().Equal(action.GetLastTransition()) { - continue - } - - if err := currentAction.SetStatus(action.GetStatus()); err != nil { - return trace.Wrap(err) - } - currentAction.SetLastTransition(action.GetLastTransition()) + if err := currentAssignment.SetStatus(status); err != nil { + return trace.Wrap(err) } - - currentAssignment.SetMetadata(assignment.GetMetadata()) + currentAssignment.SetLastTransition(o.clock.Now()) return nil }) if err != nil { - return nil, trace.Wrap(err) + return trace.Wrap(err) } - return previousAssignment, nil -} - -// UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the -// status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses -// will be updated if possible. -func (o *OktaService) UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) { - var previousAssignment types.OktaAssignment - err := o.assignmentSvc.UpdateAndSwapResource(ctx, name, func(assignment types.OktaAssignment) error { - previousAssignment = assignment.Copy() - for _, action := range assignment.GetActions() { - if err := action.SetStatus(status); err != nil { - o.log.Warnf("Unable to transition status from %s -> %s", action.GetStatus(), status) - } - } - - return nil - }) - return previousAssignment, trace.Wrap(err) - + return nil } // DeleteOktaAssignment removes the specified Okta assignment resource. @@ -191,9 +162,3 @@ func (o *OktaService) DeleteOktaAssignment(ctx context.Context, name string) err func (o *OktaService) DeleteAllOktaAssignments(ctx context.Context) error { return o.assignmentSvc.DeleteAllResources(ctx) } - -// actionsMatch returns true if two actions match minus the status and last transition. -func actionsMatch(a1, a2 types.OktaAssignmentAction) bool { - return a1.GetTargetType() == a2.GetTargetType() && - a1.GetID() == a2.GetID() -} diff --git a/lib/services/local/okta_test.go b/lib/services/local/okta_test.go index 34790d585fdc1..9f1dde69ce809 100644 --- a/lib/services/local/okta_test.go +++ b/lib/services/local/okta_test.go @@ -43,7 +43,7 @@ func TestOktaImportRuleCRUD(t *testing.T) { }) require.NoError(t, err) - service, err := NewOktaService(backend) + service, err := NewOktaService(backend, clock) require.NoError(t, err) // Create a couple Okta import rule. @@ -211,17 +211,17 @@ func TestOktaAssignmentCRUD(t *testing.T) { }) require.NoError(t, err) - service, err := NewOktaService(backend) + service, err := NewOktaService(backend, clock) require.NoError(t, err) // Create a couple Okta assignments. - assignment1 := oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusPending, clock.Now()), - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "234567", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), + assignment1 := oktaAssignment(t, "assignment1", "test-user@test.user", constants.OktaAssignmentStatusPending, clock.Now(), + oktaTarget(t, types.OktaAssignmentTargetV1_APPLICATION, "123456"), + oktaTarget(t, types.OktaAssignmentTargetV1_GROUP, "234567"), ) - assignment2 := oktaAssignment(t, "assignment2", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusPending, clock.Now()), - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "234567", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), + assignment2 := oktaAssignment(t, "assignment2", "test-user@test.user", constants.OktaAssignmentStatusPending, clock.Now(), + oktaTarget(t, types.OktaAssignmentTargetV1_APPLICATION, "123456"), + oktaTarget(t, types.OktaAssignmentTargetV1_GROUP, "234567"), ) // Initially we expect no assignments. @@ -285,41 +285,10 @@ func TestOktaAssignmentCRUD(t *testing.T) { _, err = service.CreateOktaAssignment(ctx, assignment1) require.True(t, trace.IsAlreadyExists(err), "expected already exists error, got %v", err) - // Fail to update the assignment due to mismatching number of actions - assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusPending, clock.Now()), - ) - _, err = service.UpdateOktaAssignment(ctx, assignment1) - require.ErrorContains(t, err, "different number of actions") - - // Fail to update the assignment due to actions with differing contents. - assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "diff", constants.OktaAssignmentActionStatusPending, clock.Now()), - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "diff", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), - ) - _, err = service.UpdateOktaAssignment(ctx, assignment1) - require.ErrorContains(t, err, "action mismatch") - - // Fail to update the assignment due to bad transition. - assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusFailed, clock.Now()), - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "234567", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), - ) - _, err = service.UpdateOktaAssignment(ctx, assignment1) - require.ErrorContains(t, err, "invalid transition") - - // Fail to update the assignment because last transition is different even though status remains the same. - assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusPending, clock.Now().Add(5*time.Minute)), - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "234567", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), - ) - _, err = service.UpdateOktaAssignment(ctx, assignment1) - require.ErrorContains(t, err, "invalid transition") - - // Update succeeds with a valid transition. - assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", - oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "123456", constants.OktaAssignmentActionStatusProcessing, clock.Now()), - oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "234567", constants.OktaAssignmentActionStatusSuccessful, clock.Now()), + // Update the assignment. + assignment1 = oktaAssignment(t, "assignment1", "test-user@test.user", constants.OktaAssignmentStatusProcessing, clock.Now(), + oktaTarget(t, types.OktaAssignmentTargetV1_APPLICATION, "123456"), + oktaTarget(t, types.OktaAssignmentTargetV1_GROUP, "234567"), ) _, err = service.UpdateOktaAssignment(ctx, assignment1) require.NoError(t, err) @@ -330,13 +299,18 @@ func TestOktaAssignmentCRUD(t *testing.T) { cmpopts.IgnoreFields(types.Metadata{}, "ID"), )) - // Update the statuses for an assignment. - assignment1.GetActions()[0].SetStatus(constants.OktaAssignmentActionStatusProcessing) - assignment, err = service.UpdateOktaAssignmentActionStatuses(ctx, assignment1.GetName(), constants.OktaAssignmentActionStatusProcessing) + // Fail to update the status for an assignment due to a bad transition. + err = service.UpdateOktaAssignmentStatus(ctx, assignment1.GetName(), constants.OktaAssignmentStatusPending, 0) + require.ErrorIs(t, err, trace.BadParameter("invalid transition: processing -> pending")) + + // Fail to update the status because not enough time has passed. + err = service.UpdateOktaAssignmentStatus(ctx, assignment1.GetName(), constants.OktaAssignmentStatusPending, time.Hour) + require.ErrorIs(t, err, trace.BadParameter("only 0s has passed since last transition")) + + // Successfully update the status for an assignment. + require.NoError(t, assignment1.SetStatus(constants.OktaAssignmentStatusSuccessful)) + err = service.UpdateOktaAssignmentStatus(ctx, assignment1.GetName(), constants.OktaAssignmentStatusSuccessful, 0) require.NoError(t, err) - require.Empty(t, cmp.Diff(assignment1, assignment, - cmpopts.IgnoreFields(types.Metadata{}, "ID"), - )) assignment, err = service.GetOktaAssignment(ctx, assignment1.GetName()) require.NoError(t, err) require.Empty(t, cmp.Diff(assignment1, assignment, @@ -366,80 +340,30 @@ func TestOktaAssignmentCRUD(t *testing.T) { require.Empty(t, out) } -func TestActionsMatch(t *testing.T) { - now := time.Now() - - tests := []struct { - name string - action1 types.OktaAssignmentAction - action2 types.OktaAssignmentAction - expected bool - }{ - { - name: "actions match", - action1: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - action2: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - expected: true, - }, - { - name: "target mismatch", - action1: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - action2: oktaAction(t, types.OktaAssignmentActionTargetV1_GROUP, "1", constants.OktaAssignmentActionStatusPending, now), - expected: false, - }, - { - name: "id mismatch", - action1: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - action2: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "2", constants.OktaAssignmentActionStatusPending, now), - expected: false, - }, - { - name: "status ignored", - action1: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - action2: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusCleanupPending, now), - expected: true, - }, - { - name: "last transition ignored", - action1: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now), - action2: oktaAction(t, types.OktaAssignmentActionTargetV1_APPLICATION, "1", constants.OktaAssignmentActionStatusPending, now.Add(time.Hour)), - expected: true, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - require.Equal(t, test.expected, actionsMatch(test.action1, test.action2)) - }) - } -} - -func oktaAssignment(t *testing.T, name, username string, actions ...*types.OktaAssignmentActionV1) types.OktaAssignment { +func oktaAssignment(t *testing.T, name, username, status string, lastTransition time.Time, targets ...*types.OktaAssignmentTargetV1) types.OktaAssignment { assignment, err := types.NewOktaAssignment( types.Metadata{ Name: name, }, types.OktaAssignmentSpecV1{ User: username, - Actions: actions, + Targets: targets, }, ) require.NoError(t, err) + require.NoError(t, assignment.SetStatus(status)) + assignment.SetLastTransition(lastTransition) return assignment } -func oktaAction(t *testing.T, targetType types.OktaAssignmentActionTargetV1_OktaAssignmentActionTargetType, - id string, status string, lastTransition time.Time) *types.OktaAssignmentActionV1 { +func oktaTarget(t *testing.T, targetType types.OktaAssignmentTargetV1_OktaAssignmentTargetType, + id string) *types.OktaAssignmentTargetV1 { - action := &types.OktaAssignmentActionV1{ - Target: &types.OktaAssignmentActionTargetV1{ - Type: targetType, - Id: id, - }, - LastTransition: lastTransition, + target := &types.OktaAssignmentTargetV1{ + Type: targetType, + Id: id, } - require.NoError(t, action.SetStatus(status)) - return action + return target } diff --git a/lib/services/okta.go b/lib/services/okta.go index 127a1bc09ea3f..287d98ebe89a8 100644 --- a/lib/services/okta.go +++ b/lib/services/okta.go @@ -18,6 +18,7 @@ package services import ( "context" + "time" "github.com/gravitational/trace" @@ -68,10 +69,9 @@ type OktaAssignments interface { CreateOktaAssignment(context.Context, types.OktaAssignment) (types.OktaAssignment, error) // UpdateOktaAssignment updates an existing Okta assignment resource. UpdateOktaAssignment(context.Context, types.OktaAssignment) (types.OktaAssignment, error) - // UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the - // status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses - // will be updated if possible. - UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) + // UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed + // since the last transition. + UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error // DeleteOktaAssignment removes the specified Okta assignment resource. DeleteOktaAssignment(ctx context.Context, name string) error // DeleteAllOktaAssignments removes all Okta assignments. diff --git a/lib/services/okta_test.go b/lib/services/okta_test.go index 6fdd1870192fa..963afff1b82a7 100644 --- a/lib/services/okta_test.go +++ b/lib/services/okta_test.go @@ -111,22 +111,17 @@ func TestOktaAssignmentUnmarshal(t *testing.T) { }, types.OktaAssignmentSpecV1{ User: "test-user@test.user", - Actions: []*types.OktaAssignmentActionV1{ + Targets: []*types.OktaAssignmentTargetV1{ { - Status: types.OktaAssignmentActionV1_PENDING, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_APPLICATION, - Id: "123456", - }, + Type: types.OktaAssignmentTargetV1_APPLICATION, + Id: "123456", }, { - Status: types.OktaAssignmentActionV1_SUCCESSFUL, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_GROUP, - Id: "234567", - }, + Type: types.OktaAssignmentTargetV1_GROUP, + Id: "234567", }, }, + Status: types.OktaAssignmentSpecV1_PENDING, }, ) require.NoError(t, err) @@ -145,22 +140,18 @@ func TestOktaAssignmentMarshal(t *testing.T) { }, types.OktaAssignmentSpecV1{ User: "test-user@test.user", - Actions: []*types.OktaAssignmentActionV1{ + Targets: []*types.OktaAssignmentTargetV1{ { - Status: types.OktaAssignmentActionV1_PENDING, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_APPLICATION, - Id: "123456", - }, + Type: types.OktaAssignmentTargetV1_APPLICATION, + Id: "123456", }, { - Status: types.OktaAssignmentActionV1_SUCCESSFUL, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_GROUP, - Id: "234567", - }, + Type: types.OktaAssignmentTargetV1_GROUP, + Id: "234567", }, }, + + Status: types.OktaAssignmentSpecV1_PENDING, }, ) require.NoError(t, err) @@ -196,14 +187,11 @@ metadata: name: test-assignment spec: user: test-user@test.user - actions: - - status: 1 - target: - type: 1 - id: "123456" - - status: 2 - target: - type: 2 - id: "234567" + targets: + - type: 1 + id: "123456" + - type: 2 + id: "234567" + status: 1 ` ) diff --git a/lib/services/watcher_test.go b/lib/services/watcher_test.go index c57cf600f7ed4..b0423e24999f4 100644 --- a/lib/services/watcher_test.go +++ b/lib/services/watcher_test.go @@ -1126,7 +1126,7 @@ func TestOktaAssignmentWatcher(t *testing.T) { types.Events } - oktaService, err := local.NewOktaService(bk) + oktaService, err := local.NewOktaService(bk, clock) require.NoError(t, err) w, err := services.NewOktaAssignmentWatcher(ctx, services.OktaAssignmentWatcherConfig{ RWCfg: services.ResourceWatcherConfig{ @@ -1256,15 +1256,13 @@ func newOktaAssignment(t *testing.T, name string) types.OktaAssignment { }, types.OktaAssignmentSpecV1{ User: "test-user@test.user", - Actions: []*types.OktaAssignmentActionV1{ + Targets: []*types.OktaAssignmentTargetV1{ { - Status: types.OktaAssignmentActionV1_PENDING, - Target: &types.OktaAssignmentActionTargetV1{ - Type: types.OktaAssignmentActionTargetV1_APPLICATION, - Id: "123456", - }, + Type: types.OktaAssignmentTargetV1_APPLICATION, + Id: "123456", }, }, + Status: types.OktaAssignmentSpecV1_PENDING, }, ) require.NoError(t, err)