diff --git a/api/client/client.go b/api/client/client.go
index 77d3f7d7c6f0e..892666afbb29e 100644
--- a/api/client/client.go
+++ b/api/client/client.go
@@ -857,6 +857,11 @@ func (c *Client) BotServiceClient() machineidv1pb.BotServiceClient {
return machineidv1pb.NewBotServiceClient(c.conn)
}
+// BotInstanceServiceClient returns an unadorned client for the bot instance service
+func (c *Client) BotInstanceServiceClient() machineidv1pb.BotInstanceServiceClient {
+ return machineidv1pb.NewBotInstanceServiceClient(c.conn)
+}
+
// WorkloadIdentityServiceClient returns an unadorned client for the workload
// identity service.
func (c *Client) WorkloadIdentityServiceClient() machineidv1pb.WorkloadIdentityServiceClient {
diff --git a/api/client/events.go b/api/client/events.go
index 6b9d9240a723a..8e79df1756ccd 100644
--- a/api/client/events.go
+++ b/api/client/events.go
@@ -21,6 +21,7 @@ import (
accessmonitoringrulesv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/accessmonitoringrules/v1"
crownjewelv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/crownjewel/v1"
kubewaitingcontainerpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/kubewaitingcontainer/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/types"
"github.com/gravitational/teleport/api/types/accesslist"
accesslistv1conv "github.com/gravitational/teleport/api/types/accesslist/convert/v1"
@@ -66,6 +67,10 @@ func EventToGRPC(in types.Event) (*proto.Event, error) {
out.Resource = &proto.Event_CrownJewel{
CrownJewel: r,
}
+ case *machineidv1.BotInstance:
+ out.Resource = &proto.Event_BotInstance{
+ BotInstance: r,
+ }
}
case *types.ResourceHeader:
out.Resource = &proto.Event_ResourceHeader{
@@ -486,6 +491,9 @@ func EventFromGRPC(in *proto.Event) (*types.Event, error) {
} else if r := in.GetCrownJewel(); r != nil {
out.Resource = types.Resource153ToLegacy(r)
return &out, nil
+ } else if r := in.GetBotInstance(); r != nil {
+ out.Resource = types.Resource153ToLegacy(r)
+ return &out, nil
} else {
return nil, trace.BadParameter("received unsupported resource %T", in.Resource)
}
diff --git a/api/client/proto/event.pb.go b/api/client/proto/event.pb.go
index 7518486cf92db..59ad58f59c7ff 100644
--- a/api/client/proto/event.pb.go
+++ b/api/client/proto/event.pb.go
@@ -26,6 +26,7 @@ import (
v16 "github.com/gravitational/teleport/api/gen/proto/go/teleport/crownjewel/v1"
v12 "github.com/gravitational/teleport/api/gen/proto/go/teleport/discoveryconfig/v1"
v14 "github.com/gravitational/teleport/api/gen/proto/go/teleport/kubewaitingcontainer/v1"
+ v17 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
v13 "github.com/gravitational/teleport/api/gen/proto/go/teleport/secreports/v1"
v11 "github.com/gravitational/teleport/api/gen/proto/go/teleport/userloginstate/v1"
types "github.com/gravitational/teleport/api/types"
@@ -161,6 +162,7 @@ type Event struct {
// *Event_KubernetesWaitingContainer
// *Event_AccessMonitoringRule
// *Event_CrownJewel
+ // *Event_BotInstance
Resource isEvent_Resource `protobuf_oneof:"Resource"`
}
@@ -581,6 +583,13 @@ func (x *Event) GetCrownJewel() *v16.CrownJewel {
return nil
}
+func (x *Event) GetBotInstance() *v17.BotInstance {
+ if x, ok := x.GetResource().(*Event_BotInstance); ok {
+ return x.BotInstance
+ }
+ return nil
+}
+
type isEvent_Resource interface {
isEvent_Resource()
}
@@ -853,6 +862,11 @@ type Event_CrownJewel struct {
CrownJewel *v16.CrownJewel `protobuf:"bytes,58,opt,name=CrownJewel,proto3,oneof"`
}
+type Event_BotInstance struct {
+ // BotInstance is a Machine ID bot instance.
+ BotInstance *v17.BotInstance `protobuf:"bytes,60,opt,name=BotInstance,proto3,oneof"`
+}
+
func (*Event_ResourceHeader) isEvent_Resource() {}
func (*Event_CertAuthority) isEvent_Resource() {}
@@ -959,6 +973,8 @@ func (*Event_AccessMonitoringRule) isEvent_Resource() {}
func (*Event_CrownJewel) isEvent_Resource() {}
+func (*Event_BotInstance) isEvent_Resource() {}
+
var File_teleport_legacy_client_proto_event_proto protoreflect.FileDescriptor
var file_teleport_legacy_client_proto_event_proto_rawDesc = []byte{
@@ -983,247 +999,254 @@ var file_teleport_legacy_client_proto_event_proto_rawDesc = []byte{
0x69, 0x74, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 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,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f,
- 0x73, 0x65, 0x63, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x1a, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6c,
- 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65,
- 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x22, 0xbe, 0x1c, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x54,
- 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x48, 0x00, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0d, 0x43, 0x65, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
- 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x56,
- 0x32, 0x48, 0x00, 0x52, 0x0d, 0x43, 0x65, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
- 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x6f, 0x6b, 0x65,
- 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x56, 0x32, 0x48,
- 0x00, 0x52, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12,
- 0x41, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65,
- 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32,
- 0x48, 0x00, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b,
- 0x65, 0x6e, 0x12, 0x38, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52,
- 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04,
- 0x55, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x04, 0x55, 0x73, 0x65,
- 0x72, 0x12, 0x23, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x36, 0x48, 0x00,
- 0x52, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x4e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x53, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x75,
- 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
- 0x56, 0x32, 0x48, 0x00, 0x52, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x75, 0x6e,
- 0x6e, 0x65, 0x6c, 0x12, 0x47, 0x0a, 0x10, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e,
- 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e,
- 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x10, 0x54, 0x75, 0x6e, 0x6e,
- 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0d,
- 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0d, 0x41,
- 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0a,
- 0x41, 0x70, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x53, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x56, 0x33, 0x48, 0x00, 0x52, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
- 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70,
+ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62,
+ 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x27, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x73, 0x65, 0x63, 0x72,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x1d, 0x0a, 0x05,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x70, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x52,
+ 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x52, 0x65,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0d,
+ 0x43, 0x65, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x65, 0x72, 0x74,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0d, 0x43,
+ 0x65, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c,
+ 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69,
+ 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0c, 0x53, 0x74, 0x61,
+ 0x74, 0x69, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x50, 0x72, 0x6f,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73,
+ 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0e, 0x50, 0x72,
+ 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x38, 0x0a, 0x0b,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x04, 0x52,
+ 0x6f, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x36, 0x48, 0x00, 0x52, 0x04, 0x52, 0x6f, 0x6c, 0x65,
+ 0x12, 0x30, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3e, 0x0a,
+ 0x0d, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x76,
+ 0x65, 0x72, 0x73, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0d,
+ 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x47, 0x0a,
+ 0x10, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x56, 0x32, 0x48, 0x00, 0x52, 0x10, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x6e,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x53, 0x65, 0x73,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70,
0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48,
- 0x00, 0x52, 0x0a, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
- 0x08, 0x57, 0x65, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
- 0x56, 0x33, 0x48, 0x00, 0x52, 0x08, 0x57, 0x65, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x5c,
- 0x0a, 0x17, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
- 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x20, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
- 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56,
- 0x32, 0x48, 0x00, 0x52, 0x17, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77,
- 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, 0x0a, 0x16,
- 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f,
- 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52,
- 0x16, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e,
- 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x50,
- 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66,
- 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0e, 0x41, 0x75, 0x74, 0x68,
- 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x43, 0x6c,
- 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75,
- 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x6f, 0x63,
- 0x6b, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x04, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x50,
- 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72,
- 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x34, 0x48, 0x00, 0x52, 0x13, 0x4e, 0x65, 0x74,
- 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x56, 0x0a, 0x15, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74,
- 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44,
- 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x33, 0x48,
- 0x00, 0x52, 0x15, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f,
- 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x57, 0x69, 0x6e, 0x64,
- 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73,
- 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0e, 0x57, 0x69, 0x6e,
- 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x12, 0x2f, 0x0a, 0x08, 0x44,
- 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x56, 0x33,
- 0x48, 0x00, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09,
- 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x09, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x12, 0x20, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x56, 0x33, 0x48, 0x00, 0x52, 0x03, 0x41,
- 0x70, 0x70, 0x12, 0x41, 0x0a, 0x10, 0x53, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x53,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56,
- 0x32, 0x48, 0x00, 0x52, 0x10, 0x53, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x53, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x10, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74,
- 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x10, 0x4b, 0x75,
- 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x4a,
- 0x0a, 0x11, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x11, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x49, 0x6e,
- 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x56,
- 0x31, 0x48, 0x00, 0x52, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x44,
- 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56,
- 0x31, 0x48, 0x00, 0x52, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x24,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x41, 0x4d,
- 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69,
- 0x64, 0x65, 0x72, 0x56, 0x31, 0x48, 0x00, 0x52, 0x16, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50,
- 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12,
- 0x3d, 0x0a, 0x0e, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0e,
- 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32,
- 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x26, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72,
- 0x6f, 0x75, 0x70, 0x56, 0x31, 0x48, 0x00, 0x52, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f,
- 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x08, 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x27,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x49, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x31, 0x48, 0x00, 0x52, 0x08, 0x55, 0x49, 0x43, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72,
- 0x74, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75,
- 0x6c, 0x65, 0x56, 0x31, 0x48, 0x00, 0x52, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f,
- 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73,
- 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x29, 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, 0x48, 0x00, 0x52, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x41,
- 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x49, 0x6e, 0x74,
- 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
- 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x31, 0x48, 0x00,
- 0x52, 0x0b, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a,
- 0x16, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75,
- 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16,
+ 0x00, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a,
+ 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x10,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0d,
+ 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a,
+ 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18,
+ 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61,
+ 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x33, 0x48, 0x00,
+ 0x52, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x12, 0x35, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62,
+ 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0a, 0x57, 0x65, 0x62,
+ 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x54, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x57, 0x65, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x33, 0x48, 0x00, 0x52, 0x08,
+ 0x57, 0x65, 0x62, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x5c, 0x0a, 0x17, 0x43, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x17, 0x43,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53,
+ 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x53, 0x65, 0x73, 0x73, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x56, 0x32, 0x48, 0x00, 0x52, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72,
+ 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41,
+ 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52,
+ 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x18, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x32,
+ 0x48, 0x00, 0x52, 0x04, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x56, 0x34, 0x48, 0x00, 0x52, 0x13, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65,
+ 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x15, 0x57, 0x69,
+ 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70,
+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x33, 0x48, 0x00, 0x52, 0x15, 0x57, 0x69, 0x6e,
+ 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73,
+ 0x6b, 0x74, 0x6f, 0x70, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65, 0x73, 0x6b, 0x74, 0x6f,
+ 0x70, 0x56, 0x33, 0x48, 0x00, 0x52, 0x0e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x44, 0x65,
+ 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x12, 0x2f, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
+ 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x56, 0x33, 0x48, 0x00, 0x52, 0x08, 0x44, 0x61,
+ 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52,
+ 0x09, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x70,
+ 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x41, 0x70, 0x70, 0x56, 0x33, 0x48, 0x00, 0x52, 0x03, 0x41, 0x70, 0x70, 0x12, 0x41, 0x0a, 0x10,
+ 0x53, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+ 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57,
+ 0x65, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x10, 0x53,
+ 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x47, 0x0a, 0x10, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x56, 0x33, 0x48, 0x00, 0x52, 0x10, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74,
+ 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x11, 0x4b, 0x75, 0x62, 0x65,
+ 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x21, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4b, 0x75, 0x62, 0x65,
+ 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x56, 0x33, 0x48,
+ 0x00, 0x52, 0x11, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65,
+ 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x56, 0x31, 0x48, 0x00, 0x52, 0x09, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61,
+ 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
+ 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x31, 0x48, 0x00, 0x52, 0x0f, 0x44,
+ 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59,
+ 0x0a, 0x16, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
+ 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x31, 0x48,
+ 0x00, 0x52, 0x16, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0e, 0x53, 0x41, 0x4d,
+ 0x4c, 0x49, 0x64, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x73,
+ 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x0e, 0x53, 0x41, 0x4d, 0x4c, 0x49, 0x64,
+ 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x31, 0x48,
+ 0x00, 0x52, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x08,
+ 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56,
+ 0x31, 0x48, 0x00, 0x52, 0x08, 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a,
+ 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x18,
+ 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x6b,
+ 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x31, 0x48, 0x00,
+ 0x52, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65,
+ 0x12, 0x41, 0x0a, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65,
+ 0x6e, 0x74, 0x18, 0x29, 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, 0x48, 0x00, 0x52, 0x0e, 0x4f, 0x6b, 0x74, 0x61, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
+ 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
+ 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x31, 0x48, 0x00,
+ 0x52, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a,
+ 0x0b, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, 0x0b, 0x57, 0x61, 0x74, 0x63,
+ 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a, 0x16, 0x48, 0x65, 0x61, 0x64, 0x6c,
+ 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
- 0x4c, 0x69, 0x73, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x73, 0x74,
- 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00,
- 0x52, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x0e,
- 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2e,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e,
- 0x75, 0x73, 0x65, 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x48, 0x00, 0x52, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74,
- 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74,
- 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x69,
- 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65,
+ 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x44, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x2d,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e,
+ 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63,
+ 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x41, 0x63, 0x63, 0x65,
+ 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f,
+ 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
+ 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x6f,
+ 0x67, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72,
+ 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x55, 0x73,
+ 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x10,
0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
- 0x12, 0x58, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x63, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72,
- 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x44, 0x69, 0x73, 0x63, 0x6f,
- 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0a, 0x41, 0x75,
- 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
- 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70,
- 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x12, 0x38, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x48, 0x00, 0x52, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x52, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x23, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73,
- 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
- 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c,
- 0x69, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52,
+ 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x0f, 0x44, 0x69,
+ 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x30, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x64,
+ 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76,
+ 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x0f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76,
+ 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a,
+ 0x41, 0x75, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x06, 0x52, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6c,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x06, 0x52, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e,
+ 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00,
+ 0x52, 0x0b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a,
0x10, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65,
- 0x77, 0x12, 0x7e, 0x0a, 0x1a, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x57,
- 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18,
- 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x65, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52, 0x1a, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65,
- 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
- 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
- 0x73, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x75, 0x6c, 0x65, 0x73,
- 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
- 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x14, 0x41, 0x63, 0x63, 0x65,
- 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65,
- 0x12, 0x44, 0x0a, 0x0a, 0x43, 0x72, 0x6f, 0x77, 0x6e, 0x4a, 0x65, 0x77, 0x65, 0x6c, 0x18, 0x3a,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e,
- 0x63, 0x72, 0x6f, 0x77, 0x6e, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
- 0x6f, 0x77, 0x6e, 0x4a, 0x65, 0x77, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0a, 0x43, 0x72, 0x6f, 0x77,
- 0x6e, 0x4a, 0x65, 0x77, 0x65, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x31, 0x10, 0x32, 0x52, 0x12,
- 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x75, 0x64,
- 0x69, 0x74, 0x2a, 0x2a, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x55, 0x54,
- 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x42, 0x34,
- 0x5a, 0x32, 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, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x77, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
+ 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x76, 0x31,
+ 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x10, 0x41, 0x63, 0x63, 0x65, 0x73,
+ 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x7e, 0x0a, 0x1a, 0x4b,
+ 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67,
+ 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x3c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x77,
+ 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e,
+ 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x57, 0x61, 0x69,
+ 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52,
+ 0x1a, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x57, 0x61, 0x69, 0x74, 0x69,
+ 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x14, 0x41,
+ 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x52,
+ 0x75, 0x6c, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
+ 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63,
+ 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75,
+ 0x6c, 0x65, 0x48, 0x00, 0x52, 0x14, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69,
+ 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x43, 0x72,
+ 0x6f, 0x77, 0x6e, 0x4a, 0x65, 0x77, 0x65, 0x6c, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
+ 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x63, 0x72, 0x6f, 0x77, 0x6e, 0x6a,
+ 0x65, 0x77, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x77, 0x6e, 0x4a, 0x65, 0x77,
+ 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0a, 0x43, 0x72, 0x6f, 0x77, 0x6e, 0x4a, 0x65, 0x77, 0x65, 0x6c,
+ 0x12, 0x46, 0x0a, 0x0b, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
+ 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f,
+ 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x42, 0x6f, 0x74,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x31, 0x10, 0x32,
+ 0x52, 0x12, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41,
+ 0x75, 0x64, 0x69, 0x74, 0x2a, 0x2a, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50,
+ 0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02,
+ 0x42, 0x34, 0x5a, 0x32, 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, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1293,6 +1316,7 @@ var file_teleport_legacy_client_proto_event_proto_goTypes = []interface{}{
(*v14.KubernetesWaitingContainer)(nil), // 49: teleport.kubewaitingcontainer.v1.KubernetesWaitingContainer
(*v15.AccessMonitoringRule)(nil), // 50: teleport.accessmonitoringrules.v1.AccessMonitoringRule
(*v16.CrownJewel)(nil), // 51: teleport.crownjewel.v1.CrownJewel
+ (*v17.BotInstance)(nil), // 52: teleport.machineid.v1.BotInstance
}
var file_teleport_legacy_client_proto_event_proto_depIdxs = []int32{
0, // 0: proto.Event.Type:type_name -> proto.Operation
@@ -1349,11 +1373,12 @@ var file_teleport_legacy_client_proto_event_proto_depIdxs = []int32{
49, // 51: proto.Event.KubernetesWaitingContainer:type_name -> teleport.kubewaitingcontainer.v1.KubernetesWaitingContainer
50, // 52: proto.Event.AccessMonitoringRule:type_name -> teleport.accessmonitoringrules.v1.AccessMonitoringRule
51, // 53: proto.Event.CrownJewel:type_name -> teleport.crownjewel.v1.CrownJewel
- 54, // [54:54] is the sub-list for method output_type
- 54, // [54:54] is the sub-list for method input_type
- 54, // [54:54] is the sub-list for extension type_name
- 54, // [54:54] is the sub-list for extension extendee
- 0, // [0:54] is the sub-list for field type_name
+ 52, // 54: proto.Event.BotInstance:type_name -> teleport.machineid.v1.BotInstance
+ 55, // [55:55] is the sub-list for method output_type
+ 55, // [55:55] is the sub-list for method input_type
+ 55, // [55:55] is the sub-list for extension type_name
+ 55, // [55:55] is the sub-list for extension extendee
+ 0, // [0:55] is the sub-list for field type_name
}
func init() { file_teleport_legacy_client_proto_event_proto_init() }
@@ -1429,6 +1454,7 @@ func file_teleport_legacy_client_proto_event_proto_init() {
(*Event_KubernetesWaitingContainer)(nil),
(*Event_AccessMonitoringRule)(nil),
(*Event_CrownJewel)(nil),
+ (*Event_BotInstance)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
diff --git a/api/gen/proto/go/teleport/machineid/v1/bot_instance.pb.go b/api/gen/proto/go/teleport/machineid/v1/bot_instance.pb.go
new file mode 100644
index 0000000000000..2350b7aabb7ef
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/bot_instance.pb.go
@@ -0,0 +1,742 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.34.0
+// protoc (unknown)
+// source: teleport/machineid/v1/bot_instance.proto
+
+package machineidv1
+
+import (
+ v1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ durationpb "google.golang.org/protobuf/types/known/durationpb"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// A BotInstance
+type BotInstance struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The kind of resource represented.
+ Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
+ // Differentiates variations of the same kind. All resources should
+ // contain one, even if it is never populated.
+ SubKind string `protobuf:"bytes,2,opt,name=sub_kind,json=subKind,proto3" json:"sub_kind,omitempty"`
+ // The version of the resource being represented.
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ // Common metadata that all resources share.
+ Metadata *v1.Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ // The configured properties of a BotInstance.
+ Spec *BotInstanceSpec `protobuf:"bytes,5,opt,name=spec,proto3" json:"spec,omitempty"`
+ // Fields that are set by the server as results of operations. These should
+ // not be modified by users.
+ Status *BotInstanceStatus `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
+}
+
+func (x *BotInstance) Reset() {
+ *x = BotInstance{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BotInstance) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BotInstance) ProtoMessage() {}
+
+func (x *BotInstance) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BotInstance.ProtoReflect.Descriptor instead.
+func (*BotInstance) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *BotInstance) GetKind() string {
+ if x != nil {
+ return x.Kind
+ }
+ return ""
+}
+
+func (x *BotInstance) GetSubKind() string {
+ if x != nil {
+ return x.SubKind
+ }
+ return ""
+}
+
+func (x *BotInstance) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *BotInstance) GetMetadata() *v1.Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *BotInstance) GetSpec() *BotInstanceSpec {
+ if x != nil {
+ return x.Spec
+ }
+ return nil
+}
+
+func (x *BotInstance) GetStatus() *BotInstanceStatus {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
+// BotInstanceSpec contains fields
+type BotInstanceSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the bot associated with this instance.
+ BotName string `protobuf:"bytes,1,opt,name=bot_name,json=botName,proto3" json:"bot_name,omitempty"`
+ // The unique identifier for this instance.
+ InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+}
+
+func (x *BotInstanceSpec) Reset() {
+ *x = BotInstanceSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BotInstanceSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BotInstanceSpec) ProtoMessage() {}
+
+func (x *BotInstanceSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BotInstanceSpec.ProtoReflect.Descriptor instead.
+func (*BotInstanceSpec) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *BotInstanceSpec) GetBotName() string {
+ if x != nil {
+ return x.BotName
+ }
+ return ""
+}
+
+func (x *BotInstanceSpec) GetInstanceId() string {
+ if x != nil {
+ return x.InstanceId
+ }
+ return ""
+}
+
+// BotInstanceStatusHeartbeat contains information self-reported by an instance
+// of a Bot. This information is not verified by the server and should not be
+// trusted.
+type BotInstanceStatusHeartbeat struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The timestamp that the heartbeat was recorded by the Auth Server. Any
+ // value submitted by `tbot` for this field will be ignored.
+ RecordedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=recorded_at,json=recordedAt,proto3" json:"recorded_at,omitempty"`
+ // Indicates whether this is the heartbeat submitted by `tbot` on startup.
+ IsStartup bool `protobuf:"varint,2,opt,name=is_startup,json=isStartup,proto3" json:"is_startup,omitempty"`
+ // The version of `tbot` that submitted this heartbeat.
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ // The hostname of the host that `tbot` is running on.
+ Hostname string `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"`
+ // The duration that `tbot` has been running for when it submitted this
+ // heartbeat.
+ Uptime *durationpb.Duration `protobuf:"bytes,5,opt,name=uptime,proto3" json:"uptime,omitempty"`
+ // The currently configured join_method.
+ JoinMethod string `protobuf:"bytes,6,opt,name=join_method,json=joinMethod,proto3" json:"join_method,omitempty"`
+ // Indicates whether `tbot` is running in one-shot mode.
+ OneShot bool `protobuf:"varint,7,opt,name=one_shot,json=oneShot,proto3" json:"one_shot,omitempty"`
+ // The architecture of the host that `tbot` is running on, determined by
+ // runtime.GOARCH.
+ Architecture string `protobuf:"bytes,8,opt,name=architecture,proto3" json:"architecture,omitempty"`
+ // The OS of the host that `tbot` is running on, determined by runtime.GOOS.
+ Os string `protobuf:"bytes,9,opt,name=os,proto3" json:"os,omitempty"`
+}
+
+func (x *BotInstanceStatusHeartbeat) Reset() {
+ *x = BotInstanceStatusHeartbeat{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BotInstanceStatusHeartbeat) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BotInstanceStatusHeartbeat) ProtoMessage() {}
+
+func (x *BotInstanceStatusHeartbeat) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BotInstanceStatusHeartbeat.ProtoReflect.Descriptor instead.
+func (*BotInstanceStatusHeartbeat) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *BotInstanceStatusHeartbeat) GetRecordedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.RecordedAt
+ }
+ return nil
+}
+
+func (x *BotInstanceStatusHeartbeat) GetIsStartup() bool {
+ if x != nil {
+ return x.IsStartup
+ }
+ return false
+}
+
+func (x *BotInstanceStatusHeartbeat) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusHeartbeat) GetHostname() string {
+ if x != nil {
+ return x.Hostname
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusHeartbeat) GetUptime() *durationpb.Duration {
+ if x != nil {
+ return x.Uptime
+ }
+ return nil
+}
+
+func (x *BotInstanceStatusHeartbeat) GetJoinMethod() string {
+ if x != nil {
+ return x.JoinMethod
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusHeartbeat) GetOneShot() bool {
+ if x != nil {
+ return x.OneShot
+ }
+ return false
+}
+
+func (x *BotInstanceStatusHeartbeat) GetArchitecture() string {
+ if x != nil {
+ return x.Architecture
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusHeartbeat) GetOs() string {
+ if x != nil {
+ return x.Os
+ }
+ return ""
+}
+
+// BotInstanceStatusAuthentication contains information about a join or renewal.
+// Ths information is entirely sourced by the Auth Server and can be trusted.
+type BotInstanceStatusAuthentication struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The timestamp that the join or renewal was authenticated by the Auth
+ // Server.
+ AuthenticatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=authenticated_at,json=authenticatedAt,proto3" json:"authenticated_at,omitempty"`
+ // The join method used for this join or renewal.
+ JoinMethod string `protobuf:"bytes,2,opt,name=join_method,json=joinMethod,proto3" json:"join_method,omitempty"`
+ // The join token used for this join or renewal. This is only populated for
+ // delegated join methods as the value for `token` join methods is sensitive.
+ JoinToken string `protobuf:"bytes,3,opt,name=join_token,json=joinToken,proto3" json:"join_token,omitempty"`
+ // The metadata sourced from the join method.
+ Metadata *structpb.Struct `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ // On each renewal, this generation is incremented. For delegated join
+ // methods, this counter is not checked during renewal. For the `token` join
+ // method, this counter is checked during renewal and the Bot is locked out if
+ // the counter in the certificate does not match the counter of the last
+ // authentication.
+ Generation int32 `protobuf:"varint,5,opt,name=generation,proto3" json:"generation,omitempty"`
+ // The public key of the Bot instance. This must be a PEM wrapped, PKIX DER
+ // encoded public key. This provides consistency and supports multiple types
+ // of public key algorithm.
+ PublicKey []byte `protobuf:"bytes,6,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
+}
+
+func (x *BotInstanceStatusAuthentication) Reset() {
+ *x = BotInstanceStatusAuthentication{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BotInstanceStatusAuthentication) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BotInstanceStatusAuthentication) ProtoMessage() {}
+
+func (x *BotInstanceStatusAuthentication) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BotInstanceStatusAuthentication.ProtoReflect.Descriptor instead.
+func (*BotInstanceStatusAuthentication) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *BotInstanceStatusAuthentication) GetAuthenticatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.AuthenticatedAt
+ }
+ return nil
+}
+
+func (x *BotInstanceStatusAuthentication) GetJoinMethod() string {
+ if x != nil {
+ return x.JoinMethod
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusAuthentication) GetJoinToken() string {
+ if x != nil {
+ return x.JoinToken
+ }
+ return ""
+}
+
+func (x *BotInstanceStatusAuthentication) GetMetadata() *structpb.Struct {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *BotInstanceStatusAuthentication) GetGeneration() int32 {
+ if x != nil {
+ return x.Generation
+ }
+ return 0
+}
+
+func (x *BotInstanceStatusAuthentication) GetPublicKey() []byte {
+ if x != nil {
+ return x.PublicKey
+ }
+ return nil
+}
+
+// BotInstanceStatus holds the status of a BotInstance.
+type BotInstanceStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The initial authentication status for this bot instance.
+ InitialAuthentication *BotInstanceStatusAuthentication `protobuf:"bytes,1,opt,name=initial_authentication,json=initialAuthentication,proto3" json:"initial_authentication,omitempty"`
+ // The N most recent authentication status records for this bot instance.
+ LatestAuthentications []*BotInstanceStatusAuthentication `protobuf:"bytes,2,rep,name=latest_authentications,json=latestAuthentications,proto3" json:"latest_authentications,omitempty"`
+ // The initial heartbeat status for this bot instance.
+ InitialHeartbeat *BotInstanceStatusHeartbeat `protobuf:"bytes,3,opt,name=initial_heartbeat,json=initialHeartbeat,proto3" json:"initial_heartbeat,omitempty"`
+ // The N most recent heartbeats for this bot instance.
+ LatestHeartbeats []*BotInstanceStatusHeartbeat `protobuf:"bytes,4,rep,name=latest_heartbeats,json=latestHeartbeats,proto3" json:"latest_heartbeats,omitempty"`
+}
+
+func (x *BotInstanceStatus) Reset() {
+ *x = BotInstanceStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BotInstanceStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BotInstanceStatus) ProtoMessage() {}
+
+func (x *BotInstanceStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BotInstanceStatus.ProtoReflect.Descriptor instead.
+func (*BotInstanceStatus) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *BotInstanceStatus) GetInitialAuthentication() *BotInstanceStatusAuthentication {
+ if x != nil {
+ return x.InitialAuthentication
+ }
+ return nil
+}
+
+func (x *BotInstanceStatus) GetLatestAuthentications() []*BotInstanceStatusAuthentication {
+ if x != nil {
+ return x.LatestAuthentications
+ }
+ return nil
+}
+
+func (x *BotInstanceStatus) GetInitialHeartbeat() *BotInstanceStatusHeartbeat {
+ if x != nil {
+ return x.InitialHeartbeat
+ }
+ return nil
+}
+
+func (x *BotInstanceStatus) GetLatestHeartbeats() []*BotInstanceStatusHeartbeat {
+ if x != nil {
+ return x.LatestHeartbeats
+ }
+ return nil
+}
+
+var File_teleport_machineid_v1_bot_instance_proto protoreflect.FileDescriptor
+
+var file_teleport_machineid_v1_bot_instance_proto_rawDesc = []byte{
+ 0x0a, 0x28, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 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, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x1a, 0x21, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
+ 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x02, 0x0a, 0x0b, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x6b,
+ 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4b, 0x69,
+ 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
+ 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e,
+ 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x74,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70,
+ 0x65, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61,
+ 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x22, 0x58, 0x0a, 0x0f, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6f, 0x74, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+ 0x65, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0xd1,
+ 0x02, 0x0a, 0x1a, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x3b, 0x0a,
+ 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a,
+ 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73,
+ 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
+ 0x69, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+ 0x31, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x06, 0x75, 0x70, 0x74, 0x69,
+ 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x74,
+ 0x68, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x74, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x74, 0x12, 0x22,
+ 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75,
+ 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x6f, 0x73, 0x22, 0xaf, 0x02, 0x0a, 0x1f, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+ 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
+ 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x61, 0x75,
+ 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a,
+ 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
+ 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65,
+ 0x79, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70,
+ 0x72, 0x69, 0x6e, 0x74, 0x22, 0xb1, 0x03, 0x0a, 0x11, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6d, 0x0a, 0x16, 0x69, 0x6e,
+ 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x65, 0x6c,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e,
+ 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x68, 0x65,
+ 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x16, 0x6c, 0x61, 0x74,
+ 0x65, 0x73, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76,
+ 0x31, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x15, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74,
+ 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d,
+ 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x74, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x48,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x5e, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65,
+ 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d,
+ 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x74, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x42, 0x56, 0x5a, 0x54, 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, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69,
+ 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x76, 0x31,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_teleport_machineid_v1_bot_instance_proto_rawDescOnce sync.Once
+ file_teleport_machineid_v1_bot_instance_proto_rawDescData = file_teleport_machineid_v1_bot_instance_proto_rawDesc
+)
+
+func file_teleport_machineid_v1_bot_instance_proto_rawDescGZIP() []byte {
+ file_teleport_machineid_v1_bot_instance_proto_rawDescOnce.Do(func() {
+ file_teleport_machineid_v1_bot_instance_proto_rawDescData = protoimpl.X.CompressGZIP(file_teleport_machineid_v1_bot_instance_proto_rawDescData)
+ })
+ return file_teleport_machineid_v1_bot_instance_proto_rawDescData
+}
+
+var file_teleport_machineid_v1_bot_instance_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_teleport_machineid_v1_bot_instance_proto_goTypes = []interface{}{
+ (*BotInstance)(nil), // 0: teleport.machineid.v1.BotInstance
+ (*BotInstanceSpec)(nil), // 1: teleport.machineid.v1.BotInstanceSpec
+ (*BotInstanceStatusHeartbeat)(nil), // 2: teleport.machineid.v1.BotInstanceStatusHeartbeat
+ (*BotInstanceStatusAuthentication)(nil), // 3: teleport.machineid.v1.BotInstanceStatusAuthentication
+ (*BotInstanceStatus)(nil), // 4: teleport.machineid.v1.BotInstanceStatus
+ (*v1.Metadata)(nil), // 5: teleport.header.v1.Metadata
+ (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
+ (*durationpb.Duration)(nil), // 7: google.protobuf.Duration
+ (*structpb.Struct)(nil), // 8: google.protobuf.Struct
+}
+var file_teleport_machineid_v1_bot_instance_proto_depIdxs = []int32{
+ 5, // 0: teleport.machineid.v1.BotInstance.metadata:type_name -> teleport.header.v1.Metadata
+ 1, // 1: teleport.machineid.v1.BotInstance.spec:type_name -> teleport.machineid.v1.BotInstanceSpec
+ 4, // 2: teleport.machineid.v1.BotInstance.status:type_name -> teleport.machineid.v1.BotInstanceStatus
+ 6, // 3: teleport.machineid.v1.BotInstanceStatusHeartbeat.recorded_at:type_name -> google.protobuf.Timestamp
+ 7, // 4: teleport.machineid.v1.BotInstanceStatusHeartbeat.uptime:type_name -> google.protobuf.Duration
+ 6, // 5: teleport.machineid.v1.BotInstanceStatusAuthentication.authenticated_at:type_name -> google.protobuf.Timestamp
+ 8, // 6: teleport.machineid.v1.BotInstanceStatusAuthentication.metadata:type_name -> google.protobuf.Struct
+ 3, // 7: teleport.machineid.v1.BotInstanceStatus.initial_authentication:type_name -> teleport.machineid.v1.BotInstanceStatusAuthentication
+ 3, // 8: teleport.machineid.v1.BotInstanceStatus.latest_authentications:type_name -> teleport.machineid.v1.BotInstanceStatusAuthentication
+ 2, // 9: teleport.machineid.v1.BotInstanceStatus.initial_heartbeat:type_name -> teleport.machineid.v1.BotInstanceStatusHeartbeat
+ 2, // 10: teleport.machineid.v1.BotInstanceStatus.latest_heartbeats:type_name -> teleport.machineid.v1.BotInstanceStatusHeartbeat
+ 11, // [11:11] is the sub-list for method output_type
+ 11, // [11:11] is the sub-list for method input_type
+ 11, // [11:11] is the sub-list for extension type_name
+ 11, // [11:11] is the sub-list for extension extendee
+ 0, // [0:11] is the sub-list for field type_name
+}
+
+func init() { file_teleport_machineid_v1_bot_instance_proto_init() }
+func file_teleport_machineid_v1_bot_instance_proto_init() {
+ if File_teleport_machineid_v1_bot_instance_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_teleport_machineid_v1_bot_instance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BotInstance); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BotInstanceSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BotInstanceStatusHeartbeat); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BotInstanceStatusAuthentication); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BotInstanceStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_teleport_machineid_v1_bot_instance_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_teleport_machineid_v1_bot_instance_proto_goTypes,
+ DependencyIndexes: file_teleport_machineid_v1_bot_instance_proto_depIdxs,
+ MessageInfos: file_teleport_machineid_v1_bot_instance_proto_msgTypes,
+ }.Build()
+ File_teleport_machineid_v1_bot_instance_proto = out.File
+ file_teleport_machineid_v1_bot_instance_proto_rawDesc = nil
+ file_teleport_machineid_v1_bot_instance_proto_goTypes = nil
+ file_teleport_machineid_v1_bot_instance_proto_depIdxs = nil
+}
diff --git a/api/gen/proto/go/teleport/machineid/v1/bot_instance_service.pb.go b/api/gen/proto/go/teleport/machineid/v1/bot_instance_service.pb.go
new file mode 100644
index 0000000000000..1feff11e1614f
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/bot_instance_service.pb.go
@@ -0,0 +1,598 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.34.0
+// protoc (unknown)
+// source: teleport/machineid/v1/bot_instance_service.proto
+
+package machineidv1
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Request for GetBotInstance.
+type GetBotInstanceRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the bot associated with the instance.
+ BotName string `protobuf:"bytes,1,opt,name=bot_name,json=botName,proto3" json:"bot_name,omitempty"`
+ // The unique identifier of the bot instance to retrieve.
+ InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+}
+
+func (x *GetBotInstanceRequest) Reset() {
+ *x = GetBotInstanceRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetBotInstanceRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetBotInstanceRequest) ProtoMessage() {}
+
+func (x *GetBotInstanceRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetBotInstanceRequest.ProtoReflect.Descriptor instead.
+func (*GetBotInstanceRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GetBotInstanceRequest) GetBotName() string {
+ if x != nil {
+ return x.BotName
+ }
+ return ""
+}
+
+func (x *GetBotInstanceRequest) GetInstanceId() string {
+ if x != nil {
+ return x.InstanceId
+ }
+ return ""
+}
+
+// Request for ListBotInstances.
+//
+// Follows the pagination semantics of
+// https://cloud.google.com/apis/design/standard_methods#list
+type ListBotInstancesRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the Bot to list BotInstances for. If empty, all BotInstances
+ // will be listed.
+ FilterBotName string `protobuf:"bytes,1,opt,name=filter_bot_name,json=filterBotName,proto3" json:"filter_bot_name,omitempty"`
+ // The maximum number of items to return.
+ // The server may impose a different page size at its discretion.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // The page_token value returned from a previous ListBotInstances request, if
+ // any.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+}
+
+func (x *ListBotInstancesRequest) Reset() {
+ *x = ListBotInstancesRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListBotInstancesRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListBotInstancesRequest) ProtoMessage() {}
+
+func (x *ListBotInstancesRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListBotInstancesRequest.ProtoReflect.Descriptor instead.
+func (*ListBotInstancesRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListBotInstancesRequest) GetFilterBotName() string {
+ if x != nil {
+ return x.FilterBotName
+ }
+ return ""
+}
+
+func (x *ListBotInstancesRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListBotInstancesRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+// Response for ListBotInstances.
+type ListBotInstancesResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // BotInstance that matched the search.
+ BotInstances []*BotInstance `protobuf:"bytes,1,rep,name=bot_instances,json=botInstances,proto3" json:"bot_instances,omitempty"`
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results exist.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+}
+
+func (x *ListBotInstancesResponse) Reset() {
+ *x = ListBotInstancesResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListBotInstancesResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListBotInstancesResponse) ProtoMessage() {}
+
+func (x *ListBotInstancesResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListBotInstancesResponse.ProtoReflect.Descriptor instead.
+func (*ListBotInstancesResponse) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListBotInstancesResponse) GetBotInstances() []*BotInstance {
+ if x != nil {
+ return x.BotInstances
+ }
+ return nil
+}
+
+func (x *ListBotInstancesResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+// Request for DeleteBotInstance.
+type DeleteBotInstanceRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the BotInstance to delete.
+ BotName string `protobuf:"bytes,1,opt,name=bot_name,json=botName,proto3" json:"bot_name,omitempty"`
+ // The unique identifier of the bot instance to delete.
+ InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+}
+
+func (x *DeleteBotInstanceRequest) Reset() {
+ *x = DeleteBotInstanceRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteBotInstanceRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteBotInstanceRequest) ProtoMessage() {}
+
+func (x *DeleteBotInstanceRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteBotInstanceRequest.ProtoReflect.Descriptor instead.
+func (*DeleteBotInstanceRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DeleteBotInstanceRequest) GetBotName() string {
+ if x != nil {
+ return x.BotName
+ }
+ return ""
+}
+
+func (x *DeleteBotInstanceRequest) GetInstanceId() string {
+ if x != nil {
+ return x.InstanceId
+ }
+ return ""
+}
+
+// The request for SubmitHeartbeat.
+type SubmitHeartbeatRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The heartbeat data to submit.
+ Heartbeat *BotInstanceStatusHeartbeat `protobuf:"bytes,1,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"`
+}
+
+func (x *SubmitHeartbeatRequest) Reset() {
+ *x = SubmitHeartbeatRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SubmitHeartbeatRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SubmitHeartbeatRequest) ProtoMessage() {}
+
+func (x *SubmitHeartbeatRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SubmitHeartbeatRequest.ProtoReflect.Descriptor instead.
+func (*SubmitHeartbeatRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *SubmitHeartbeatRequest) GetHeartbeat() *BotInstanceStatusHeartbeat {
+ if x != nil {
+ return x.Heartbeat
+ }
+ return nil
+}
+
+// The response for SubmitHeartbeat.
+type SubmitHeartbeatResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *SubmitHeartbeatResponse) Reset() {
+ *x = SubmitHeartbeatResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SubmitHeartbeatResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SubmitHeartbeatResponse) ProtoMessage() {}
+
+func (x *SubmitHeartbeatResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SubmitHeartbeatResponse.ProtoReflect.Descriptor instead.
+func (*SubmitHeartbeatResponse) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP(), []int{5}
+}
+
+var File_teleport_machineid_v1_bot_instance_service_proto protoreflect.FileDescriptor
+
+var file_teleport_machineid_v1_bot_instance_service_proto_rawDesc = []byte{
+ 0x0a, 0x30, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x15, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63,
+ 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 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, 0x28, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f,
+ 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x53, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+ 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x74,
+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6f, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x74, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x42, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67,
+ 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+ 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31,
+ 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x6f,
+ 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
+ 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x22, 0x56, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
+ 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x62, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x16, 0x53, 0x75,
+ 0x62, 0x6d, 0x69, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
+ 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e,
+ 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72,
+ 0x74, 0x62, 0x65, 0x61, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x32, 0xbd, 0x03, 0x0a, 0x12, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6f,
+ 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76,
+ 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
+ 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e,
+ 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x10, 0x4c,
+ 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12,
+ 0x2e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x2f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x5c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 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, 0x70,
+ 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x12, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63,
+ 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68,
+ 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x42, 0x56, 0x5a, 0x54, 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,
+ 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x63,
+ 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_teleport_machineid_v1_bot_instance_service_proto_rawDescOnce sync.Once
+ file_teleport_machineid_v1_bot_instance_service_proto_rawDescData = file_teleport_machineid_v1_bot_instance_service_proto_rawDesc
+)
+
+func file_teleport_machineid_v1_bot_instance_service_proto_rawDescGZIP() []byte {
+ file_teleport_machineid_v1_bot_instance_service_proto_rawDescOnce.Do(func() {
+ file_teleport_machineid_v1_bot_instance_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_teleport_machineid_v1_bot_instance_service_proto_rawDescData)
+ })
+ return file_teleport_machineid_v1_bot_instance_service_proto_rawDescData
+}
+
+var file_teleport_machineid_v1_bot_instance_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_teleport_machineid_v1_bot_instance_service_proto_goTypes = []interface{}{
+ (*GetBotInstanceRequest)(nil), // 0: teleport.machineid.v1.GetBotInstanceRequest
+ (*ListBotInstancesRequest)(nil), // 1: teleport.machineid.v1.ListBotInstancesRequest
+ (*ListBotInstancesResponse)(nil), // 2: teleport.machineid.v1.ListBotInstancesResponse
+ (*DeleteBotInstanceRequest)(nil), // 3: teleport.machineid.v1.DeleteBotInstanceRequest
+ (*SubmitHeartbeatRequest)(nil), // 4: teleport.machineid.v1.SubmitHeartbeatRequest
+ (*SubmitHeartbeatResponse)(nil), // 5: teleport.machineid.v1.SubmitHeartbeatResponse
+ (*BotInstance)(nil), // 6: teleport.machineid.v1.BotInstance
+ (*BotInstanceStatusHeartbeat)(nil), // 7: teleport.machineid.v1.BotInstanceStatusHeartbeat
+ (*emptypb.Empty)(nil), // 8: google.protobuf.Empty
+}
+var file_teleport_machineid_v1_bot_instance_service_proto_depIdxs = []int32{
+ 6, // 0: teleport.machineid.v1.ListBotInstancesResponse.bot_instances:type_name -> teleport.machineid.v1.BotInstance
+ 7, // 1: teleport.machineid.v1.SubmitHeartbeatRequest.heartbeat:type_name -> teleport.machineid.v1.BotInstanceStatusHeartbeat
+ 0, // 2: teleport.machineid.v1.BotInstanceService.GetBotInstance:input_type -> teleport.machineid.v1.GetBotInstanceRequest
+ 1, // 3: teleport.machineid.v1.BotInstanceService.ListBotInstances:input_type -> teleport.machineid.v1.ListBotInstancesRequest
+ 3, // 4: teleport.machineid.v1.BotInstanceService.DeleteBotInstance:input_type -> teleport.machineid.v1.DeleteBotInstanceRequest
+ 4, // 5: teleport.machineid.v1.BotInstanceService.SubmitHeartbeat:input_type -> teleport.machineid.v1.SubmitHeartbeatRequest
+ 6, // 6: teleport.machineid.v1.BotInstanceService.GetBotInstance:output_type -> teleport.machineid.v1.BotInstance
+ 2, // 7: teleport.machineid.v1.BotInstanceService.ListBotInstances:output_type -> teleport.machineid.v1.ListBotInstancesResponse
+ 8, // 8: teleport.machineid.v1.BotInstanceService.DeleteBotInstance:output_type -> google.protobuf.Empty
+ 5, // 9: teleport.machineid.v1.BotInstanceService.SubmitHeartbeat:output_type -> teleport.machineid.v1.SubmitHeartbeatResponse
+ 6, // [6:10] is the sub-list for method output_type
+ 2, // [2:6] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_teleport_machineid_v1_bot_instance_service_proto_init() }
+func file_teleport_machineid_v1_bot_instance_service_proto_init() {
+ if File_teleport_machineid_v1_bot_instance_service_proto != nil {
+ return
+ }
+ file_teleport_machineid_v1_bot_instance_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetBotInstanceRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListBotInstancesRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListBotInstancesResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteBotInstanceRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SubmitHeartbeatRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_bot_instance_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SubmitHeartbeatResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_teleport_machineid_v1_bot_instance_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_teleport_machineid_v1_bot_instance_service_proto_goTypes,
+ DependencyIndexes: file_teleport_machineid_v1_bot_instance_service_proto_depIdxs,
+ MessageInfos: file_teleport_machineid_v1_bot_instance_service_proto_msgTypes,
+ }.Build()
+ File_teleport_machineid_v1_bot_instance_service_proto = out.File
+ file_teleport_machineid_v1_bot_instance_service_proto_rawDesc = nil
+ file_teleport_machineid_v1_bot_instance_service_proto_goTypes = nil
+ file_teleport_machineid_v1_bot_instance_service_proto_depIdxs = nil
+}
diff --git a/api/gen/proto/go/teleport/machineid/v1/bot_instance_service_grpc.pb.go b/api/gen/proto/go/teleport/machineid/v1/bot_instance_service_grpc.pb.go
new file mode 100644
index 0000000000000..4be6029abbb74
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/bot_instance_service_grpc.pb.go
@@ -0,0 +1,243 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.3.0
+// - protoc (unknown)
+// source: teleport/machineid/v1/bot_instance_service.proto
+
+package machineidv1
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+const (
+ BotInstanceService_GetBotInstance_FullMethodName = "/teleport.machineid.v1.BotInstanceService/GetBotInstance"
+ BotInstanceService_ListBotInstances_FullMethodName = "/teleport.machineid.v1.BotInstanceService/ListBotInstances"
+ BotInstanceService_DeleteBotInstance_FullMethodName = "/teleport.machineid.v1.BotInstanceService/DeleteBotInstance"
+ BotInstanceService_SubmitHeartbeat_FullMethodName = "/teleport.machineid.v1.BotInstanceService/SubmitHeartbeat"
+)
+
+// BotInstanceServiceClient is the client API for BotInstanceService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type BotInstanceServiceClient interface {
+ // GetBotInstance returns the specified BotInstance resource.
+ GetBotInstance(ctx context.Context, in *GetBotInstanceRequest, opts ...grpc.CallOption) (*BotInstance, error)
+ // ListBotInstances returns a page of BotInstance resources.
+ ListBotInstances(ctx context.Context, in *ListBotInstancesRequest, opts ...grpc.CallOption) (*ListBotInstancesResponse, error)
+ // DeleteBotInstance hard deletes the specified BotInstance resource.
+ DeleteBotInstance(ctx context.Context, in *DeleteBotInstanceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ // SubmitHeartbeat submits a heartbeat for a BotInstance.
+ SubmitHeartbeat(ctx context.Context, in *SubmitHeartbeatRequest, opts ...grpc.CallOption) (*SubmitHeartbeatResponse, error)
+}
+
+type botInstanceServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewBotInstanceServiceClient(cc grpc.ClientConnInterface) BotInstanceServiceClient {
+ return &botInstanceServiceClient{cc}
+}
+
+func (c *botInstanceServiceClient) GetBotInstance(ctx context.Context, in *GetBotInstanceRequest, opts ...grpc.CallOption) (*BotInstance, error) {
+ out := new(BotInstance)
+ err := c.cc.Invoke(ctx, BotInstanceService_GetBotInstance_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *botInstanceServiceClient) ListBotInstances(ctx context.Context, in *ListBotInstancesRequest, opts ...grpc.CallOption) (*ListBotInstancesResponse, error) {
+ out := new(ListBotInstancesResponse)
+ err := c.cc.Invoke(ctx, BotInstanceService_ListBotInstances_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *botInstanceServiceClient) DeleteBotInstance(ctx context.Context, in *DeleteBotInstanceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, BotInstanceService_DeleteBotInstance_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *botInstanceServiceClient) SubmitHeartbeat(ctx context.Context, in *SubmitHeartbeatRequest, opts ...grpc.CallOption) (*SubmitHeartbeatResponse, error) {
+ out := new(SubmitHeartbeatResponse)
+ err := c.cc.Invoke(ctx, BotInstanceService_SubmitHeartbeat_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// BotInstanceServiceServer is the server API for BotInstanceService service.
+// All implementations must embed UnimplementedBotInstanceServiceServer
+// for forward compatibility
+type BotInstanceServiceServer interface {
+ // GetBotInstance returns the specified BotInstance resource.
+ GetBotInstance(context.Context, *GetBotInstanceRequest) (*BotInstance, error)
+ // ListBotInstances returns a page of BotInstance resources.
+ ListBotInstances(context.Context, *ListBotInstancesRequest) (*ListBotInstancesResponse, error)
+ // DeleteBotInstance hard deletes the specified BotInstance resource.
+ DeleteBotInstance(context.Context, *DeleteBotInstanceRequest) (*emptypb.Empty, error)
+ // SubmitHeartbeat submits a heartbeat for a BotInstance.
+ SubmitHeartbeat(context.Context, *SubmitHeartbeatRequest) (*SubmitHeartbeatResponse, error)
+ mustEmbedUnimplementedBotInstanceServiceServer()
+}
+
+// UnimplementedBotInstanceServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedBotInstanceServiceServer struct {
+}
+
+func (UnimplementedBotInstanceServiceServer) GetBotInstance(context.Context, *GetBotInstanceRequest) (*BotInstance, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetBotInstance not implemented")
+}
+func (UnimplementedBotInstanceServiceServer) ListBotInstances(context.Context, *ListBotInstancesRequest) (*ListBotInstancesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListBotInstances not implemented")
+}
+func (UnimplementedBotInstanceServiceServer) DeleteBotInstance(context.Context, *DeleteBotInstanceRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteBotInstance not implemented")
+}
+func (UnimplementedBotInstanceServiceServer) SubmitHeartbeat(context.Context, *SubmitHeartbeatRequest) (*SubmitHeartbeatResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method SubmitHeartbeat not implemented")
+}
+func (UnimplementedBotInstanceServiceServer) mustEmbedUnimplementedBotInstanceServiceServer() {}
+
+// UnsafeBotInstanceServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to BotInstanceServiceServer will
+// result in compilation errors.
+type UnsafeBotInstanceServiceServer interface {
+ mustEmbedUnimplementedBotInstanceServiceServer()
+}
+
+func RegisterBotInstanceServiceServer(s grpc.ServiceRegistrar, srv BotInstanceServiceServer) {
+ s.RegisterService(&BotInstanceService_ServiceDesc, srv)
+}
+
+func _BotInstanceService_GetBotInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetBotInstanceRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BotInstanceServiceServer).GetBotInstance(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: BotInstanceService_GetBotInstance_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BotInstanceServiceServer).GetBotInstance(ctx, req.(*GetBotInstanceRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _BotInstanceService_ListBotInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListBotInstancesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BotInstanceServiceServer).ListBotInstances(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: BotInstanceService_ListBotInstances_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BotInstanceServiceServer).ListBotInstances(ctx, req.(*ListBotInstancesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _BotInstanceService_DeleteBotInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteBotInstanceRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BotInstanceServiceServer).DeleteBotInstance(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: BotInstanceService_DeleteBotInstance_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BotInstanceServiceServer).DeleteBotInstance(ctx, req.(*DeleteBotInstanceRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _BotInstanceService_SubmitHeartbeat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SubmitHeartbeatRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BotInstanceServiceServer).SubmitHeartbeat(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: BotInstanceService_SubmitHeartbeat_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BotInstanceServiceServer).SubmitHeartbeat(ctx, req.(*SubmitHeartbeatRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// BotInstanceService_ServiceDesc is the grpc.ServiceDesc for BotInstanceService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var BotInstanceService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "teleport.machineid.v1.BotInstanceService",
+ HandlerType: (*BotInstanceServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "GetBotInstance",
+ Handler: _BotInstanceService_GetBotInstance_Handler,
+ },
+ {
+ MethodName: "ListBotInstances",
+ Handler: _BotInstanceService_ListBotInstances_Handler,
+ },
+ {
+ MethodName: "DeleteBotInstance",
+ Handler: _BotInstanceService_DeleteBotInstance_Handler,
+ },
+ {
+ MethodName: "SubmitHeartbeat",
+ Handler: _BotInstanceService_SubmitHeartbeat_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "teleport/machineid/v1/bot_instance_service.proto",
+}
diff --git a/api/proto/teleport/legacy/client/proto/event.proto b/api/proto/teleport/legacy/client/proto/event.proto
index dd99ad53b7302..a4a27ca653952 100644
--- a/api/proto/teleport/legacy/client/proto/event.proto
+++ b/api/proto/teleport/legacy/client/proto/event.proto
@@ -22,6 +22,7 @@ import "teleport/crownjewel/v1/crownjewel.proto";
import "teleport/discoveryconfig/v1/discoveryconfig.proto";
import "teleport/kubewaitingcontainer/v1/kubewaitingcontainer.proto";
import "teleport/legacy/types/types.proto";
+import "teleport/machineid/v1/bot_instance.proto";
import "teleport/secreports/v1/secreports.proto";
import "teleport/userloginstate/v1/userloginstate.proto";
@@ -157,5 +158,7 @@ message Event {
teleport.accessmonitoringrules.v1.AccessMonitoringRule AccessMonitoringRule = 54;
// CrownJewel is a Crown Jewel resource.
teleport.crownjewel.v1.CrownJewel CrownJewel = 58;
+ // BotInstance is a Machine ID bot instance.
+ teleport.machineid.v1.BotInstance BotInstance = 60;
}
}
diff --git a/api/proto/teleport/legacy/types/events/events.proto b/api/proto/teleport/legacy/types/events/events.proto
index e0921f30c6dec..57de61962898d 100644
--- a/api/proto/teleport/legacy/types/events/events.proto
+++ b/api/proto/teleport/legacy/types/events/events.proto
@@ -111,6 +111,13 @@ message UserMetadata {
// UserKind indicates what type of user this is, e.g. a human or Machine ID
// bot user.
UserKind UserKind = 10 [(gogoproto.jsontag) = "user_kind,omitempty"];
+
+ // BotName is the name of the Bot if this action is associated with one.
+ string BotName = 11 [(gogoproto.jsontag) = "bot_name,omitempty"];
+
+ // BotInstanceID is the ID of the Bot Instance if this action is associated
+ // with one.
+ string BotInstanceID = 12 [(gogoproto.jsontag) = "bot_instance_id,omitempty"];
}
// Server is a server metadata
@@ -3785,6 +3792,8 @@ message BotJoin {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+ // BotInstanceID is the ID of the bot instance which has joined or renewed.
+ string BotInstanceID = 9 [(gogoproto.jsontag) = "bot_instance_id,omitempty"];
}
// InstanceJoin records an instance join event.
@@ -4503,6 +4512,9 @@ message Identity {
// DeviceExtensions holds the device trust device extensions for the identity,
// if any.
DeviceExtensions DeviceExtensions = 28 [(gogoproto.jsontag) = "device_extensions,omitempty"];
+ // BotInstanceID indicates the name of the Machine ID bot instance this
+ // identity was issued to, if any.
+ string BotInstanceID = 29 [(gogoproto.jsontag) = "bot_instance_id,omitempty"];
}
// RouteToApp contains parameters for application access certificate requests.
diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto
index 92a27ea0c13e4..f892729f7b376 100644
--- a/api/proto/teleport/legacy/types/types.proto
+++ b/api/proto/teleport/legacy/types/types.proto
@@ -5198,6 +5198,16 @@ message RegisterUsingTokenRequest {
(gogoproto.stdtime) = true,
(gogoproto.jsontag) = "expires,omitempty"
];
+ // BotInstanceID is a trusted instance identifier for a Machine ID bot,
+ // provided when rejoining. This parameters may only be provided by the join
+ // service and is ignored otherwise; bots should otherwise rejoin with their
+ // existing client certificate to prove their instance identity.
+ string BotInstanceID = 13 [(gogoproto.jsontag) = "bot_instance_id"];
+ // BotGeneration is a trusted generation counter value for Machine ID bots,
+ // provided to Auth by the Join Service when bots rejoin via a streamed/gRPC
+ // join method. Rejoining bots supply this value via a client certificate
+ // extension; it is ignored from other sources.
+ int32 BotGeneration = 14 [(gogoproto.jsontag) = "bot_generation"];
}
// RecoveryCodes holds a user's recovery code information. Recovery codes allows users to regain
diff --git a/api/proto/teleport/machineid/v1/bot_instance.proto b/api/proto/teleport/machineid/v1/bot_instance.proto
new file mode 100644
index 0000000000000..6ff4719ed15f8
--- /dev/null
+++ b/api/proto/teleport/machineid/v1/bot_instance.proto
@@ -0,0 +1,123 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package teleport.machineid.v1;
+
+import "google/protobuf/duration.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+import "teleport/header/v1/metadata.proto";
+
+option go_package = "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1;machineidv1";
+
+// A BotInstance
+message BotInstance {
+ // The kind of resource represented.
+ string kind = 1;
+ // Differentiates variations of the same kind. All resources should
+ // contain one, even if it is never populated.
+ string sub_kind = 2;
+ // The version of the resource being represented.
+ string version = 3;
+ // Common metadata that all resources share.
+ teleport.header.v1.Metadata metadata = 4;
+ // The configured properties of a BotInstance.
+ BotInstanceSpec spec = 5;
+ // Fields that are set by the server as results of operations. These should
+ // not be modified by users.
+ BotInstanceStatus status = 6;
+}
+
+// BotInstanceSpec contains fields
+message BotInstanceSpec {
+ // The name of the bot associated with this instance.
+ string bot_name = 1;
+ // The unique identifier for this instance.
+ string instance_id = 2;
+
+ reserved 3;
+ reserved "ttl";
+}
+
+// BotInstanceStatusHeartbeat contains information self-reported by an instance
+// of a Bot. This information is not verified by the server and should not be
+// trusted.
+message BotInstanceStatusHeartbeat {
+ // The timestamp that the heartbeat was recorded by the Auth Server. Any
+ // value submitted by `tbot` for this field will be ignored.
+ google.protobuf.Timestamp recorded_at = 1;
+ // Indicates whether this is the heartbeat submitted by `tbot` on startup.
+ bool is_startup = 2;
+ // The version of `tbot` that submitted this heartbeat.
+ string version = 3;
+ // The hostname of the host that `tbot` is running on.
+ string hostname = 4;
+ // The duration that `tbot` has been running for when it submitted this
+ // heartbeat.
+ google.protobuf.Duration uptime = 5;
+ // The currently configured join_method.
+ string join_method = 6;
+ // Indicates whether `tbot` is running in one-shot mode.
+ bool one_shot = 7;
+ // The architecture of the host that `tbot` is running on, determined by
+ // runtime.GOARCH.
+ string architecture = 8;
+ // The OS of the host that `tbot` is running on, determined by runtime.GOOS.
+ string os = 9;
+ // In future iterations, additional information can be submitted here.
+ // For example, the configuration of `tbot` or the health of individual
+ // outputs.
+}
+
+// BotInstanceStatusAuthentication contains information about a join or renewal.
+// Ths information is entirely sourced by the Auth Server and can be trusted.
+message BotInstanceStatusAuthentication {
+ // The timestamp that the join or renewal was authenticated by the Auth
+ // Server.
+ google.protobuf.Timestamp authenticated_at = 1;
+ // The join method used for this join or renewal.
+ string join_method = 2;
+ // The join token used for this join or renewal. This is only populated for
+ // delegated join methods as the value for `token` join methods is sensitive.
+ string join_token = 3;
+ // The metadata sourced from the join method.
+ google.protobuf.Struct metadata = 4;
+ // On each renewal, this generation is incremented. For delegated join
+ // methods, this counter is not checked during renewal. For the `token` join
+ // method, this counter is checked during renewal and the Bot is locked out if
+ // the counter in the certificate does not match the counter of the last
+ // authentication.
+ int32 generation = 5;
+ // The public key of the Bot instance. This must be a PEM wrapped, PKIX DER
+ // encoded public key. This provides consistency and supports multiple types
+ // of public key algorithm.
+ bytes public_key = 6;
+
+ reserved 7;
+ reserved "fingerprint";
+}
+
+// BotInstanceStatus holds the status of a BotInstance.
+message BotInstanceStatus {
+ // The initial authentication status for this bot instance.
+ BotInstanceStatusAuthentication initial_authentication = 1;
+ // The N most recent authentication status records for this bot instance.
+ repeated BotInstanceStatusAuthentication latest_authentications = 2;
+ // The initial heartbeat status for this bot instance.
+ BotInstanceStatusHeartbeat initial_heartbeat = 3;
+ // The N most recent heartbeats for this bot instance.
+ repeated BotInstanceStatusHeartbeat latest_heartbeats = 4;
+}
diff --git a/api/proto/teleport/machineid/v1/bot_instance_service.proto b/api/proto/teleport/machineid/v1/bot_instance_service.proto
new file mode 100644
index 0000000000000..eff01818599b7
--- /dev/null
+++ b/api/proto/teleport/machineid/v1/bot_instance_service.proto
@@ -0,0 +1,86 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package teleport.machineid.v1;
+
+import "google/protobuf/empty.proto";
+import "teleport/machineid/v1/bot_instance.proto";
+
+option go_package = "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1;machineidv1";
+
+// Request for GetBotInstance.
+message GetBotInstanceRequest {
+ // The name of the bot associated with the instance.
+ string bot_name = 1;
+ // The unique identifier of the bot instance to retrieve.
+ string instance_id = 2;
+}
+
+// Request for ListBotInstances.
+//
+// Follows the pagination semantics of
+// https://cloud.google.com/apis/design/standard_methods#list
+message ListBotInstancesRequest {
+ // The name of the Bot to list BotInstances for. If empty, all BotInstances
+ // will be listed.
+ string filter_bot_name = 1;
+ // The maximum number of items to return.
+ // The server may impose a different page size at its discretion.
+ int32 page_size = 2;
+ // The page_token value returned from a previous ListBotInstances request, if
+ // any.
+ string page_token = 3;
+}
+
+// Response for ListBotInstances.
+message ListBotInstancesResponse {
+ // BotInstance that matched the search.
+ repeated BotInstance bot_instances = 1;
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results exist.
+ string next_page_token = 2;
+}
+
+// Request for DeleteBotInstance.
+message DeleteBotInstanceRequest {
+ // The name of the BotInstance to delete.
+ string bot_name = 1;
+ // The unique identifier of the bot instance to delete.
+ string instance_id = 2;
+}
+
+// The request for SubmitHeartbeat.
+message SubmitHeartbeatRequest {
+ // The heartbeat data to submit.
+ BotInstanceStatusHeartbeat heartbeat = 1;
+}
+
+// The response for SubmitHeartbeat.
+message SubmitHeartbeatResponse {
+ // Empty
+}
+
+// BotInstanceService provides functions to record and manage bot instances.
+service BotInstanceService {
+ // GetBotInstance returns the specified BotInstance resource.
+ rpc GetBotInstance(GetBotInstanceRequest) returns (BotInstance);
+ // ListBotInstances returns a page of BotInstance resources.
+ rpc ListBotInstances(ListBotInstancesRequest) returns (ListBotInstancesResponse);
+ // DeleteBotInstance hard deletes the specified BotInstance resource.
+ rpc DeleteBotInstance(DeleteBotInstanceRequest) returns (google.protobuf.Empty);
+ // SubmitHeartbeat submits a heartbeat for a BotInstance.
+ rpc SubmitHeartbeat(SubmitHeartbeatRequest) returns (SubmitHeartbeatResponse);
+}
diff --git a/api/types/constants.go b/api/types/constants.go
index c613c29449700..22597813f8aa5 100644
--- a/api/types/constants.go
+++ b/api/types/constants.go
@@ -65,6 +65,9 @@ const (
// KindBot is a Machine ID bot resource
KindBot = "bot"
+ // KindBotInstance is an instance of a Machine ID bot
+ KindBotInstance = "bot_instance"
+
// KindSPIFFEFederation is a SPIFFE federation resource
KindSPIFFEFederation = "spiffe_federation"
diff --git a/api/types/events/events.pb.go b/api/types/events/events.pb.go
index d22692c50f1cb..1e6bbfa48c657 100644
--- a/api/types/events/events.pb.go
+++ b/api/types/events/events.pb.go
@@ -500,7 +500,12 @@ type UserMetadata struct {
RequiredPrivateKeyPolicy string `protobuf:"bytes,9,opt,name=RequiredPrivateKeyPolicy,proto3" json:"required_private_key_policy,omitempty"`
// UserKind indicates what type of user this is, e.g. a human or Machine ID
// bot user.
- UserKind UserKind `protobuf:"varint,10,opt,name=UserKind,proto3,enum=events.UserKind" json:"user_kind,omitempty"`
+ UserKind UserKind `protobuf:"varint,10,opt,name=UserKind,proto3,enum=events.UserKind" json:"user_kind,omitempty"`
+ // BotName is the name of the Bot if this action is associated with one.
+ BotName string `protobuf:"bytes,11,opt,name=BotName,proto3" json:"bot_name,omitempty"`
+ // BotInstanceID is the ID of the Bot Instance if this action is associated
+ // with one.
+ BotInstanceID string `protobuf:"bytes,12,opt,name=BotInstanceID,proto3" json:"bot_instance_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -6489,7 +6494,9 @@ type BotJoin struct {
// Attributes is a map of attributes received from the join method provider.
Attributes *Struct `protobuf:"bytes,6,opt,name=Attributes,proto3,casttype=Struct" json:"attributes,omitempty"`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,8,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,8,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // BotInstanceID is the ID of the bot instance which has joined or renewed.
+ BotInstanceID string `protobuf:"bytes,9,opt,name=BotInstanceID,proto3" json:"bot_instance_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -9642,10 +9649,13 @@ type Identity struct {
BotName string `protobuf:"bytes,27,opt,name=BotName,proto3" json:"bot_name,omitempty"`
// DeviceExtensions holds the device trust device extensions for the identity,
// if any.
- DeviceExtensions *DeviceExtensions `protobuf:"bytes,28,opt,name=DeviceExtensions,proto3" json:"device_extensions,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ DeviceExtensions *DeviceExtensions `protobuf:"bytes,28,opt,name=DeviceExtensions,proto3" json:"device_extensions,omitempty"`
+ // BotInstanceID indicates the name of the Machine ID bot instance this
+ // identity was issued to, if any.
+ BotInstanceID string `protobuf:"bytes,29,opt,name=BotInstanceID,proto3" json:"bot_instance_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *Identity) Reset() { *m = Identity{} }
@@ -13512,962 +13522,966 @@ func init() {
}
var fileDescriptor_007ba1c3d6266d56 = []byte{
- // 15275 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6d, 0x70, 0x24, 0xc7,
- 0x75, 0x20, 0x88, 0xfe, 0x40, 0x03, 0x78, 0xf8, 0x18, 0x20, 0x67, 0x38, 0x53, 0x1c, 0x0e, 0xa7,
- 0xc9, 0xa2, 0x38, 0x9a, 0xa1, 0x48, 0x8c, 0x38, 0x1c, 0x92, 0x22, 0x45, 0x8a, 0x6c, 0xa0, 0x81,
- 0x41, 0x73, 0xf0, 0xc5, 0x6a, 0xcc, 0x8c, 0xa8, 0x0f, 0xb6, 0x0b, 0x5d, 0x09, 0xa0, 0x88, 0xee,
- 0xaa, 0x56, 0x55, 0xf5, 0x60, 0xc0, 0xfb, 0xb2, 0x7c, 0xfe, 0x90, 0x7c, 0x92, 0x4e, 0x27, 0x9f,
- 0xbf, 0x7d, 0x77, 0xb2, 0x1d, 0xbe, 0xb3, 0x1d, 0x3e, 0xfb, 0x7c, 0x77, 0x61, 0x5b, 0xf6, 0x29,
- 0xce, 0x3e, 0xdd, 0xc5, 0xd1, 0x2b, 0x7b, 0xc3, 0xf6, 0xee, 0x3a, 0x1c, 0xbb, 0x5e, 0xc8, 0xab,
- 0x5d, 0xef, 0x0f, 0xc4, 0x6e, 0x84, 0x77, 0x57, 0xb1, 0xf6, 0x7a, 0xbd, 0x1b, 0x1b, 0xf9, 0x32,
- 0xab, 0x2a, 0xeb, 0xa3, 0x1b, 0x9f, 0x34, 0x08, 0x0e, 0xfe, 0xcc, 0xa0, 0xdf, 0x7b, 0xf9, 0x32,
- 0xeb, 0xe5, 0xcb, 0xcc, 0x97, 0x99, 0x2f, 0xdf, 0x83, 0x2b, 0x1e, 0x6d, 0xd0, 0x96, 0xed, 0x78,
- 0x57, 0x1b, 0x74, 0x55, 0xaf, 0x6f, 0x5e, 0xf5, 0x36, 0x5b, 0xd4, 0xbd, 0x4a, 0xef, 0x52, 0xcb,
- 0xf3, 0xff, 0x1b, 0x6f, 0x39, 0xb6, 0x67, 0x93, 0x02, 0xff, 0x75, 0xfe, 0xcc, 0xaa, 0xbd, 0x6a,
- 0x23, 0xe8, 0x2a, 0xfb, 0x8b, 0x63, 0xcf, 0x5f, 0x58, 0xb5, 0xed, 0xd5, 0x06, 0xbd, 0x8a, 0xbf,
- 0x96, 0xdb, 0x2b, 0x57, 0x5d, 0xcf, 0x69, 0xd7, 0x3d, 0x81, 0x2d, 0xc6, 0xb1, 0x9e, 0xd9, 0xa4,
- 0xae, 0xa7, 0x37, 0x5b, 0x82, 0xe0, 0x62, 0x9c, 0x60, 0xc3, 0xd1, 0x5b, 0x2d, 0xea, 0x88, 0xca,
- 0xcf, 0x3f, 0x9a, 0xde, 0x4e, 0xfc, 0x57, 0x90, 0x3c, 0x95, 0x4e, 0xe2, 0x33, 0x8a, 0x71, 0x54,
- 0xbf, 0x92, 0x85, 0xfe, 0x39, 0xea, 0xe9, 0x86, 0xee, 0xe9, 0xe4, 0x02, 0xf4, 0x56, 0x2c, 0x83,
- 0xde, 0x53, 0x32, 0x8f, 0x64, 0x2e, 0xe7, 0x26, 0x0a, 0xdb, 0x5b, 0xc5, 0x2c, 0x35, 0x35, 0x0e,
- 0x24, 0x0f, 0x43, 0x7e, 0x69, 0xb3, 0x45, 0x95, 0xec, 0x23, 0x99, 0xcb, 0x03, 0x13, 0x03, 0xdb,
- 0x5b, 0xc5, 0x5e, 0x94, 0x85, 0x86, 0x60, 0xf2, 0x28, 0x64, 0x2b, 0x65, 0x25, 0x87, 0xc8, 0xb1,
- 0xed, 0xad, 0xe2, 0x70, 0xdb, 0x34, 0x9e, 0xb4, 0x9b, 0xa6, 0x47, 0x9b, 0x2d, 0x6f, 0x53, 0xcb,
- 0x56, 0xca, 0xe4, 0x12, 0xe4, 0x27, 0x6d, 0x83, 0x2a, 0x79, 0x24, 0x22, 0xdb, 0x5b, 0xc5, 0x91,
- 0xba, 0x6d, 0x50, 0x89, 0x0a, 0xf1, 0xe4, 0x55, 0xc8, 0x2f, 0x99, 0x4d, 0xaa, 0xf4, 0x3e, 0x92,
- 0xb9, 0x3c, 0x78, 0xed, 0xfc, 0x38, 0x97, 0xca, 0xb8, 0x2f, 0x95, 0xf1, 0x25, 0x5f, 0x6c, 0x13,
- 0xa3, 0xef, 0x6c, 0x15, 0x7b, 0xb6, 0xb7, 0x8a, 0x79, 0x26, 0xc9, 0x2f, 0x7f, 0xab, 0x98, 0xd1,
- 0xb0, 0x24, 0x79, 0x09, 0x06, 0x27, 0x1b, 0x6d, 0xd7, 0xa3, 0xce, 0xbc, 0xde, 0xa4, 0x4a, 0x01,
- 0x2b, 0x3c, 0xbf, 0xbd, 0x55, 0x3c, 0x5b, 0xe7, 0xe0, 0x9a, 0xa5, 0x37, 0xe5, 0x8a, 0x65, 0x72,
- 0xf5, 0x37, 0x32, 0x70, 0xaa, 0x4a, 0x5d, 0xd7, 0xb4, 0xad, 0x40, 0x36, 0x8f, 0xc3, 0x80, 0x00,
- 0x55, 0xca, 0x28, 0x9f, 0x81, 0x89, 0xbe, 0xed, 0xad, 0x62, 0xce, 0x35, 0x0d, 0x2d, 0xc4, 0x90,
- 0x0f, 0x43, 0xdf, 0x1d, 0xd3, 0x5b, 0x9b, 0x9b, 0x2e, 0x09, 0x39, 0x9d, 0xdd, 0xde, 0x2a, 0x92,
- 0x0d, 0xd3, 0x5b, 0xab, 0x35, 0x57, 0x74, 0xa9, 0x42, 0x9f, 0x8c, 0xcc, 0xc2, 0xe8, 0xa2, 0x63,
- 0xde, 0xd5, 0x3d, 0x7a, 0x93, 0x6e, 0x2e, 0xda, 0x0d, 0xb3, 0xbe, 0x29, 0xa4, 0xf8, 0xc8, 0xf6,
- 0x56, 0xf1, 0x42, 0x8b, 0xe3, 0x6a, 0xeb, 0x74, 0xb3, 0xd6, 0x42, 0xac, 0xc4, 0x24, 0x51, 0x52,
- 0xfd, 0x46, 0x2f, 0x0c, 0xdd, 0x72, 0xa9, 0x13, 0xb4, 0xfb, 0x12, 0xe4, 0xd9, 0x6f, 0xd1, 0x64,
- 0x94, 0x79, 0xdb, 0xa5, 0x8e, 0x2c, 0x73, 0x86, 0x27, 0x57, 0xa0, 0x77, 0xd6, 0x5e, 0x35, 0x2d,
- 0xd1, 0xec, 0xd3, 0xdb, 0x5b, 0xc5, 0x53, 0x0d, 0x06, 0x90, 0x28, 0x39, 0x05, 0xf9, 0x18, 0x0c,
- 0x55, 0x9a, 0x4c, 0x87, 0x6c, 0x4b, 0xf7, 0x6c, 0x47, 0xb4, 0x16, 0xa5, 0x6b, 0x4a, 0x70, 0xa9,
- 0x60, 0x84, 0x9e, 0xbc, 0x08, 0x50, 0xba, 0x53, 0xd5, 0xec, 0x06, 0x2d, 0x69, 0xf3, 0x42, 0x19,
- 0xb0, 0xb4, 0xbe, 0xe1, 0xd6, 0x1c, 0xbb, 0x41, 0x6b, 0xba, 0x23, 0x57, 0x2b, 0x51, 0x93, 0x29,
- 0x18, 0x29, 0xd5, 0xeb, 0xd4, 0x75, 0x35, 0xfa, 0x99, 0x36, 0x75, 0x3d, 0x57, 0xe9, 0x7d, 0x24,
- 0x77, 0x79, 0x60, 0xe2, 0xe1, 0xed, 0xad, 0xe2, 0x83, 0x3a, 0x62, 0x6a, 0x8e, 0x40, 0x49, 0x2c,
- 0x62, 0x85, 0xc8, 0x04, 0x0c, 0x97, 0xde, 0x6e, 0x3b, 0xb4, 0x62, 0x50, 0xcb, 0x33, 0xbd, 0x4d,
- 0xa1, 0x21, 0x17, 0xb6, 0xb7, 0x8a, 0x8a, 0xce, 0x10, 0x35, 0x53, 0x60, 0x24, 0x26, 0xd1, 0x22,
- 0x64, 0x01, 0xc6, 0x6e, 0x4c, 0x2e, 0x56, 0xa9, 0x73, 0xd7, 0xac, 0xd3, 0x52, 0xbd, 0x6e, 0xb7,
- 0x2d, 0x4f, 0xe9, 0x43, 0x3e, 0x8f, 0x6e, 0x6f, 0x15, 0x1f, 0x5e, 0xad, 0xb7, 0x6a, 0x2e, 0xc7,
- 0xd6, 0x74, 0x8e, 0x96, 0x98, 0x25, 0xcb, 0x92, 0x4f, 0xc0, 0xf0, 0x92, 0xc3, 0xb4, 0xd0, 0x28,
- 0x53, 0x06, 0x57, 0xfa, 0x51, 0xff, 0xcf, 0x8e, 0x8b, 0x09, 0x88, 0x43, 0xfd, 0x9e, 0xe5, 0x8d,
- 0xf5, 0x78, 0x81, 0x9a, 0x81, 0x38, 0xb9, 0xb1, 0x11, 0x56, 0x84, 0x82, 0xc2, 0x3e, 0xde, 0x74,
- 0xa8, 0x91, 0xd0, 0xb6, 0x01, 0x6c, 0xf3, 0x95, 0xed, 0xad, 0xe2, 0xe3, 0x8e, 0xa0, 0xa9, 0x75,
- 0x55, 0xbb, 0x8e, 0xac, 0xc8, 0x14, 0xf4, 0x33, 0x6d, 0xba, 0x69, 0x5a, 0x86, 0x02, 0x8f, 0x64,
- 0x2e, 0x8f, 0x5c, 0x1b, 0xf5, 0x5b, 0xef, 0xc3, 0x27, 0xce, 0x6d, 0x6f, 0x15, 0x4f, 0x33, 0x1d,
- 0xac, 0xad, 0x9b, 0x96, 0x3c, 0x45, 0x04, 0x45, 0xd5, 0xbf, 0xcc, 0xc3, 0x08, 0x13, 0x8e, 0xa4,
- 0xc7, 0x25, 0x36, 0x24, 0x19, 0x84, 0x8d, 0x50, 0xb7, 0xa5, 0xd7, 0xa9, 0x50, 0x69, 0x64, 0x67,
- 0xf9, 0x40, 0x89, 0x5d, 0x9c, 0x9e, 0x5c, 0x81, 0x7e, 0x0e, 0xaa, 0x94, 0x85, 0x96, 0x0f, 0x6f,
- 0x6f, 0x15, 0x07, 0x5c, 0x84, 0xd5, 0x4c, 0x43, 0x0b, 0xd0, 0x4c, 0xcd, 0xf8, 0xdf, 0x33, 0xb6,
- 0xeb, 0x31, 0xe6, 0x42, 0xc9, 0x51, 0xcd, 0x44, 0x81, 0x35, 0x81, 0x92, 0xd5, 0x2c, 0x5a, 0x88,
- 0xbc, 0x00, 0xc0, 0x21, 0x25, 0xc3, 0x70, 0x84, 0xa6, 0x3f, 0xb8, 0xbd, 0x55, 0x7c, 0x40, 0xb0,
- 0xd0, 0x0d, 0x43, 0x1e, 0x26, 0x12, 0x31, 0x69, 0xc2, 0x10, 0xff, 0x35, 0xab, 0x2f, 0xd3, 0x06,
- 0x57, 0xf3, 0xc1, 0x6b, 0x97, 0x7d, 0x69, 0x46, 0xa5, 0x33, 0x2e, 0x93, 0x4e, 0x59, 0x9e, 0xb3,
- 0x39, 0x51, 0x14, 0x33, 0xe3, 0x39, 0x51, 0x55, 0x03, 0x71, 0xf2, 0x98, 0x94, 0xcb, 0xb0, 0x09,
- 0x73, 0xda, 0x76, 0x36, 0x74, 0xc7, 0xa0, 0xc6, 0xc4, 0xa6, 0x3c, 0x61, 0xae, 0xf8, 0xe0, 0xda,
- 0xb2, 0xac, 0x03, 0x32, 0x39, 0x99, 0x84, 0x61, 0xce, 0xad, 0xda, 0x5e, 0xc6, 0xbe, 0xef, 0x4b,
- 0x48, 0xcb, 0x6d, 0x2f, 0xc7, 0xfb, 0x3b, 0x5a, 0x86, 0x8d, 0x49, 0x0e, 0xb8, 0x4d, 0x1d, 0x36,
- 0x9b, 0xa2, 0xfa, 0x8b, 0x31, 0x29, 0x98, 0xdc, 0xe5, 0x98, 0x24, 0x0f, 0x51, 0xe4, 0xfc, 0x2b,
- 0x30, 0x96, 0x10, 0x05, 0x19, 0x85, 0xdc, 0x3a, 0xdd, 0xe4, 0xea, 0xa2, 0xb1, 0x3f, 0xc9, 0x19,
- 0xe8, 0xbd, 0xab, 0x37, 0xda, 0x62, 0x2d, 0xd3, 0xf8, 0x8f, 0x17, 0xb3, 0x1f, 0xc9, 0xb0, 0xa9,
- 0x9f, 0x4c, 0xda, 0x96, 0x45, 0xeb, 0x9e, 0x3c, 0xfb, 0x3f, 0x07, 0x03, 0xb3, 0x76, 0x5d, 0x6f,
- 0x60, 0x3f, 0x72, 0xbd, 0x53, 0xb6, 0xb7, 0x8a, 0x67, 0x58, 0x07, 0x8e, 0x37, 0x18, 0x46, 0x6a,
- 0x53, 0x48, 0xca, 0x14, 0x40, 0xa3, 0x4d, 0xdb, 0xa3, 0x58, 0x30, 0x1b, 0x2a, 0x00, 0x16, 0x74,
- 0x10, 0x25, 0x2b, 0x40, 0x48, 0x4c, 0xae, 0x42, 0xff, 0x22, 0x5b, 0xf0, 0xea, 0x76, 0x43, 0x28,
- 0x1f, 0xce, 0xc9, 0xb8, 0x08, 0xca, 0x83, 0xc6, 0x27, 0x52, 0x67, 0x60, 0x64, 0xb2, 0x61, 0x52,
- 0xcb, 0x93, 0x5b, 0xcd, 0x86, 0x54, 0x69, 0x95, 0x5a, 0x9e, 0xdc, 0x6a, 0x1c, 0x7c, 0x3a, 0x83,
- 0xca, 0xad, 0x0e, 0x48, 0xd5, 0xbf, 0x9b, 0x83, 0x07, 0x6f, 0xb6, 0x97, 0xa9, 0x63, 0x51, 0x8f,
- 0xba, 0x62, 0x65, 0x0c, 0xb8, 0xce, 0xc3, 0x58, 0x02, 0x29, 0xb8, 0xe3, 0x8a, 0xb5, 0x1e, 0x20,
- 0x6b, 0x62, 0xb1, 0x95, 0xa7, 0xbd, 0x44, 0x51, 0x32, 0x03, 0xa7, 0x42, 0x20, 0x6b, 0x84, 0xab,
- 0x64, 0x71, 0x4e, 0xbf, 0xb8, 0xbd, 0x55, 0x3c, 0x2f, 0x71, 0x63, 0xcd, 0x96, 0x35, 0x38, 0x5e,
- 0x8c, 0xdc, 0x84, 0xd1, 0x10, 0x74, 0xc3, 0xb1, 0xdb, 0x2d, 0x57, 0xc9, 0x21, 0xab, 0xe2, 0xf6,
- 0x56, 0xf1, 0x21, 0x89, 0xd5, 0x2a, 0x22, 0xe5, 0x95, 0x34, 0x5e, 0x90, 0x7c, 0x6f, 0x46, 0xe6,
- 0x26, 0x46, 0x61, 0x1e, 0x47, 0xe1, 0xf3, 0xfe, 0x28, 0xec, 0x28, 0xa4, 0xf1, 0x78, 0x49, 0x31,
- 0x28, 0x63, 0xcd, 0x48, 0x0c, 0xca, 0x44, 0x8d, 0xe7, 0x27, 0xe1, 0x81, 0x54, 0x5e, 0x7b, 0xd2,
- 0xea, 0x3f, 0xcf, 0xc9, 0x5c, 0x16, 0x6d, 0x23, 0xe8, 0xcc, 0x05, 0xb9, 0x33, 0x17, 0x6d, 0x03,
- 0xcd, 0xa5, 0x4c, 0xb8, 0x88, 0x49, 0x8d, 0x6d, 0xd9, 0x46, 0xdc, 0x6a, 0x4a, 0x96, 0x25, 0x6f,
- 0xc2, 0xd9, 0x04, 0x90, 0x4f, 0xd7, 0x5c, 0xfb, 0x2f, 0x6d, 0x6f, 0x15, 0xd5, 0x14, 0xae, 0xf1,
- 0xd9, 0xbb, 0x03, 0x17, 0xa2, 0xc3, 0x39, 0x49, 0xea, 0xb6, 0xe5, 0xe9, 0xa6, 0x25, 0xac, 0x3c,
- 0x3e, 0x4a, 0x3e, 0xb8, 0xbd, 0x55, 0x7c, 0x4c, 0xd6, 0x41, 0x9f, 0x26, 0xde, 0xf8, 0x4e, 0x7c,
- 0x88, 0x01, 0x4a, 0x0a, 0xaa, 0xd2, 0xd4, 0x57, 0x7d, 0xd3, 0xf5, 0xf2, 0xf6, 0x56, 0xf1, 0x03,
- 0xa9, 0x75, 0x98, 0x8c, 0x4a, 0x5e, 0x2a, 0x3b, 0x71, 0x22, 0x1a, 0x90, 0x10, 0x37, 0x6f, 0x1b,
- 0x14, 0xbf, 0xa1, 0x17, 0xf9, 0xab, 0xdb, 0x5b, 0xc5, 0x8b, 0x12, 0x7f, 0xcb, 0x36, 0x68, 0xbc,
- 0xf9, 0x29, 0xa5, 0xd5, 0xdf, 0xc8, 0xc1, 0xc5, 0x6a, 0x69, 0x6e, 0xb6, 0x62, 0xf8, 0xb6, 0xc5,
- 0xa2, 0x63, 0xdf, 0x35, 0x0d, 0x69, 0xf4, 0x2e, 0xc3, 0xb9, 0x18, 0x6a, 0x0a, 0xcd, 0x99, 0xc0,
- 0xaa, 0xc5, 0x6f, 0xf3, 0xed, 0x96, 0x96, 0xa0, 0xa9, 0x71, 0x9b, 0xa7, 0x16, 0x31, 0xe9, 0x3b,
- 0x31, 0x62, 0x7d, 0x14, 0x43, 0x55, 0xd7, 0x6c, 0xc7, 0xab, 0xb7, 0x3d, 0xa1, 0x04, 0xd8, 0x47,
- 0x89, 0x3a, 0x5c, 0x41, 0xd4, 0xa5, 0x0a, 0x9f, 0x0f, 0xf9, 0x7c, 0x06, 0x46, 0x4b, 0x9e, 0xe7,
- 0x98, 0xcb, 0x6d, 0x8f, 0xce, 0xe9, 0xad, 0x96, 0x69, 0xad, 0xe2, 0x58, 0x1f, 0xbc, 0xf6, 0x52,
- 0xb0, 0x46, 0x76, 0x95, 0xc4, 0x78, 0xbc, 0xb8, 0x34, 0x44, 0x75, 0x1f, 0x55, 0x6b, 0x72, 0x9c,
- 0x3c, 0x44, 0xe3, 0xe5, 0xd8, 0x10, 0x4d, 0xe5, 0xb5, 0xa7, 0x21, 0xfa, 0x95, 0x1c, 0x5c, 0x58,
- 0x58, 0xf7, 0x74, 0x8d, 0xba, 0x76, 0xdb, 0xa9, 0x53, 0xf7, 0x56, 0xcb, 0xd0, 0x3d, 0x1a, 0x8e,
- 0xd4, 0x22, 0xf4, 0x96, 0x0c, 0x83, 0x1a, 0xc8, 0xae, 0x97, 0xef, 0xbf, 0x74, 0x06, 0xd0, 0x38,
- 0x9c, 0x3c, 0x0e, 0x7d, 0xa2, 0x0c, 0x72, 0xef, 0x9d, 0x18, 0xdc, 0xde, 0x2a, 0xf6, 0xb5, 0x39,
- 0x48, 0xf3, 0x71, 0x8c, 0xac, 0x4c, 0x1b, 0x94, 0x91, 0xe5, 0x42, 0x32, 0x83, 0x83, 0x34, 0x1f,
- 0x47, 0x5e, 0x87, 0x11, 0x64, 0x1b, 0xb4, 0x47, 0xcc, 0x7d, 0x67, 0x7c, 0xe9, 0xca, 0x8d, 0xe5,
- 0x4b, 0x13, 0xb6, 0xa6, 0xe6, 0xf8, 0x05, 0xb4, 0x18, 0x03, 0x72, 0x07, 0x46, 0x45, 0x23, 0x42,
- 0xa6, 0xbd, 0x5d, 0x98, 0x3e, 0xb0, 0xbd, 0x55, 0x1c, 0x13, 0xed, 0x97, 0xd8, 0x26, 0x98, 0x30,
- 0xc6, 0xa2, 0xd9, 0x21, 0xe3, 0xc2, 0x4e, 0x8c, 0xc5, 0x17, 0xcb, 0x8c, 0xe3, 0x4c, 0xd4, 0x37,
- 0x60, 0x48, 0x2e, 0x48, 0xce, 0xe2, 0x1e, 0x97, 0x8f, 0x13, 0xdc, 0x1d, 0x9b, 0x06, 0x6e, 0x6c,
- 0x9f, 0x86, 0xc1, 0x32, 0x75, 0xeb, 0x8e, 0xd9, 0x62, 0x56, 0x83, 0x50, 0xf2, 0x53, 0xdb, 0x5b,
- 0xc5, 0x41, 0x23, 0x04, 0x6b, 0x32, 0x8d, 0xfa, 0x6f, 0x33, 0x70, 0x96, 0xf1, 0x2e, 0xb9, 0xae,
- 0xb9, 0x6a, 0x35, 0xe5, 0x65, 0xfb, 0x49, 0x28, 0x54, 0xb1, 0x3e, 0x51, 0xd3, 0x99, 0xed, 0xad,
- 0xe2, 0x28, 0x6f, 0x81, 0xa4, 0x87, 0x82, 0x26, 0xd8, 0xe0, 0x65, 0x77, 0xd8, 0xe0, 0x31, 0x93,
- 0xd6, 0xd3, 0x1d, 0xcf, 0xb4, 0x56, 0xab, 0x9e, 0xee, 0xb5, 0xdd, 0x88, 0x49, 0x2b, 0x30, 0x35,
- 0x17, 0x51, 0x11, 0x93, 0x36, 0x52, 0x88, 0xbc, 0x02, 0x43, 0x53, 0x96, 0x11, 0x32, 0xe1, 0x13,
- 0xe2, 0x43, 0xcc, 0xd2, 0xa4, 0x08, 0x4f, 0xb2, 0x88, 0x14, 0x50, 0xff, 0xd7, 0x0c, 0x28, 0x7c,
- 0x37, 0x36, 0x6b, 0xba, 0xde, 0x1c, 0x6d, 0x2e, 0x4b, 0xb3, 0xd3, 0xb4, 0xbf, 0xbd, 0x63, 0x38,
- 0x69, 0x2d, 0x42, 0x53, 0x40, 0x6c, 0xef, 0x1a, 0xa6, 0xeb, 0xc5, 0x27, 0xc3, 0x58, 0x29, 0x52,
- 0x81, 0x3e, 0xce, 0x99, 0xdb, 0x12, 0x83, 0xd7, 0x14, 0x5f, 0x11, 0xe2, 0x55, 0x73, 0x65, 0x68,
- 0x72, 0x62, 0x79, 0x7f, 0x2e, 0xca, 0xab, 0xff, 0x5b, 0x16, 0x46, 0xe3, 0x85, 0xc8, 0x1d, 0xe8,
- 0x7f, 0xcd, 0x36, 0x2d, 0x6a, 0x2c, 0x58, 0xd8, 0xc2, 0xee, 0xa7, 0x14, 0xbe, 0x2d, 0x7e, 0xfa,
- 0x2d, 0x2c, 0x53, 0x93, 0x2d, 0x58, 0x3c, 0xb4, 0x08, 0x98, 0x91, 0x4f, 0xc0, 0x00, 0xb3, 0x01,
- 0xef, 0x22, 0xe7, 0xec, 0x8e, 0x9c, 0x1f, 0x11, 0x9c, 0xcf, 0x38, 0xbc, 0x50, 0x92, 0x75, 0xc8,
- 0x8e, 0xe9, 0x95, 0x46, 0x75, 0xd7, 0xb6, 0x44, 0xcf, 0xa3, 0x5e, 0x39, 0x08, 0x91, 0xf5, 0x8a,
- 0xd3, 0x30, 0xd3, 0x95, 0x7f, 0x2c, 0x76, 0x83, 0xb4, 0x77, 0xe1, 0xb2, 0x8a, 0xf7, 0x80, 0x44,
- 0xac, 0x7e, 0x7f, 0x16, 0x9e, 0x0a, 0x45, 0xa6, 0xd1, 0xbb, 0x26, 0xdd, 0x10, 0xe2, 0x5c, 0x33,
- 0x5b, 0x62, 0xf3, 0xc8, 0x54, 0xde, 0x9d, 0x5c, 0xd3, 0xad, 0x55, 0x6a, 0x90, 0x2b, 0xd0, 0xcb,
- 0x76, 0xf8, 0xae, 0x92, 0x41, 0x73, 0x0d, 0xa7, 0x13, 0x87, 0x01, 0xe4, 0xd3, 0x07, 0xa4, 0x20,
- 0x36, 0x14, 0x96, 0x1c, 0xdd, 0xf4, 0xfc, 0x9e, 0x2d, 0x25, 0x7b, 0x76, 0x17, 0x35, 0x8e, 0x73,
- 0x1e, 0x7c, 0xce, 0x47, 0x41, 0x78, 0x08, 0x90, 0x05, 0xc1, 0x49, 0xce, 0xbf, 0x00, 0x83, 0x12,
- 0xf1, 0x9e, 0x26, 0xf5, 0xaf, 0xe5, 0x65, 0x5d, 0xf7, 0x9b, 0x25, 0x74, 0xfd, 0x2a, 0xd3, 0x51,
- 0xd7, 0x65, 0x56, 0x05, 0x57, 0x72, 0xa1, 0x89, 0x08, 0x8a, 0x6a, 0x22, 0x82, 0xc8, 0x33, 0xd0,
- 0xcf, 0x59, 0x04, 0xfb, 0x57, 0xdc, 0xfb, 0x3a, 0x08, 0x8b, 0x2e, 0xcd, 0x01, 0x21, 0xf9, 0xc5,
- 0x0c, 0x3c, 0xdc, 0x55, 0x12, 0xa8, 0x0c, 0x83, 0xd7, 0x9e, 0xdd, 0x97, 0x18, 0x27, 0x9e, 0xda,
- 0xde, 0x2a, 0x5e, 0x69, 0x06, 0x24, 0x35, 0x47, 0xa2, 0xa9, 0xd5, 0x39, 0x91, 0xd4, 0xae, 0xee,
- 0x4d, 0x61, 0xc6, 0x23, 0xaf, 0x74, 0x1a, 0xcf, 0x70, 0xac, 0xfa, 0xa6, 0xdf, 0xc8, 0x7c, 0x68,
- 0x3c, 0x8a, 0xef, 0x5d, 0xf1, 0x49, 0x52, 0xaa, 0xe9, 0xc0, 0x85, 0xd4, 0xe1, 0x1c, 0xc7, 0x94,
- 0xf5, 0xcd, 0x85, 0x95, 0x39, 0xdb, 0xf2, 0xd6, 0xfc, 0x0a, 0x7a, 0xe5, 0x43, 0x10, 0xac, 0xc0,
- 0xd0, 0x37, 0x6b, 0xf6, 0x4a, 0xad, 0xc9, 0xa8, 0x52, 0xea, 0xe8, 0xc4, 0x89, 0x4d, 0xb4, 0x62,
- 0xcc, 0xf9, 0x53, 0x50, 0x21, 0x3c, 0xa2, 0xf2, 0xc7, 0x69, 0x72, 0xc2, 0x89, 0x15, 0x52, 0x2b,
- 0x30, 0x34, 0x6b, 0xd7, 0xd7, 0x03, 0x75, 0x79, 0x01, 0x0a, 0x4b, 0xba, 0xb3, 0x4a, 0x3d, 0x94,
- 0xc5, 0xe0, 0xb5, 0xb1, 0x71, 0x7e, 0xec, 0xcb, 0x88, 0x38, 0x62, 0x62, 0x44, 0xcc, 0x06, 0x05,
- 0x0f, 0x7f, 0x6b, 0xa2, 0x80, 0xfa, 0xad, 0x5e, 0x18, 0x12, 0x47, 0x94, 0x38, 0x9b, 0x93, 0x17,
- 0xc3, 0x43, 0x5f, 0x31, 0x7d, 0x05, 0xc7, 0x34, 0xc1, 0xf1, 0xd2, 0x10, 0x63, 0xf6, 0x07, 0x5b,
- 0xc5, 0xcc, 0xf6, 0x56, 0xb1, 0x47, 0xeb, 0x97, 0x36, 0x95, 0xe1, 0x7a, 0x23, 0x2d, 0xb0, 0xf2,
- 0xa1, 0x63, 0xac, 0x2c, 0x5f, 0x7f, 0x5e, 0x81, 0x3e, 0xd1, 0x06, 0xa1, 0x71, 0xe7, 0xc2, 0xb3,
- 0x8c, 0xc8, 0x51, 0x6b, 0xac, 0xb4, 0x5f, 0x8a, 0xbc, 0x04, 0x05, 0xbe, 0xb7, 0x17, 0x02, 0x38,
- 0x9b, 0x7e, 0x16, 0x12, 0x2b, 0x2e, 0xca, 0x90, 0x19, 0x80, 0x70, 0x5f, 0x1f, 0x9c, 0x2c, 0x0b,
- 0x0e, 0xc9, 0x1d, 0x7f, 0x8c, 0x8b, 0x54, 0x96, 0x3c, 0x07, 0x43, 0x4b, 0xd4, 0x69, 0x9a, 0x96,
- 0xde, 0xa8, 0x9a, 0x6f, 0xfb, 0x87, 0xcb, 0xb8, 0xf0, 0xba, 0xe6, 0xdb, 0xf2, 0xc8, 0x8d, 0xd0,
- 0x91, 0x4f, 0xa7, 0xed, 0x9b, 0xfb, 0xb0, 0x21, 0x8f, 0xee, 0xb8, 0xa1, 0x8c, 0xb5, 0x27, 0x65,
- 0x1b, 0xfd, 0x3a, 0x0c, 0x47, 0xb6, 0x4c, 0xe2, 0xf4, 0xf0, 0xe1, 0x24, 0x6b, 0x69, 0xff, 0x17,
- 0x63, 0x1b, 0xe5, 0xc0, 0x34, 0xb9, 0x62, 0x99, 0x9e, 0xa9, 0x37, 0x26, 0xed, 0x66, 0x53, 0xb7,
- 0x0c, 0x65, 0x20, 0xd4, 0x64, 0x93, 0x63, 0x6a, 0x75, 0x8e, 0x92, 0x35, 0x39, 0x5a, 0x88, 0x6d,
- 0xcb, 0x45, 0x1f, 0x6a, 0xb4, 0x6e, 0x3b, 0xcc, 0x16, 0xc0, 0xc3, 0x41, 0xb1, 0x2d, 0x77, 0x39,
- 0xae, 0xe6, 0xf8, 0x48, 0xd9, 0xd8, 0x8e, 0x17, 0x7c, 0x2d, 0xdf, 0x3f, 0x38, 0x3a, 0x14, 0x3f,
- 0xcf, 0x55, 0x7f, 0x21, 0x07, 0x83, 0x82, 0x94, 0x2d, 0xa5, 0x27, 0x0a, 0x7e, 0x10, 0x05, 0x4f,
- 0x55, 0xd4, 0xc2, 0x61, 0x29, 0xaa, 0xfa, 0x85, 0x6c, 0x30, 0x1b, 0x2d, 0x3a, 0xa6, 0x75, 0xb0,
- 0xd9, 0xe8, 0x12, 0xc0, 0xe4, 0x5a, 0xdb, 0x5a, 0xe7, 0xf7, 0x56, 0xd9, 0xf0, 0xde, 0xaa, 0x6e,
- 0x6a, 0x12, 0x86, 0x3c, 0x0c, 0xf9, 0x32, 0xe3, 0xcf, 0x7a, 0x66, 0x68, 0x62, 0xe0, 0x1d, 0xce,
- 0x29, 0xf3, 0x94, 0x86, 0x60, 0xb6, 0xb9, 0x9a, 0xd8, 0xf4, 0x28, 0x37, 0x67, 0x73, 0x7c, 0x73,
- 0xb5, 0xcc, 0x00, 0x1a, 0x87, 0x93, 0xeb, 0x30, 0x56, 0xa6, 0x0d, 0x7d, 0x73, 0xce, 0x6c, 0x34,
- 0x4c, 0x97, 0xd6, 0x6d, 0xcb, 0x70, 0x51, 0xc8, 0xa2, 0xba, 0xa6, 0xab, 0x25, 0x09, 0x88, 0x0a,
- 0x85, 0x85, 0x95, 0x15, 0x97, 0x7a, 0x28, 0xbe, 0xdc, 0x04, 0xb0, 0xc9, 0xd9, 0x46, 0x88, 0x26,
- 0x30, 0xea, 0xaf, 0x64, 0xd8, 0xee, 0xc5, 0x5d, 0xf7, 0xec, 0x56, 0xa0, 0xe5, 0x07, 0x12, 0xc9,
- 0x95, 0xd0, 0xae, 0xc8, 0xe2, 0xd7, 0x9e, 0x12, 0x5f, 0xdb, 0x27, 0x6c, 0x8b, 0xd0, 0xa2, 0x48,
- 0xfd, 0xaa, 0xdc, 0x0e, 0x5f, 0xa5, 0xfe, 0x45, 0x16, 0xce, 0x89, 0x16, 0x4f, 0x36, 0xcc, 0xd6,
- 0xb2, 0xad, 0x3b, 0x86, 0x46, 0xeb, 0xd4, 0xbc, 0x4b, 0x8f, 0xe7, 0xc0, 0x8b, 0x0e, 0x9d, 0xfc,
- 0x01, 0x86, 0xce, 0x35, 0xdc, 0x08, 0x32, 0xc9, 0xe0, 0x81, 0x2f, 0x37, 0x2a, 0x46, 0xb7, 0xb7,
- 0x8a, 0x43, 0x06, 0x07, 0xe3, 0x91, 0xbf, 0x26, 0x13, 0x31, 0x25, 0x99, 0xa5, 0xd6, 0xaa, 0xb7,
- 0x86, 0x4a, 0xd2, 0xcb, 0x95, 0xa4, 0x81, 0x10, 0x4d, 0x60, 0xd4, 0x7f, 0x99, 0x85, 0x33, 0x71,
- 0x91, 0x57, 0xa9, 0x65, 0x9c, 0xc8, 0xfb, 0xdd, 0x91, 0xf7, 0x77, 0x72, 0xf0, 0x90, 0x28, 0x53,
- 0x5d, 0xd3, 0x1d, 0x6a, 0x94, 0x4d, 0x87, 0xd6, 0x3d, 0xdb, 0xd9, 0x3c, 0xc6, 0x06, 0xd4, 0xe1,
- 0x89, 0xfd, 0x3a, 0x14, 0xc4, 0xf6, 0x9f, 0xaf, 0x33, 0x23, 0x41, 0x4b, 0x10, 0x9a, 0x58, 0xa1,
- 0xf8, 0xd1, 0x41, 0xac, 0xb3, 0x0a, 0xbb, 0xe9, 0xac, 0x8f, 0xc0, 0x70, 0x20, 0x7a, 0xdc, 0x88,
- 0xf6, 0x85, 0xd6, 0x96, 0xe1, 0x23, 0x70, 0x2f, 0xaa, 0x45, 0x09, 0xb1, 0x36, 0x1f, 0x50, 0x29,
- 0xa3, 0x35, 0x34, 0x2c, 0x6a, 0x0b, 0xca, 0x99, 0x86, 0x26, 0x13, 0xa9, 0x5b, 0x79, 0x38, 0x9f,
- 0xde, 0xed, 0x1a, 0xd5, 0x8d, 0x93, 0x5e, 0x7f, 0x5f, 0xf6, 0x3a, 0x79, 0x14, 0xf2, 0x8b, 0xba,
- 0xb7, 0x26, 0xee, 0xc1, 0xf1, 0x4e, 0x78, 0xc5, 0x6c, 0xd0, 0x5a, 0x4b, 0xf7, 0xd6, 0x34, 0x44,
- 0x49, 0x73, 0x06, 0x20, 0xc7, 0x94, 0x39, 0x43, 0x5a, 0xec, 0x07, 0x1f, 0xc9, 0x5c, 0xce, 0xa7,
- 0x2e, 0xf6, 0xdf, 0xca, 0x77, 0x9a, 0x57, 0xee, 0x38, 0xa6, 0x47, 0x4f, 0x34, 0xec, 0x44, 0xc3,
- 0x0e, 0xa8, 0x61, 0x7f, 0x94, 0x85, 0xe1, 0x60, 0xd3, 0xf4, 0x16, 0xad, 0x1f, 0xcd, 0x5a, 0x15,
- 0x6e, 0x65, 0x72, 0x07, 0xde, 0xca, 0x1c, 0x44, 0xa1, 0xd4, 0xe0, 0xc8, 0x93, 0x9b, 0x06, 0x28,
- 0x31, 0x7e, 0xe4, 0x19, 0x1c, 0x74, 0x3e, 0x0a, 0x7d, 0x73, 0xfa, 0x3d, 0xb3, 0xd9, 0x6e, 0x0a,
- 0x2b, 0x1d, 0xfd, 0xba, 0x9a, 0xfa, 0x3d, 0xcd, 0x87, 0xab, 0x7f, 0x3f, 0x03, 0x23, 0x42, 0xa8,
- 0x82, 0xf9, 0x81, 0xa4, 0x1a, 0x4a, 0x27, 0x7b, 0x60, 0xe9, 0xe4, 0xf6, 0x2f, 0x1d, 0xf5, 0xa7,
- 0x72, 0xa0, 0x4c, 0x9b, 0x0d, 0xba, 0xe4, 0xe8, 0x96, 0xbb, 0x42, 0x1d, 0xb1, 0x9d, 0x9e, 0x62,
- 0xac, 0x0e, 0xf4, 0x81, 0xd2, 0x94, 0x92, 0xdd, 0xd7, 0x94, 0xf2, 0x21, 0x18, 0x10, 0x8d, 0x09,
- 0x7c, 0x0a, 0x71, 0xd4, 0x38, 0x3e, 0x50, 0x0b, 0xf1, 0x8c, 0xb8, 0xd4, 0x6a, 0x39, 0xf6, 0x5d,
- 0xea, 0xf0, 0x5b, 0x2a, 0x41, 0xac, 0xfb, 0x40, 0x2d, 0xc4, 0x4b, 0x9c, 0xa9, 0x6f, 0x2f, 0xca,
- 0x9c, 0xa9, 0xa3, 0x85, 0x78, 0x72, 0x19, 0xfa, 0x67, 0xed, 0xba, 0x8e, 0x82, 0xe6, 0xd3, 0xca,
- 0xd0, 0xf6, 0x56, 0xb1, 0xbf, 0x21, 0x60, 0x5a, 0x80, 0x65, 0x94, 0x65, 0x7b, 0xc3, 0x6a, 0xd8,
- 0x3a, 0x77, 0x7e, 0xe9, 0xe7, 0x94, 0x86, 0x80, 0x69, 0x01, 0x96, 0x51, 0x32, 0x99, 0xa3, 0x53,
- 0x51, 0x7f, 0xc8, 0x73, 0x45, 0xc0, 0xb4, 0x00, 0xab, 0xfe, 0x4a, 0x9e, 0x69, 0xaf, 0x6b, 0xbe,
- 0x7d, 0xdf, 0xaf, 0x0b, 0xe1, 0x80, 0xe9, 0xdd, 0xc7, 0x80, 0xb9, 0x6f, 0x0e, 0xec, 0xd4, 0xbf,
- 0xec, 0x03, 0x10, 0xd2, 0x9f, 0x3a, 0xd9, 0x1c, 0x1e, 0x4c, 0x6b, 0xca, 0x30, 0x36, 0x65, 0xad,
- 0xe9, 0x56, 0x9d, 0x1a, 0xe1, 0xb1, 0x65, 0x01, 0x87, 0x36, 0xfa, 0xf4, 0x52, 0x81, 0x0c, 0xcf,
- 0x2d, 0xb5, 0x64, 0x01, 0xf2, 0x34, 0x0c, 0x56, 0x2c, 0x8f, 0x3a, 0x7a, 0xdd, 0x33, 0xef, 0x52,
- 0x31, 0x35, 0xe0, 0xcd, 0xb0, 0x19, 0x82, 0x35, 0x99, 0x86, 0x5c, 0x87, 0xa1, 0x45, 0xdd, 0xf1,
- 0xcc, 0xba, 0xd9, 0xd2, 0x2d, 0xcf, 0x55, 0xfa, 0x71, 0x46, 0x43, 0x0b, 0xa3, 0x25, 0xc1, 0xb5,
- 0x08, 0x15, 0xf9, 0x34, 0x0c, 0xe0, 0xd6, 0x14, 0x1d, 0xa7, 0x07, 0x76, 0xbc, 0x38, 0x7c, 0x2c,
- 0x74, 0x0f, 0xe4, 0xa7, 0xaf, 0x78, 0x03, 0x1c, 0xbf, 0x3b, 0x0c, 0x38, 0x92, 0x8f, 0x43, 0xdf,
- 0x94, 0x65, 0x20, 0x73, 0xd8, 0x91, 0xb9, 0x2a, 0x98, 0x9f, 0x0d, 0x99, 0xdb, 0xad, 0x18, 0x6f,
- 0x9f, 0x5d, 0xfa, 0x28, 0x1b, 0x7c, 0xf7, 0x46, 0xd9, 0xd0, 0xbb, 0x70, 0x2c, 0x3e, 0x7c, 0x58,
- 0xc7, 0xe2, 0x23, 0xfb, 0x3c, 0x16, 0x57, 0xdf, 0x86, 0xc1, 0x89, 0xc5, 0xe9, 0x60, 0xf4, 0x3e,
- 0x08, 0xb9, 0x45, 0xe1, 0xa9, 0x90, 0xe7, 0xf6, 0x4c, 0xcb, 0x34, 0x34, 0x06, 0x23, 0x57, 0xa0,
- 0x7f, 0x12, 0xdd, 0xdf, 0xc4, 0x2d, 0x62, 0x9e, 0xaf, 0x7f, 0x75, 0x84, 0xa1, 0x17, 0xac, 0x8f,
- 0x26, 0x8f, 0x43, 0xdf, 0xa2, 0x63, 0xaf, 0x3a, 0x7a, 0x53, 0xac, 0xc1, 0xe8, 0x2a, 0xd2, 0xe2,
- 0x20, 0xcd, 0xc7, 0xa9, 0x3f, 0x94, 0xf1, 0xcd, 0x76, 0x56, 0xa2, 0xda, 0xc6, 0xa3, 0x79, 0xac,
- 0xbb, 0x9f, 0x97, 0x70, 0x39, 0x48, 0xf3, 0x71, 0xe4, 0x0a, 0xf4, 0x4e, 0x39, 0x8e, 0xed, 0xc8,
- 0xce, 0xe6, 0x94, 0x01, 0xe4, 0xeb, 0x5e, 0xa4, 0x20, 0xcf, 0xc3, 0x20, 0x9f, 0x73, 0xf8, 0x89,
- 0x66, 0xae, 0xdb, 0x4d, 0xa9, 0x4c, 0xa9, 0x7e, 0x23, 0x27, 0xd9, 0x6c, 0x5c, 0xe2, 0xf7, 0xe1,
- 0xad, 0xc0, 0x33, 0x90, 0x9b, 0x58, 0x9c, 0x16, 0x13, 0xe0, 0x69, 0xbf, 0xa8, 0xa4, 0x2a, 0xb1,
- 0x72, 0x8c, 0x9a, 0x5c, 0x80, 0xfc, 0x22, 0x53, 0x9f, 0x02, 0xaa, 0x47, 0xff, 0xf6, 0x56, 0x31,
- 0xdf, 0x62, 0xfa, 0x83, 0x50, 0xc4, 0xb2, 0xcd, 0x0c, 0xdf, 0x31, 0x71, 0x6c, 0xb8, 0x8f, 0xb9,
- 0x00, 0xf9, 0x92, 0xb3, 0x7a, 0x57, 0xcc, 0x5a, 0x88, 0xd5, 0x9d, 0xd5, 0xbb, 0x1a, 0x42, 0xc9,
- 0x55, 0x00, 0x8d, 0x7a, 0x6d, 0xc7, 0xc2, 0x77, 0x20, 0x03, 0x78, 0xfe, 0x86, 0xb3, 0xa1, 0x83,
- 0xd0, 0x5a, 0xdd, 0x36, 0xa8, 0x26, 0x91, 0xa8, 0x3f, 0x17, 0x5e, 0xec, 0x94, 0x4d, 0x77, 0xfd,
- 0xa4, 0x0b, 0xf7, 0xd0, 0x85, 0xba, 0x38, 0xe2, 0x4c, 0x76, 0x52, 0x11, 0x7a, 0xa7, 0x1b, 0xfa,
- 0xaa, 0x8b, 0x7d, 0x28, 0x7c, 0xc9, 0x56, 0x18, 0x40, 0xe3, 0xf0, 0x58, 0x3f, 0xf5, 0xef, 0xdc,
- 0x4f, 0x3f, 0xda, 0x1b, 0x8c, 0xb6, 0x79, 0xea, 0x6d, 0xd8, 0xce, 0x49, 0x57, 0xed, 0xb6, 0xab,
- 0x2e, 0x41, 0x5f, 0xd5, 0xa9, 0x4b, 0x47, 0x17, 0xb8, 0x1f, 0x70, 0x9d, 0x3a, 0x3f, 0xb6, 0xf0,
- 0x91, 0x8c, 0xae, 0xec, 0x7a, 0x48, 0xd7, 0x17, 0xd2, 0x19, 0xae, 0x27, 0xe8, 0x04, 0x52, 0xd0,
- 0x2d, 0xda, 0x8e, 0x27, 0x3a, 0x2e, 0xa0, 0x6b, 0xd9, 0x8e, 0xa7, 0xf9, 0x48, 0xf2, 0x21, 0x80,
- 0xa5, 0xc9, 0x45, 0xdf, 0xd9, 0x7e, 0x20, 0xf4, 0x05, 0x14, 0x5e, 0xf6, 0x9a, 0x84, 0x26, 0x4b,
- 0x30, 0xb0, 0xd0, 0xa2, 0x0e, 0xdf, 0x0a, 0xf1, 0x97, 0x1d, 0x1f, 0x8c, 0x89, 0x56, 0xf4, 0xfb,
- 0xb8, 0xf8, 0x3f, 0x20, 0xe7, 0xeb, 0x8b, 0xed, 0xff, 0xd4, 0x42, 0x46, 0xe4, 0x79, 0x28, 0x94,
- 0xb8, 0x9d, 0x37, 0x88, 0x2c, 0x03, 0x91, 0xe1, 0x16, 0x94, 0xa3, 0xf8, 0x9e, 0x5d, 0xc7, 0xbf,
- 0x35, 0x41, 0xae, 0x5e, 0x81, 0xd1, 0x78, 0x35, 0x64, 0x10, 0xfa, 0x26, 0x17, 0xe6, 0xe7, 0xa7,
- 0x26, 0x97, 0x46, 0x7b, 0x48, 0x3f, 0xe4, 0xab, 0x53, 0xf3, 0xe5, 0xd1, 0x8c, 0xfa, 0x4b, 0xd2,
- 0x0c, 0xc2, 0x54, 0xeb, 0xe4, 0x6a, 0xf8, 0x40, 0xf7, 0x2d, 0xa3, 0x78, 0x1f, 0x8a, 0x27, 0x06,
- 0x4d, 0xd3, 0xf3, 0xa8, 0x21, 0x56, 0x09, 0xbc, 0x2f, 0xf4, 0xee, 0x69, 0x09, 0x3c, 0x79, 0x12,
- 0x86, 0x11, 0x26, 0xae, 0x08, 0xf9, 0xfe, 0x58, 0x14, 0x70, 0xee, 0x69, 0x51, 0xa4, 0xfa, 0xcd,
- 0xf0, 0x76, 0x78, 0x96, 0xea, 0xc7, 0xf5, 0x46, 0xf1, 0x3d, 0xd2, 0x5f, 0xea, 0xdf, 0xe4, 0xf9,
- 0x13, 0x10, 0xfe, 0x70, 0xef, 0x28, 0x44, 0x19, 0x1e, 0xe9, 0xe6, 0xf6, 0x70, 0xa4, 0xfb, 0x24,
- 0x14, 0xe6, 0xa8, 0xb7, 0x66, 0xfb, 0x8e, 0x5f, 0xe8, 0xa1, 0xd7, 0x44, 0x88, 0xec, 0xa1, 0xc7,
- 0x69, 0xc8, 0x3a, 0x10, 0xff, 0x55, 0x5e, 0xe0, 0x88, 0xed, 0x1f, 0x21, 0x9f, 0x4b, 0xec, 0x53,
- 0xaa, 0xf8, 0x24, 0x17, 0x7d, 0xec, 0xcf, 0x04, 0x8e, 0xde, 0x92, 0x27, 0xd6, 0x5f, 0x6f, 0x15,
- 0x0b, 0x9c, 0x46, 0x4b, 0x61, 0x4b, 0x5e, 0x87, 0x81, 0xb9, 0xe9, 0x92, 0x78, 0xa1, 0xc7, 0xbd,
- 0x22, 0x1e, 0x0c, 0xa4, 0xe8, 0x23, 0x02, 0x91, 0xe0, 0x7b, 0x9b, 0xe6, 0x8a, 0x9e, 0x7c, 0xa0,
- 0x17, 0x72, 0x61, 0xda, 0xc2, 0x5f, 0xee, 0x88, 0xd3, 0x85, 0x40, 0x5b, 0xa2, 0xef, 0x79, 0xe2,
- 0xb2, 0xe2, 0xd8, 0x98, 0xb6, 0xf4, 0x1f, 0x60, 0x74, 0x2f, 0xc0, 0x58, 0xa9, 0xd5, 0x6a, 0x98,
- 0xd4, 0x40, 0x7d, 0xd1, 0xda, 0x0d, 0xea, 0x0a, 0x97, 0x1f, 0x7c, 0x0c, 0xa2, 0x73, 0x64, 0x0d,
- 0xdf, 0x85, 0xd6, 0x9c, 0x76, 0xd4, 0x3f, 0x33, 0x59, 0x56, 0xfd, 0x91, 0x2c, 0x9c, 0x9d, 0x74,
- 0xa8, 0xee, 0xd1, 0xb9, 0xe9, 0x52, 0xa9, 0x8d, 0x3e, 0x72, 0x8d, 0x06, 0xb5, 0x56, 0x8f, 0x66,
- 0x58, 0x7f, 0x14, 0x46, 0x82, 0x06, 0x54, 0xeb, 0x76, 0x8b, 0xca, 0x0f, 0xab, 0xea, 0x3e, 0xa6,
- 0xe6, 0x32, 0x94, 0x16, 0x23, 0x25, 0x37, 0xe1, 0x74, 0x00, 0x29, 0x35, 0x1a, 0xf6, 0x86, 0x46,
- 0xdb, 0x2e, 0x77, 0x8c, 0xed, 0xe7, 0x8e, 0xb1, 0x21, 0x07, 0x9d, 0xe1, 0x6b, 0x0e, 0x23, 0xd0,
- 0xd2, 0x4a, 0xa9, 0x5f, 0xcd, 0xc1, 0xb9, 0xdb, 0x7a, 0xc3, 0x34, 0x42, 0xd1, 0x68, 0xd4, 0x6d,
- 0xd9, 0x96, 0x4b, 0x8f, 0xd1, 0x28, 0x8d, 0x0c, 0x85, 0xfc, 0xa1, 0x0c, 0x85, 0x64, 0x17, 0xf5,
- 0x1e, 0xb8, 0x8b, 0x0a, 0xfb, 0xea, 0xa2, 0x7f, 0x91, 0x81, 0x51, 0xdf, 0xf1, 0x5f, 0x7e, 0x4d,
- 0x2d, 0x79, 0xa5, 0xe3, 0x11, 0x62, 0xcc, 0x0f, 0x1a, 0xf1, 0xa4, 0x0a, 0x7d, 0x53, 0xf7, 0x5a,
- 0xa6, 0x43, 0xdd, 0x5d, 0x38, 0x71, 0x3f, 0x2c, 0x8e, 0x4b, 0xc6, 0x28, 0x2f, 0x92, 0x38, 0x29,
- 0xe1, 0x60, 0x7c, 0xce, 0xc7, 0x9f, 0x3e, 0x4c, 0xf8, 0x4f, 0xc4, 0xf9, 0x73, 0x3e, 0xf1, 0x44,
- 0x22, 0xf2, 0x3e, 0x33, 0x24, 0x25, 0x8f, 0x41, 0x6e, 0x69, 0x69, 0x56, 0xcc, 0xa4, 0xf8, 0x34,
- 0xdf, 0xf3, 0xe4, 0xf7, 0x8a, 0x0c, 0xab, 0xfe, 0x69, 0x16, 0x80, 0xa9, 0x02, 0x1f, 0xae, 0x47,
- 0xa2, 0x84, 0x13, 0xd0, 0xef, 0x0b, 0x5c, 0xa8, 0x61, 0xe0, 0xb5, 0x1f, 0xef, 0x88, 0x78, 0xdd,
- 0xc1, 0x0b, 0x8d, 0xa2, 0xef, 0x48, 0xce, 0xef, 0x01, 0x70, 0x67, 0x83, 0x8e, 0xe4, 0xbe, 0xfb,
- 0xf8, 0x87, 0x60, 0x40, 0xcc, 0x78, 0x76, 0xe4, 0xfc, 0xbf, 0xee, 0x03, 0xb5, 0x10, 0x1f, 0x9b,
- 0x5a, 0x0b, 0x07, 0x58, 0x88, 0x7d, 0xf1, 0xf2, 0x5e, 0x39, 0x11, 0xef, 0x21, 0x8b, 0xf7, 0x4b,
- 0x42, 0xbc, 0xfc, 0x05, 0xcf, 0xb1, 0x15, 0xef, 0xa1, 0x9d, 0x7d, 0xab, 0x7f, 0x94, 0x01, 0xc2,
- 0x9a, 0xb5, 0xa8, 0xbb, 0xee, 0x86, 0xed, 0x18, 0xdc, 0x39, 0xfd, 0x48, 0x04, 0x73, 0x78, 0xf7,
- 0x95, 0xdf, 0xe8, 0x87, 0xd3, 0x11, 0xc7, 0xdf, 0x63, 0x3e, 0x59, 0x5d, 0x89, 0x8e, 0xa6, 0x6e,
- 0xaf, 0x5e, 0x3e, 0x20, 0x5f, 0x88, 0xf6, 0x46, 0x1e, 0xa0, 0x49, 0x37, 0xa1, 0x4f, 0xc1, 0x90,
- 0xf8, 0xc1, 0x56, 0x68, 0xff, 0xa6, 0x0b, 0x47, 0xa9, 0xcb, 0x00, 0x5a, 0x04, 0x4d, 0x9e, 0x85,
- 0x01, 0x36, 0x60, 0x56, 0x31, 0x8a, 0x47, 0x5f, 0xf8, 0xa2, 0xc4, 0xf0, 0x81, 0xf2, 0x7a, 0x12,
- 0x50, 0x4a, 0xef, 0x88, 0xfa, 0x77, 0xf1, 0x8e, 0xe8, 0x4d, 0x18, 0x2c, 0x59, 0x96, 0xed, 0xe1,
- 0x26, 0xdd, 0x15, 0x57, 0x13, 0x1d, 0xad, 0xf2, 0xc7, 0xf0, 0x71, 0x7c, 0x48, 0x9f, 0x6a, 0x96,
- 0xcb, 0x0c, 0xc9, 0x35, 0xff, 0x55, 0x0c, 0x75, 0x84, 0x57, 0x39, 0x5e, 0xcf, 0x38, 0x02, 0x96,
- 0x7c, 0x14, 0x83, 0x9d, 0x37, 0xbc, 0xe8, 0xd8, 0x2d, 0xdb, 0xa5, 0x06, 0x17, 0xd4, 0x60, 0x18,
- 0x6a, 0xa0, 0x25, 0x10, 0xf8, 0x8e, 0x2d, 0x12, 0x51, 0x23, 0x52, 0x84, 0xac, 0xc0, 0x19, 0xff,
- 0xa2, 0x38, 0x78, 0x31, 0x58, 0x29, 0xbb, 0xca, 0x10, 0xbe, 0x4a, 0x22, 0x71, 0x65, 0xa8, 0x94,
- 0x27, 0x2e, 0xfa, 0xd7, 0x22, 0xfe, 0x93, 0xc3, 0x9a, 0x69, 0xc8, 0x5d, 0x9d, 0xca, 0x8f, 0x7c,
- 0x17, 0x0c, 0xce, 0xe9, 0xf7, 0xca, 0x6d, 0x71, 0xf6, 0x32, 0xbc, 0xfb, 0xdb, 0x97, 0xa6, 0x7e,
- 0xaf, 0x66, 0x88, 0x72, 0x31, 0x9b, 0x42, 0x66, 0x49, 0x6a, 0x70, 0x76, 0xd1, 0xb1, 0x9b, 0xb6,
- 0x47, 0x8d, 0xd8, 0xe3, 0xbb, 0x53, 0xe1, 0x6b, 0xdd, 0x96, 0xa0, 0xa8, 0x75, 0x79, 0x85, 0xd7,
- 0x81, 0x0d, 0x69, 0xc2, 0xa9, 0x92, 0xeb, 0xb6, 0x9b, 0x34, 0xbc, 0xa1, 0x1a, 0xdd, 0xf1, 0x33,
- 0x3e, 0x28, 0xbc, 0x96, 0x1f, 0xd2, 0xb1, 0x28, 0xbf, 0xa0, 0xaa, 0x79, 0xa6, 0x5c, 0x23, 0x7e,
- 0x4b, 0x9c, 0xf7, 0x6b, 0xf9, 0xfe, 0x91, 0xd1, 0x53, 0xda, 0xb9, 0x64, 0x63, 0x96, 0x4c, 0xaf,
- 0x41, 0xd5, 0xaf, 0x67, 0x00, 0x42, 0x01, 0x93, 0xa7, 0xa2, 0xa1, 0x82, 0x32, 0xe1, 0x45, 0x87,
- 0x88, 0x5e, 0x10, 0x89, 0x0d, 0x44, 0x2e, 0x40, 0x1e, 0x23, 0x5c, 0x64, 0xc3, 0x83, 0xd5, 0x75,
- 0xd3, 0x32, 0x34, 0x84, 0x32, 0xac, 0xf4, 0x14, 0x1d, 0xb1, 0x78, 0xa9, 0xcf, 0xad, 0xc2, 0x32,
- 0x9c, 0xaa, 0xb6, 0x97, 0xfd, 0xba, 0xa5, 0x77, 0x75, 0x18, 0x68, 0xc3, 0x6d, 0x2f, 0x07, 0x8f,
- 0x51, 0x23, 0x61, 0x4c, 0xa2, 0x45, 0xd4, 0x5f, 0xc9, 0xc4, 0x66, 0xc1, 0x23, 0x5c, 0xf4, 0x3e,
- 0x90, 0xf4, 0xd3, 0x48, 0x4e, 0x4b, 0xea, 0xff, 0x94, 0x85, 0xc1, 0x45, 0xdb, 0xf1, 0x44, 0xc8,
- 0x90, 0xe3, 0xbd, 0x0a, 0x49, 0x7b, 0xa5, 0xfc, 0x1e, 0xf6, 0x4a, 0x17, 0x20, 0x2f, 0xb9, 0x28,
- 0xf3, 0x7b, 0x11, 0xc3, 0x70, 0x34, 0x84, 0xaa, 0xdf, 0x9d, 0x05, 0xf8, 0xf8, 0xd3, 0x4f, 0xdf,
- 0xc7, 0x02, 0x52, 0x7f, 0x32, 0x03, 0xa7, 0xc4, 0x45, 0x9d, 0x14, 0x74, 0xab, 0xcf, 0xbf, 0x62,
- 0x95, 0xc7, 0x25, 0x07, 0x69, 0x3e, 0x8e, 0x2d, 0x01, 0x53, 0xf7, 0x4c, 0x0f, 0xef, 0x2a, 0xa4,
- 0xa8, 0x5b, 0x54, 0xc0, 0xe4, 0x25, 0xc0, 0xa7, 0x23, 0x4f, 0xf9, 0x57, 0x90, 0xb9, 0x70, 0xdd,
- 0x63, 0x05, 0xa6, 0x52, 0xaf, 0x21, 0xd5, 0x5f, 0xcb, 0x43, 0x7e, 0xea, 0x1e, 0xad, 0x1f, 0xf3,
- 0xae, 0x91, 0x0e, 0x36, 0xf3, 0x07, 0x3c, 0xd8, 0xdc, 0x8f, 0x4f, 0xc5, 0x2b, 0x61, 0x7f, 0x16,
- 0xa2, 0xd5, 0xc7, 0x7a, 0x3e, 0x5e, 0xbd, 0xdf, 0xd3, 0xc7, 0xcf, 0x25, 0xe7, 0xff, 0xcb, 0x41,
- 0xae, 0x3a, 0xb9, 0x78, 0xa2, 0x37, 0x47, 0xaa, 0x37, 0xdd, 0xef, 0xac, 0xd5, 0xe0, 0x1a, 0xaa,
- 0x3f, 0xf4, 0x12, 0x8d, 0xdd, 0x38, 0x7d, 0x27, 0x07, 0x23, 0xd5, 0xe9, 0xa5, 0x45, 0xe9, 0x24,
- 0xf8, 0x26, 0xf7, 0xe4, 0x43, 0x9f, 0x32, 0xde, 0xa5, 0x17, 0x12, 0xf6, 0xcc, 0xad, 0x8a, 0xe5,
- 0x3d, 0x77, 0xfd, 0xb6, 0xde, 0x68, 0x53, 0x3c, 0x7a, 0xe1, 0x7e, 0xbf, 0xae, 0xf9, 0x36, 0xfd,
- 0x2a, 0x3e, 0xfc, 0xf7, 0x19, 0x90, 0x8f, 0x42, 0xee, 0x96, 0xf0, 0xc8, 0xe8, 0xc4, 0xe7, 0x99,
- 0x6b, 0x9c, 0x0f, 0x9b, 0x04, 0x73, 0x6d, 0xd3, 0x40, 0x0e, 0xac, 0x14, 0x2b, 0x7c, 0x43, 0x2c,
- 0xc0, 0xbb, 0x2a, 0xbc, 0xea, 0x17, 0xbe, 0x51, 0x29, 0x93, 0x2a, 0x0c, 0x2e, 0x52, 0xa7, 0x69,
- 0x62, 0x47, 0xf9, 0x73, 0x76, 0x77, 0x26, 0x6c, 0xa7, 0x32, 0xd8, 0x0a, 0x0b, 0x21, 0x33, 0x99,
- 0x0b, 0x79, 0x03, 0x80, 0xdb, 0x28, 0xbb, 0x0c, 0xe4, 0xf8, 0x30, 0xda, 0xfd, 0xdc, 0xb4, 0x4c,
- 0xb1, 0xf1, 0x24, 0x66, 0x64, 0x1d, 0x46, 0xe7, 0x6c, 0xc3, 0x5c, 0x31, 0xb9, 0xeb, 0x25, 0x56,
- 0x50, 0xd8, 0xd9, 0xe1, 0x89, 0x99, 0x92, 0x4d, 0xa9, 0x5c, 0x5a, 0x35, 0x09, 0xc6, 0xea, 0xff,
- 0xdd, 0x0b, 0x79, 0xd6, 0xed, 0x27, 0xe3, 0xf7, 0x20, 0xe3, 0xb7, 0x04, 0xa3, 0x77, 0x6c, 0x67,
- 0xdd, 0xb4, 0x56, 0x03, 0xaf, 0x78, 0xb1, 0x37, 0x45, 0x4f, 0x9e, 0x0d, 0x8e, 0xab, 0x05, 0x0e,
- 0xf4, 0x5a, 0x82, 0x7c, 0x87, 0x11, 0xfc, 0x02, 0x00, 0x7f, 0xeb, 0x8e, 0x34, 0xfd, 0x61, 0xb0,
- 0x0a, 0xfe, 0x12, 0x1e, 0x1d, 0xed, 0xe5, 0x60, 0x15, 0x21, 0x31, 0xdb, 0x84, 0x73, 0x5f, 0x88,
- 0x01, 0xf4, 0xbb, 0xc7, 0x4d, 0x38, 0xfa, 0x42, 0xc8, 0x46, 0x00, 0xf7, 0x8a, 0x58, 0x04, 0x90,
- 0xee, 0x97, 0x20, 0x26, 0x88, 0xc8, 0xe4, 0x20, 0xc2, 0xc3, 0xa5, 0x5c, 0x2f, 0x69, 0x12, 0x0f,
- 0xf2, 0x5c, 0xec, 0x02, 0x9c, 0x44, 0xb8, 0x75, 0xbc, 0xff, 0x0e, 0x1d, 0xa8, 0x86, 0x76, 0x72,
- 0xa0, 0x52, 0xbf, 0x90, 0x85, 0x81, 0x6a, 0x7b, 0xd9, 0xdd, 0x74, 0x3d, 0xda, 0x3c, 0xe6, 0x6a,
- 0xec, 0x6f, 0xaf, 0xf2, 0xa9, 0xdb, 0xab, 0xc7, 0x7c, 0xa1, 0x48, 0xe7, 0x8e, 0x81, 0x49, 0xe7,
- 0x8b, 0xe3, 0x7f, 0xcf, 0xc2, 0x28, 0xbf, 0x38, 0x2b, 0x9b, 0x6e, 0xfd, 0x10, 0x9c, 0xf9, 0x8f,
- 0x5e, 0x2a, 0x07, 0xbb, 0x6c, 0xde, 0xc5, 0x13, 0x09, 0xf5, 0xb3, 0x59, 0x18, 0x2c, 0xb5, 0xbd,
- 0xb5, 0x92, 0x87, 0xba, 0x75, 0x5f, 0xee, 0x4f, 0x7e, 0x37, 0x03, 0xa7, 0x58, 0x43, 0x96, 0xec,
- 0x75, 0x6a, 0x1d, 0xc2, 0xc1, 0xa3, 0x7c, 0x80, 0x98, 0xdd, 0xe7, 0x01, 0xa2, 0x2f, 0xcb, 0xdc,
- 0xde, 0x64, 0x89, 0xc7, 0xe5, 0x9a, 0xdd, 0xa0, 0xc7, 0xfb, 0x33, 0x0e, 0xf1, 0xb8, 0xdc, 0x17,
- 0xc8, 0x21, 0x5c, 0xcf, 0xbc, 0xbf, 0x04, 0x72, 0x08, 0x67, 0x4b, 0xef, 0x0f, 0x81, 0x7c, 0x23,
- 0x03, 0x03, 0x13, 0xb6, 0x77, 0xcc, 0x07, 0xbe, 0xf8, 0x8a, 0xe3, 0xad, 0xe6, 0xfe, 0x57, 0x1c,
- 0x6f, 0xdd, 0x54, 0x7f, 0x2c, 0x0b, 0x67, 0x44, 0x90, 0x6e, 0x71, 0xfe, 0x70, 0x32, 0x1d, 0x8b,
- 0xc1, 0x96, 0x14, 0xcd, 0xc9, 0x3c, 0x24, 0x44, 0xf3, 0xf3, 0x39, 0x38, 0x83, 0xa1, 0x4c, 0xd9,
- 0xb6, 0xec, 0x7d, 0x60, 0x8b, 0x90, 0x7a, 0xf4, 0x12, 0x74, 0x2e, 0xe5, 0x12, 0xf4, 0xaf, 0xb7,
- 0x8a, 0xcf, 0xad, 0x9a, 0xde, 0x5a, 0x7b, 0x79, 0xbc, 0x6e, 0x37, 0xaf, 0xae, 0x3a, 0xfa, 0x5d,
- 0x93, 0x5f, 0xff, 0xe9, 0x8d, 0xab, 0x41, 0xbe, 0x0b, 0xbd, 0x65, 0x8a, 0x4c, 0x18, 0x55, 0xdc,
- 0xeb, 0x30, 0xae, 0xfe, 0xf5, 0xa9, 0x0b, 0xf0, 0x9a, 0x6d, 0x5a, 0xc2, 0xa7, 0x90, 0x1b, 0xba,
- 0x55, 0xb6, 0x3f, 0x7c, 0xcb, 0x36, 0xad, 0x5a, 0xdc, 0xb1, 0x70, 0xaf, 0xf5, 0x85, 0xac, 0x35,
- 0xa9, 0x1a, 0xf5, 0xef, 0x65, 0xe0, 0xc1, 0xa8, 0x16, 0xbf, 0x1f, 0x6c, 0xc7, 0x1f, 0xcf, 0xc2,
- 0x03, 0x37, 0x50, 0x38, 0x81, 0x23, 0xc7, 0xc9, 0xbc, 0x25, 0x06, 0x67, 0x8a, 0x6c, 0x4e, 0x2c,
- 0xca, 0xce, 0xb2, 0x39, 0x99, 0xd4, 0x85, 0x6c, 0x7e, 0x3f, 0x03, 0xa7, 0x17, 0x2a, 0xe5, 0xc9,
- 0xf7, 0xc9, 0x88, 0x4a, 0x7e, 0xcf, 0x31, 0x37, 0x38, 0x13, 0xdf, 0x73, 0xcc, 0x4d, 0x4f, 0xf6,
- 0x3d, 0xd5, 0xd2, 0xdc, 0xec, 0xfb, 0x49, 0xdf, 0x22, 0xdf, 0xf3, 0x3e, 0xd0, 0xb7, 0xc8, 0xf7,
- 0x1c, 0x73, 0x7d, 0xfb, 0x7f, 0x0b, 0x30, 0x78, 0xb3, 0xbd, 0x4c, 0x85, 0x4b, 0xc8, 0x7d, 0x7d,
- 0xde, 0x7a, 0x0d, 0x06, 0x85, 0x18, 0xf0, 0xae, 0x42, 0x0a, 0x59, 0x27, 0x42, 0x90, 0xf0, 0xa8,
- 0x40, 0x32, 0x11, 0xb9, 0x00, 0xf9, 0xdb, 0xd4, 0x59, 0x96, 0x5f, 0x73, 0xde, 0xa5, 0xce, 0xb2,
- 0x86, 0x50, 0x32, 0x1b, 0x3a, 0xaa, 0x97, 0x16, 0x2b, 0x98, 0xbe, 0x44, 0x5c, 0x93, 0x60, 0x3e,
- 0x96, 0xc0, 0xdb, 0x4c, 0x6f, 0x99, 0x3c, 0xf1, 0x89, 0xfc, 0x92, 0x3c, 0x5e, 0x92, 0xcc, 0xc3,
- 0x98, 0xec, 0x6e, 0xc4, 0x73, 0x77, 0xf4, 0xa7, 0xb0, 0x4b, 0xcb, 0xda, 0x91, 0x2c, 0x4a, 0x5e,
- 0x81, 0x21, 0x1f, 0x88, 0x8e, 0x53, 0x03, 0x61, 0xc0, 0xf8, 0x80, 0x55, 0x2c, 0x31, 0x50, 0xa4,
- 0x80, 0xcc, 0x00, 0x0f, 0xff, 0x21, 0x85, 0x41, 0xcc, 0x11, 0x2d, 0x52, 0x80, 0x3c, 0x8b, 0x0c,
- 0xf0, 0x71, 0x05, 0xba, 0x88, 0x0c, 0xe2, 0x53, 0x47, 0x74, 0x84, 0x77, 0x04, 0x9c, 0x3f, 0x68,
- 0x8d, 0x90, 0x91, 0x05, 0x80, 0xf0, 0x2a, 0x5f, 0x84, 0x0d, 0xd8, 0xb3, 0x93, 0x81, 0xc4, 0x42,
- 0xbe, 0x84, 0x1b, 0xde, 0xcf, 0x25, 0x9c, 0xfa, 0x87, 0x59, 0x18, 0x2c, 0xb5, 0x5a, 0xc1, 0x50,
- 0x78, 0x0a, 0x0a, 0xa5, 0x56, 0xeb, 0x96, 0x56, 0x91, 0x03, 0x88, 0xeb, 0xad, 0x56, 0xad, 0xed,
- 0x98, 0xb2, 0x27, 0x26, 0x27, 0x22, 0x93, 0x30, 0x5c, 0x6a, 0xb5, 0x16, 0xdb, 0xcb, 0x0d, 0xb3,
- 0x2e, 0xe5, 0x23, 0xe2, 0xa9, 0xd3, 0x5a, 0xad, 0x5a, 0x0b, 0x31, 0xf1, 0xa4, 0x54, 0xd1, 0x32,
- 0xe4, 0x4d, 0x0c, 0xb6, 0x23, 0xd2, 0xe1, 0xf0, 0x84, 0x1b, 0x6a, 0x10, 0x3a, 0x3c, 0x6c, 0xdb,
- 0x78, 0x40, 0xc4, 0x43, 0xac, 0x5f, 0xf0, 0x03, 0xd5, 0xb3, 0x8a, 0x12, 0x69, 0x6f, 0x42, 0x96,
- 0xe4, 0xc3, 0xd0, 0x57, 0x6a, 0xb5, 0xa4, 0x5b, 0x1e, 0x74, 0xe5, 0x61, 0xa5, 0x62, 0x7d, 0xec,
- 0x93, 0x9d, 0x7f, 0x09, 0x46, 0xa2, 0x95, 0xed, 0x29, 0x44, 0xfb, 0x5f, 0x65, 0xf0, 0x83, 0x8e,
- 0xb9, 0x27, 0xf1, 0x33, 0x90, 0x2b, 0xb5, 0x5a, 0x62, 0x3e, 0x3a, 0x9d, 0xd2, 0x1f, 0xf1, 0x87,
- 0xc7, 0xa5, 0x56, 0xcb, 0xff, 0xf4, 0x63, 0xfe, 0x24, 0x61, 0x5f, 0x9f, 0xfe, 0x0d, 0xfe, 0xe9,
- 0xc7, 0xfb, 0xb9, 0x80, 0xfa, 0x6b, 0x39, 0x38, 0x55, 0x6a, 0xb5, 0x4e, 0x42, 0xbb, 0x1f, 0xd6,
- 0xf3, 0xe6, 0xa7, 0x01, 0xa4, 0xe9, 0xb1, 0x2f, 0x78, 0x30, 0x35, 0x28, 0x4d, 0x8d, 0x4a, 0x46,
- 0x93, 0x88, 0x7c, 0xf5, 0xeb, 0xdf, 0x93, 0xfa, 0x7d, 0x36, 0x87, 0x53, 0xf1, 0x71, 0x0f, 0xd5,
- 0xf4, 0x5e, 0xe9, 0x36, 0xd1, 0x07, 0x85, 0x3d, 0xf5, 0xc1, 0xef, 0x44, 0x06, 0x0f, 0x86, 0x0a,
- 0x3f, 0xe9, 0x85, 0xde, 0x03, 0x99, 0xc5, 0x23, 0xb2, 0x30, 0x45, 0xfc, 0x18, 0x3f, 0x7d, 0x91,
- 0x88, 0x66, 0x54, 0x67, 0xa8, 0x9a, 0x69, 0x68, 0x31, 0x5a, 0xbf, 0x0f, 0xfb, 0xf6, 0xd4, 0x87,
- 0x5b, 0x59, 0x7c, 0xb1, 0x1c, 0x44, 0x43, 0x3a, 0xf8, 0xee, 0xe2, 0x2a, 0x00, 0xbf, 0xef, 0x0f,
- 0x9c, 0x89, 0x87, 0x79, 0xe0, 0x13, 0x9e, 0xd5, 0x48, 0x04, 0x3e, 0x09, 0x49, 0x02, 0xbf, 0xa4,
- 0x5c, 0xaa, 0x5f, 0xd2, 0x15, 0xe8, 0xd7, 0xf4, 0x8d, 0xd7, 0xdb, 0xd4, 0xd9, 0x14, 0xe6, 0x0c,
- 0x0f, 0x36, 0xa8, 0x6f, 0xd4, 0x3e, 0xc3, 0x80, 0x5a, 0x80, 0x26, 0x6a, 0xf0, 0xe4, 0x5d, 0xf2,
- 0xc3, 0xe0, 0x27, 0xd3, 0xc1, 0x43, 0xf7, 0xfd, 0x28, 0x3a, 0x79, 0x11, 0x72, 0xa5, 0x3b, 0x55,
- 0x21, 0xd9, 0xa0, 0x6b, 0x4b, 0x77, 0xaa, 0x42, 0x5e, 0x1d, 0xcb, 0xde, 0xa9, 0xaa, 0x9f, 0xcd,
- 0x02, 0x49, 0x52, 0x92, 0xe7, 0x60, 0x00, 0xa1, 0xab, 0x4c, 0x67, 0xe4, 0x74, 0x98, 0x1b, 0x6e,
- 0xcd, 0x41, 0x68, 0xc4, 0xb8, 0xf3, 0x49, 0xc9, 0x0b, 0x98, 0xf9, 0x57, 0x24, 0x64, 0x8b, 0xa4,
- 0xc3, 0xdc, 0x70, 0xfd, 0x5c, 0xb9, 0xb1, 0xc4, 0xbf, 0x82, 0x18, 0xed, 0xc2, 0x3b, 0xd5, 0x19,
- 0xdb, 0xf5, 0x84, 0xa8, 0xb9, 0x5d, 0xb8, 0xe1, 0x62, 0x1e, 0xd6, 0x88, 0x5d, 0xc8, 0xc9, 0x30,
- 0x97, 0xd4, 0x9d, 0x2a, 0x7f, 0x1c, 0x62, 0x68, 0x76, 0xc3, 0x37, 0x28, 0x79, 0x2e, 0xa9, 0x0d,
- 0xb7, 0xc6, 0x1f, 0x96, 0x18, 0x98, 0x72, 0x38, 0x92, 0x4b, 0x2a, 0x52, 0x4a, 0xfd, 0x62, 0x3f,
- 0x8c, 0x96, 0x75, 0x4f, 0x5f, 0xd6, 0x5d, 0x2a, 0xed, 0xa6, 0x4f, 0xf9, 0x30, 0xff, 0x73, 0x24,
- 0x39, 0x18, 0xcb, 0x29, 0x5f, 0x13, 0x2f, 0x40, 0x3e, 0x1a, 0xf2, 0x0d, 0x32, 0x7d, 0xca, 0xa9,
- 0xc3, 0x96, 0x6b, 0x2d, 0x01, 0xd6, 0x12, 0x84, 0xe4, 0x49, 0x18, 0xf4, 0x61, 0x6c, 0x03, 0x90,
- 0x0b, 0x75, 0xc6, 0x58, 0x66, 0xf6, 0xbf, 0x26, 0xa3, 0xc9, 0x0b, 0x30, 0xe4, 0xff, 0x94, 0x4c,
- 0x6b, 0x9e, 0x07, 0x6d, 0x39, 0xb1, 0x7b, 0x92, 0x49, 0xe5, 0xa2, 0x38, 0xbf, 0xf5, 0x46, 0x8a,
- 0xc6, 0x52, 0x8d, 0x45, 0x48, 0xc9, 0x67, 0x60, 0xc4, 0xff, 0x2d, 0x36, 0x0c, 0x3c, 0x2b, 0xdb,
- 0x93, 0x41, 0x46, 0xe3, 0x98, 0x58, 0xc7, 0xa3, 0xe4, 0x7c, 0xeb, 0xf0, 0x90, 0x9f, 0x3d, 0xcb,
- 0x58, 0x4e, 0xee, 0x1c, 0x62, 0x15, 0x90, 0x0a, 0x8c, 0xf9, 0x90, 0x50, 0x43, 0xfb, 0xc2, 0x1d,
- 0xa3, 0xb1, 0x5c, 0x4b, 0x55, 0xd2, 0x64, 0x29, 0xd2, 0x80, 0x0b, 0x11, 0xa0, 0xe1, 0xae, 0x99,
- 0x2b, 0x9e, 0xd8, 0xee, 0x89, 0xc8, 0xbf, 0x22, 0x5d, 0x62, 0xc0, 0x95, 0xd3, 0xf8, 0x79, 0x4f,
- 0xa3, 0x39, 0x99, 0xba, 0x72, 0x23, 0x55, 0x38, 0xe3, 0xe3, 0x6f, 0x4c, 0x2e, 0x2e, 0x3a, 0xf6,
- 0x5b, 0xb4, 0xee, 0x55, 0xca, 0x62, 0xbb, 0x8c, 0x11, 0xe1, 0x8c, 0xe5, 0xda, 0x6a, 0xbd, 0xc5,
- 0x94, 0x82, 0xe1, 0xa2, 0xcc, 0x53, 0x0b, 0x93, 0xdb, 0xf0, 0x80, 0x04, 0xaf, 0x58, 0xae, 0xa7,
- 0x5b, 0x75, 0x5a, 0x29, 0x8b, 0x3d, 0x34, 0xee, 0xe7, 0x05, 0x57, 0x53, 0x20, 0xa3, 0x6c, 0xd3,
- 0x8b, 0x93, 0x97, 0x60, 0xd8, 0x47, 0xf0, 0xbb, 0xbb, 0x41, 0xbc, 0xbb, 0xc3, 0x21, 0x69, 0x2c,
- 0xd7, 0xe2, 0x6f, 0x18, 0xa3, 0xc4, 0xb2, 0x46, 0x61, 0x42, 0xf9, 0xa1, 0x88, 0x46, 0x79, 0x9b,
- 0xad, 0x54, 0x65, 0xc4, 0x24, 0xf3, 0xaf, 0x84, 0x1a, 0xb5, 0xe0, 0x98, 0xab, 0x26, 0xdf, 0x49,
- 0xfb, 0xcf, 0x16, 0x97, 0x6b, 0x36, 0x02, 0xd3, 0xf4, 0x83, 0x93, 0x9f, 0x2f, 0xc1, 0xe9, 0x14,
- 0x1d, 0xdb, 0xd3, 0x8e, 0xf1, 0x0b, 0xd9, 0xb0, 0x11, 0xc7, 0x7c, 0xdb, 0x38, 0x01, 0xfd, 0xfe,
- 0x97, 0x08, 0xe3, 0x41, 0xe9, 0x34, 0x34, 0xe3, 0x3c, 0x7c, 0x7c, 0x44, 0x1c, 0xc7, 0x7c, 0x2b,
- 0x79, 0x18, 0xe2, 0x78, 0x27, 0x13, 0x8a, 0xe3, 0x98, 0x6f, 0x2f, 0x7f, 0x3f, 0x17, 0xce, 0x49,
- 0x27, 0x7b, 0xcc, 0xc3, 0x32, 0x93, 0x43, 0xef, 0xd3, 0xc2, 0x1e, 0x9e, 0x0f, 0xca, 0xaa, 0xd9,
- 0xb7, 0x4f, 0xd5, 0xfc, 0xe3, 0x64, 0x7f, 0x72, 0xd3, 0xf3, 0x58, 0xf6, 0xe7, 0x21, 0x0c, 0x56,
- 0x72, 0x2d, 0x5c, 0xc7, 0xb8, 0x8d, 0xde, 0x2b, 0x05, 0xd6, 0x5b, 0x16, 0x26, 0x7a, 0x94, 0x84,
- 0x7c, 0x12, 0xce, 0x45, 0x00, 0x8b, 0xba, 0xa3, 0x37, 0xa9, 0x17, 0xe6, 0xf9, 0xc3, 0x50, 0x49,
- 0x7e, 0xe9, 0x5a, 0x2b, 0x40, 0xcb, 0xb9, 0x03, 0x3b, 0x70, 0x90, 0x94, 0xa3, 0x6f, 0x0f, 0xae,
- 0xc9, 0x7f, 0x92, 0x07, 0x25, 0x30, 0x10, 0x83, 0x47, 0x38, 0x47, 0x38, 0x19, 0xbf, 0x27, 0x3a,
- 0xd7, 0x84, 0xb1, 0x50, 0x18, 0xd5, 0x76, 0xb3, 0xa9, 0x63, 0x07, 0x33, 0x03, 0xb4, 0x18, 0x67,
- 0x16, 0x12, 0x72, 0x9b, 0xf3, 0xbc, 0xb0, 0x39, 0x49, 0xf8, 0xc8, 0xa9, 0xe6, 0x72, 0x16, 0x5a,
- 0x92, 0x2b, 0xf9, 0x52, 0x06, 0xce, 0x94, 0x56, 0x56, 0x68, 0xdd, 0xa3, 0xc6, 0xc2, 0x32, 0x33,
- 0xbe, 0x26, 0xed, 0xb6, 0xe5, 0xf9, 0xf6, 0xee, 0x8b, 0x9d, 0xab, 0xe3, 0x9d, 0x34, 0x9e, 0x56,
- 0x98, 0xb7, 0x24, 0x08, 0x1a, 0xa0, 0x0b, 0x92, 0x9a, 0x8d, 0x34, 0xb5, 0x3a, 0x12, 0x69, 0xa9,
- 0xf5, 0x9e, 0xbf, 0x01, 0x0f, 0x76, 0x64, 0xb9, 0x93, 0xb1, 0xd3, 0x2b, 0x1b, 0x3b, 0xff, 0x20,
- 0x13, 0xaa, 0x7b, 0x4c, 0x48, 0x64, 0x1c, 0x20, 0x04, 0x89, 0xed, 0xcf, 0xc8, 0xf6, 0x56, 0x11,
- 0x42, 0xa1, 0x69, 0x12, 0x05, 0x59, 0x80, 0x82, 0x10, 0x0b, 0xcf, 0xdc, 0xfa, 0xa1, 0x1d, 0x7a,
- 0x61, 0x5c, 0x96, 0x03, 0x6e, 0x6d, 0xc4, 0x37, 0x0b, 0x36, 0xe7, 0x5f, 0x80, 0xc1, 0xfd, 0x7e,
- 0xd7, 0x97, 0x72, 0x40, 0xe4, 0xbd, 0xca, 0x11, 0x1a, 0x72, 0xef, 0x89, 0xc1, 0xb2, 0xbf, 0xcc,
- 0x2b, 0x97, 0xa1, 0x9f, 0x7d, 0x02, 0xe6, 0x32, 0x90, 0x62, 0x97, 0xb6, 0x05, 0x4c, 0x0b, 0xb0,
- 0x61, 0xe0, 0xa0, 0xbe, 0xf4, 0xc0, 0x41, 0xea, 0x0f, 0xe7, 0xe0, 0xac, 0xdc, 0x21, 0x65, 0x8a,
- 0xe1, 0xd0, 0x4f, 0x3a, 0xe5, 0x5d, 0xec, 0x14, 0x15, 0x0a, 0xdc, 0x44, 0x15, 0x71, 0xe9, 0xf9,
- 0xf1, 0x01, 0x42, 0x34, 0x81, 0x51, 0xff, 0x69, 0x16, 0x86, 0x17, 0x6d, 0xd7, 0x5b, 0x75, 0xa8,
- 0xbb, 0xa8, 0x3b, 0xee, 0x7d, 0xdc, 0x1d, 0x1f, 0x81, 0x61, 0x0c, 0xfd, 0xd2, 0xa4, 0x16, 0x0f,
- 0x8f, 0xd2, 0x2b, 0x25, 0x92, 0xf0, 0x11, 0x22, 0x67, 0x50, 0x84, 0x90, 0x69, 0x3f, 0xb7, 0x2f,
- 0xa4, 0x80, 0x3c, 0xdc, 0xb8, 0xe0, 0x70, 0xf5, 0x67, 0x72, 0x30, 0xe4, 0x4b, 0x79, 0xc2, 0x3c,
- 0xae, 0xf7, 0x01, 0x47, 0x2b, 0xe4, 0xab, 0x00, 0x8b, 0xb6, 0xe3, 0xe9, 0x8d, 0xf9, 0x50, 0xf3,
- 0xf1, 0x20, 0xad, 0x85, 0x50, 0x5e, 0x46, 0x22, 0xc1, 0xf5, 0x2b, 0x34, 0xde, 0xf8, 0xc4, 0xc4,
- 0xd7, 0xaf, 0x00, 0xaa, 0x49, 0x14, 0xea, 0x6f, 0x65, 0xe1, 0x94, 0xdf, 0x49, 0x53, 0xf7, 0x68,
- 0xbd, 0x7d, 0x3f, 0xcf, 0x4d, 0x51, 0x69, 0xf7, 0xee, 0x28, 0x6d, 0xf5, 0xdf, 0x48, 0x13, 0xc9,
- 0x64, 0xc3, 0x3e, 0x99, 0x48, 0xfe, 0x36, 0x74, 0x5c, 0xfd, 0xde, 0x1c, 0x9c, 0xf1, 0xa5, 0x3e,
- 0xdd, 0xb6, 0x70, 0x0b, 0x3a, 0xa9, 0x37, 0x1a, 0xf7, 0xf3, 0x9e, 0x6f, 0xd0, 0x17, 0xc4, 0x82,
- 0x88, 0xa5, 0x26, 0xf2, 0xb7, 0xad, 0x08, 0x70, 0xcd, 0x36, 0x0d, 0x4d, 0x26, 0x22, 0xaf, 0xc0,
- 0x90, 0xff, 0xb3, 0xe4, 0xac, 0xfa, 0x1b, 0x3d, 0x3c, 0x50, 0x0e, 0x0a, 0xe9, 0x4e, 0xe4, 0xc9,
- 0x78, 0xa4, 0x80, 0xfa, 0xcf, 0x0b, 0x70, 0xfe, 0x8e, 0x69, 0x19, 0xf6, 0x86, 0xeb, 0xa7, 0xff,
- 0x3b, 0xf6, 0x07, 0x2a, 0x47, 0x9d, 0xf6, 0xef, 0x75, 0x78, 0x20, 0x2e, 0x52, 0x27, 0x08, 0xca,
- 0x2c, 0x7a, 0x67, 0x83, 0x13, 0xd4, 0xfc, 0x44, 0x80, 0xe2, 0x56, 0x46, 0x4b, 0x2f, 0x19, 0xcf,
- 0x24, 0xd8, 0xb7, 0x9b, 0x4c, 0x82, 0x4f, 0x40, 0xa1, 0x6c, 0x37, 0x75, 0xd3, 0x0f, 0x1e, 0x82,
- 0xa3, 0x38, 0xa8, 0x17, 0x31, 0x9a, 0xa0, 0x60, 0xfc, 0x45, 0xc5, 0xd8, 0x65, 0x03, 0x21, 0x7f,
- 0xbf, 0x00, 0xb3, 0xd2, 0x34, 0x99, 0x88, 0xd8, 0x30, 0x2c, 0xaa, 0x13, 0x77, 0x28, 0x80, 0x9b,
- 0xa7, 0x67, 0x7d, 0x19, 0x75, 0x56, 0xab, 0xf1, 0x48, 0x39, 0xbe, 0x8d, 0xe2, 0x09, 0x0e, 0xc5,
- 0xc7, 0xf0, 0xdb, 0x14, 0x2d, 0xca, 0x5f, 0x12, 0x02, 0x4e, 0x32, 0x83, 0x49, 0x21, 0xe0, 0x2c,
- 0x23, 0x13, 0x91, 0x29, 0x18, 0xc3, 0xd0, 0xb9, 0xc1, 0x56, 0x8a, 0xa9, 0xc4, 0x10, 0x1a, 0x95,
- 0x78, 0x34, 0xcf, 0xa3, 0xed, 0xb2, 0x8f, 0xab, 0xd5, 0x05, 0x5a, 0x4b, 0x96, 0x38, 0xff, 0x2a,
- 0x90, 0x64, 0x9b, 0xf7, 0x74, 0x38, 0xff, 0xc5, 0x6c, 0xb8, 0xaf, 0x3b, 0xee, 0xee, 0x15, 0x87,
- 0x71, 0x1c, 0xfd, 0xcb, 0x19, 0x18, 0x4b, 0x84, 0x62, 0x26, 0xcf, 0x00, 0x70, 0x88, 0x14, 0xf2,
- 0x0e, 0x63, 0x48, 0x84, 0xe1, 0x99, 0xc5, 0x52, 0x12, 0x92, 0x91, 0xab, 0xd0, 0xcf, 0x7f, 0x89,
- 0x30, 0x35, 0xc9, 0x22, 0xed, 0xb6, 0x69, 0x68, 0x01, 0x51, 0x58, 0x0b, 0xde, 0xf2, 0xe4, 0x52,
- 0x8b, 0x78, 0x9b, 0xad, 0xa0, 0x16, 0x46, 0xc6, 0x3a, 0x70, 0x28, 0x68, 0x70, 0xc9, 0x38, 0xaa,
- 0xae, 0x2b, 0x88, 0xa8, 0xd6, 0xb9, 0x9d, 0xa2, 0x5a, 0xc7, 0xe6, 0x26, 0x11, 0xc6, 0xfa, 0xf0,
- 0x9e, 0x86, 0x7c, 0x39, 0x0b, 0xa7, 0x82, 0x5a, 0x8f, 0xf0, 0x42, 0xe1, 0x3d, 0x24, 0x92, 0x2f,
- 0x65, 0x40, 0x99, 0x30, 0x1b, 0x0d, 0xd3, 0x5a, 0xad, 0x58, 0x2b, 0xb6, 0xd3, 0xc4, 0xc9, 0xe3,
- 0xe8, 0x8e, 0x3b, 0xd5, 0x1f, 0xc8, 0xc0, 0x98, 0x68, 0xd0, 0xa4, 0xee, 0x18, 0x47, 0x77, 0x96,
- 0x14, 0x6f, 0xc9, 0xd1, 0xe9, 0x8b, 0xfa, 0xb5, 0x2c, 0xc0, 0xac, 0x5d, 0x5f, 0x3f, 0xe6, 0x6f,
- 0x03, 0x3f, 0x0a, 0x05, 0x1e, 0x2b, 0x48, 0x68, 0xec, 0xd8, 0x38, 0x7f, 0xf2, 0xc9, 0x3e, 0x8d,
- 0x23, 0x26, 0x46, 0xc5, 0x09, 0x6d, 0x81, 0xc7, 0x1a, 0x52, 0x32, 0x9a, 0x28, 0xc2, 0x2a, 0x65,
- 0x74, 0xc2, 0xaa, 0x09, 0x2a, 0x65, 0xb0, 0x68, 0xa5, 0xdb, 0x5b, 0xc5, 0x7c, 0xc3, 0xae, 0xaf,
- 0x6b, 0x48, 0xaf, 0xfe, 0x4d, 0x86, 0xcb, 0xee, 0x98, 0xbf, 0x8f, 0xf3, 0x3f, 0x3f, 0xbf, 0xc7,
- 0xcf, 0xff, 0xc1, 0x0c, 0x9c, 0xd1, 0x68, 0xdd, 0xbe, 0x4b, 0x9d, 0xcd, 0x49, 0xdb, 0xa0, 0x37,
- 0xa8, 0x45, 0x9d, 0xa3, 0x1a, 0x51, 0xff, 0x17, 0xa6, 0x01, 0x08, 0x1b, 0x73, 0xcb, 0xa5, 0xc6,
- 0xf1, 0x49, 0xd1, 0xa0, 0xfe, 0x9f, 0x7d, 0xa0, 0xa4, 0x5a, 0x88, 0xc7, 0xd6, 0x2a, 0xea, 0x68,
- 0xf6, 0xe7, 0x0f, 0xcb, 0xec, 0xef, 0xdd, 0x9b, 0xd9, 0x5f, 0xd8, 0xab, 0xd9, 0xdf, 0xb7, 0x1b,
- 0xb3, 0xbf, 0x19, 0x37, 0xfb, 0xfb, 0xd1, 0xec, 0x7f, 0xa6, 0xab, 0xd9, 0x3f, 0x65, 0x19, 0xfb,
- 0x34, 0xfa, 0x8f, 0x6d, 0xfa, 0xd0, 0xfd, 0xec, 0x56, 0x2e, 0xb3, 0x49, 0xb1, 0x6e, 0x3b, 0x06,
- 0x35, 0xc4, 0x26, 0x05, 0x4f, 0xc8, 0x1d, 0x01, 0xd3, 0x02, 0x6c, 0x22, 0x17, 0xeb, 0xf0, 0x6e,
- 0x72, 0xb1, 0x1e, 0xc2, 0x36, 0xe6, 0x0b, 0x59, 0x18, 0x9b, 0xa4, 0x8e, 0xc7, 0x83, 0x11, 0x1e,
- 0x86, 0x9b, 0x51, 0x09, 0x4e, 0x49, 0x0c, 0xd1, 0x22, 0xcf, 0x86, 0xae, 0x53, 0x75, 0xea, 0x78,
- 0x71, 0xcf, 0xab, 0x38, 0x3d, 0xab, 0xde, 0xcf, 0x87, 0x24, 0xc6, 0x6e, 0x50, 0xbd, 0x0f, 0xe7,
- 0x82, 0x34, 0xc5, 0x2f, 0x2d, 0xa0, 0x97, 0x52, 0x1c, 0xe5, 0xf7, 0x9e, 0xe2, 0x48, 0xfd, 0xa5,
- 0x0c, 0x5c, 0xd2, 0xa8, 0x45, 0x37, 0xf4, 0xe5, 0x06, 0x95, 0x9a, 0x25, 0x56, 0x06, 0x36, 0x6b,
- 0x98, 0x6e, 0x53, 0xf7, 0xea, 0x6b, 0x07, 0x92, 0xd1, 0x34, 0x0c, 0xc9, 0xf3, 0xd7, 0x1e, 0xe6,
- 0xb6, 0x48, 0x39, 0xf5, 0x37, 0x73, 0xd0, 0x37, 0x61, 0x7b, 0xaf, 0xd9, 0x07, 0xcc, 0xb9, 0x15,
- 0x4e, 0xf9, 0xd9, 0x3d, 0x9c, 0x8b, 0x7c, 0x18, 0x2b, 0x97, 0xc2, 0x90, 0xa3, 0x5b, 0xde, 0xb2,
- 0x9d, 0x08, 0xd7, 0xee, 0x93, 0xed, 0x31, 0xdb, 0xd6, 0x73, 0x30, 0x80, 0x71, 0x2c, 0xa4, 0x93,
- 0x4b, 0x74, 0x7a, 0xf5, 0x18, 0x30, 0x5e, 0x47, 0x48, 0x4a, 0x3e, 0x19, 0x89, 0x9e, 0x58, 0x38,
- 0x78, 0x76, 0x2e, 0x39, 0x90, 0xe2, 0xa1, 0x25, 0xc1, 0x52, 0xbf, 0x93, 0x87, 0x21, 0xdf, 0xd5,
- 0xf1, 0x88, 0x7a, 0xf0, 0x29, 0x28, 0xcc, 0xd8, 0x52, 0x48, 0x75, 0x74, 0x8d, 0x5c, 0xb3, 0xdd,
- 0x98, 0xcf, 0xa7, 0x20, 0x22, 0xcf, 0x40, 0xff, 0xbc, 0x6d, 0xc8, 0x8e, 0xbd, 0x38, 0xa6, 0x2d,
- 0xdb, 0x48, 0x3c, 0x8c, 0x0c, 0x08, 0xc9, 0x25, 0xc8, 0xa3, 0x4f, 0xb4, 0x74, 0xf4, 0x1c, 0xf3,
- 0x83, 0x46, 0xbc, 0xa4, 0x1b, 0x85, 0xbd, 0xea, 0x46, 0xdf, 0x7e, 0x75, 0xa3, 0xff, 0x70, 0x75,
- 0xe3, 0x0d, 0x18, 0xc2, 0x9a, 0xfc, 0x8c, 0x4c, 0x3b, 0x2f, 0x6f, 0x0f, 0x8a, 0x15, 0x68, 0x98,
- 0xb7, 0x5b, 0xe4, 0x65, 0xc2, 0x85, 0x27, 0xc2, 0x2a, 0xa6, 0x76, 0x70, 0x00, 0xb5, 0xfb, 0xe3,
- 0x0c, 0xf4, 0xdd, 0xb2, 0xd6, 0x2d, 0x7b, 0xe3, 0x60, 0x1a, 0xf7, 0x0c, 0x0c, 0x0a, 0x36, 0xd2,
- 0x1c, 0x8f, 0x6f, 0x5d, 0xdb, 0x1c, 0x5c, 0x43, 0x4e, 0x9a, 0x4c, 0x45, 0x5e, 0x0a, 0x0a, 0xe1,
- 0xb3, 0x87, 0x5c, 0x98, 0x94, 0xc0, 0x2f, 0x54, 0x8f, 0xc6, 0x51, 0x97, 0xc9, 0xc9, 0x05, 0xc8,
- 0x97, 0x59, 0x53, 0xa5, 0xa8, 0x9c, 0xac, 0x29, 0x1a, 0x42, 0xd5, 0xdf, 0xcb, 0xc2, 0x48, 0xec,
- 0xf8, 0xe9, 0x09, 0x18, 0x10, 0xc7, 0x3f, 0xa6, 0x1f, 0xd8, 0x1d, 0x9f, 0x45, 0x04, 0x40, 0xad,
- 0x9f, 0xff, 0x59, 0x31, 0xc8, 0xc7, 0xa0, 0xcf, 0x76, 0x71, 0x69, 0xc2, 0x6f, 0x19, 0x09, 0x87,
- 0xd0, 0x42, 0x95, 0xb5, 0x9d, 0x0f, 0x0e, 0x41, 0x22, 0x6b, 0xa4, 0xed, 0xe2, 0xa7, 0x5d, 0x87,
- 0x01, 0xdd, 0x75, 0xa9, 0x57, 0xf3, 0xf4, 0x55, 0x39, 0xd6, 0x7b, 0x00, 0x94, 0x47, 0x07, 0x02,
- 0x97, 0xf4, 0x55, 0xf2, 0x2a, 0x0c, 0xd7, 0x1d, 0x8a, 0x8b, 0x97, 0xde, 0x60, 0xad, 0x94, 0x8c,
- 0xcb, 0x08, 0x42, 0x3e, 0xf1, 0x0f, 0x11, 0x15, 0x83, 0xdc, 0x86, 0x61, 0xf1, 0x39, 0xdc, 0x27,
- 0x19, 0x07, 0xda, 0x48, 0xb8, 0x98, 0x70, 0x91, 0x70, 0xaf, 0x64, 0xe1, 0x9a, 0x2e, 0x93, 0xcb,
- 0x7c, 0x0d, 0x89, 0x54, 0xfd, 0x66, 0x86, 0x19, 0x3c, 0x0c, 0x80, 0x39, 0x52, 0x99, 0xae, 0x34,
- 0xf7, 0xa8, 0x2b, 0xcd, 0x30, 0x9b, 0x59, 0xc1, 0xed, 0x32, 0x3b, 0x69, 0x02, 0x4b, 0xc6, 0xa1,
- 0x60, 0xc8, 0x67, 0x3f, 0x67, 0xa3, 0x1f, 0xe1, 0xd7, 0xa3, 0x09, 0x2a, 0x72, 0x19, 0xf2, 0xcc,
- 0xa0, 0x8d, 0x6f, 0xfc, 0xe4, 0x35, 0x52, 0x43, 0x0a, 0xf5, 0xbb, 0xb3, 0x30, 0x24, 0x7d, 0xcd,
- 0xb5, 0x03, 0x7d, 0xce, 0x8b, 0xbb, 0x6b, 0xa6, 0xef, 0xe6, 0x80, 0x3b, 0x02, 0xbf, 0xc9, 0xd7,
- 0x03, 0x51, 0xec, 0xea, 0x0a, 0x42, 0x08, 0xe6, 0x39, 0xf1, 0xa1, 0x85, 0xdd, 0x6f, 0x82, 0x18,
- 0xfd, 0x6b, 0xf9, 0xfe, 0xec, 0x68, 0xee, 0xb5, 0x7c, 0x7f, 0x7e, 0xb4, 0x17, 0xe3, 0xe2, 0x60,
- 0x28, 0x5a, 0xbe, 0xc3, 0xb4, 0x56, 0xcc, 0xd5, 0x63, 0xee, 0x55, 0x7e, 0xb8, 0x31, 0x83, 0x62,
- 0xb2, 0x39, 0xe6, 0x2e, 0xe6, 0xef, 0xaa, 0x6c, 0x4e, 0xb2, 0x9f, 0x09, 0xd9, 0xfc, 0x49, 0x06,
- 0x94, 0x54, 0xd9, 0x94, 0x8e, 0xe8, 0xe6, 0xfb, 0xf0, 0x72, 0xa0, 0x7d, 0x3b, 0x0b, 0x63, 0x15,
- 0xcb, 0xa3, 0xab, 0x7c, 0xdf, 0x73, 0xcc, 0xa7, 0x8a, 0x9b, 0x30, 0x28, 0x7d, 0x8c, 0xe8, 0xf3,
- 0x87, 0x82, 0x5d, 0x65, 0x88, 0xea, 0xc0, 0x49, 0x2e, 0x7d, 0x88, 0x69, 0x93, 0x63, 0x42, 0x3e,
- 0xe6, 0x73, 0xce, 0xf1, 0x10, 0xf2, 0x31, 0x9f, 0xbc, 0xde, 0xa3, 0x42, 0xfe, 0x57, 0x19, 0x38,
- 0x9d, 0x52, 0x39, 0xb9, 0x04, 0x7d, 0xd5, 0xf6, 0x32, 0x06, 0xe4, 0xc9, 0x84, 0x3e, 0xa2, 0x6e,
- 0x7b, 0x19, 0x63, 0xf1, 0x68, 0x3e, 0x92, 0x2c, 0xe1, 0xb3, 0xdb, 0x85, 0x4a, 0x79, 0x52, 0x48,
- 0x55, 0x95, 0x1e, 0x10, 0x33, 0x70, 0xda, 0x97, 0x05, 0x4f, 0x73, 0x6d, 0xd3, 0xa8, 0xc7, 0x9e,
- 0xe6, 0xb2, 0x32, 0xe4, 0x53, 0x30, 0x50, 0x7a, 0xbb, 0xed, 0x50, 0xe4, 0xcb, 0x25, 0xfe, 0x81,
- 0x80, 0xaf, 0x8f, 0x48, 0xe3, 0xcc, 0x5f, 0x19, 0x33, 0x8a, 0x38, 0xef, 0x90, 0xa1, 0xfa, 0xc5,
- 0x0c, 0x9c, 0xef, 0xdc, 0x3a, 0xf2, 0x61, 0xe8, 0x63, 0x3b, 0xdb, 0x92, 0x36, 0x2f, 0x3e, 0x9d,
- 0xe7, 0x0b, 0xb4, 0x1b, 0xb4, 0xa6, 0x3b, 0xb2, 0xe1, 0xed, 0x93, 0x91, 0x97, 0x61, 0xb0, 0xe2,
- 0xba, 0x6d, 0xea, 0x54, 0x9f, 0xb9, 0xa5, 0x55, 0xc4, 0x9e, 0x0a, 0x6d, 0x76, 0x13, 0xc1, 0x35,
- 0xf7, 0x99, 0x58, 0xc8, 0x1d, 0x99, 0x5e, 0xfd, 0x5c, 0x06, 0x2e, 0x74, 0xfb, 0x2a, 0xb6, 0x81,
- 0x5f, 0xa2, 0x96, 0x6e, 0xb1, 0x1d, 0x7f, 0x26, 0xdc, 0xa2, 0x78, 0x08, 0x8b, 0x6e, 0x32, 0x02,
- 0x42, 0x56, 0x88, 0x9f, 0x8e, 0x05, 0xd7, 0xf1, 0xfc, 0x24, 0x0f, 0x61, 0xb1, 0x42, 0x3e, 0xa1,
- 0xfa, 0x7b, 0x3a, 0xf4, 0x2e, 0x58, 0x74, 0x61, 0x85, 0x3c, 0x2d, 0x25, 0x86, 0x17, 0x03, 0x6d,
- 0x4c, 0x1e, 0x30, 0x88, 0x98, 0xe9, 0xd1, 0xa4, 0xf4, 0xf1, 0xd7, 0xe5, 0x0c, 0xc1, 0x42, 0x1d,
- 0x88, 0x5c, 0x86, 0x63, 0x66, 0x7a, 0x34, 0x39, 0x93, 0xf0, 0x75, 0x39, 0x33, 0xab, 0xe8, 0xec,
- 0x48, 0x29, 0x8e, 0xf1, 0x4b, 0x89, 0x69, 0x60, 0x36, 0x2d, 0x7d, 0x69, 0xdc, 0x26, 0x48, 0x52,
- 0xcc, 0xf4, 0x68, 0xe9, 0x69, 0x4f, 0x87, 0x64, 0xc7, 0x98, 0xf8, 0x85, 0x9c, 0x8c, 0x9b, 0xe9,
- 0xd1, 0x22, 0xb4, 0xe4, 0x79, 0x18, 0x14, 0xbf, 0x5f, 0xb3, 0x4d, 0x2b, 0xfe, 0xf6, 0x5e, 0x42,
- 0xcd, 0xf4, 0x68, 0x32, 0xa5, 0x54, 0xe9, 0xa2, 0x63, 0x06, 0xb9, 0xdd, 0xe3, 0x95, 0x22, 0x4e,
- 0xaa, 0x14, 0x7f, 0x93, 0x97, 0x61, 0x38, 0x08, 0x6a, 0xf0, 0x16, 0xad, 0x7b, 0xe2, 0x48, 0xe4,
- 0x81, 0x58, 0x61, 0x8e, 0x9c, 0xe9, 0xd1, 0xa2, 0xd4, 0xe4, 0x32, 0x14, 0x34, 0xea, 0x9a, 0x6f,
- 0xfb, 0x47, 0xf9, 0x23, 0xd2, 0x74, 0x66, 0xbe, 0xcd, 0xa4, 0x24, 0xf0, 0xac, 0x77, 0xc2, 0xbb,
- 0x03, 0x71, 0x80, 0x41, 0x62, 0xb5, 0x4c, 0x59, 0x06, 0xeb, 0x1d, 0xe9, 0xe2, 0xe8, 0xd5, 0x30,
- 0xd4, 0x83, 0x48, 0xcb, 0x34, 0x18, 0x7f, 0x53, 0x27, 0x63, 0x67, 0x7a, 0xb4, 0x18, 0xbd, 0x24,
- 0xd5, 0xb2, 0xe9, 0xae, 0x8b, 0xe8, 0x5a, 0x71, 0xa9, 0x32, 0x94, 0x24, 0x55, 0xf6, 0x53, 0xaa,
- 0x7a, 0x9e, 0x7a, 0x1b, 0xb6, 0xb3, 0x2e, 0x62, 0x69, 0xc5, 0xab, 0x16, 0x58, 0xa9, 0x6a, 0x01,
- 0x91, 0xab, 0x66, 0x8b, 0xcc, 0x48, 0x7a, 0xd5, 0xba, 0xa7, 0xcb, 0x55, 0xf3, 0xfd, 0xa5, 0xdf,
- 0x49, 0xb3, 0x54, 0xbf, 0xcb, 0xb3, 0x63, 0x26, 0x3b, 0x14, 0x71, 0x52, 0x87, 0xe2, 0x6f, 0x56,
- 0xa9, 0x94, 0x01, 0x51, 0xa4, 0xbf, 0x0c, 0x2a, 0x95, 0x50, 0xac, 0x52, 0x39, 0x57, 0xe2, 0x75,
- 0x39, 0x31, 0xa0, 0x32, 0x16, 0xed, 0xa0, 0x10, 0xc3, 0x3a, 0x48, 0x4a, 0x20, 0x58, 0xc4, 0xa4,
- 0x63, 0x0a, 0x41, 0xf2, 0xc1, 0xa0, 0x85, 0x93, 0x8b, 0x33, 0x3d, 0x1a, 0xa6, 0x23, 0x53, 0x79,
- 0x3a, 0x3b, 0xe5, 0x34, 0x52, 0x0c, 0xf9, 0x14, 0x0c, 0x36, 0xd3, 0xa3, 0xf1, 0x54, 0x77, 0x4f,
- 0x4b, 0x89, 0x63, 0x94, 0x33, 0xd1, 0x29, 0x22, 0x40, 0xb0, 0x29, 0x22, 0x4c, 0x2f, 0x33, 0x9d,
- 0x4c, 0xae, 0xa2, 0x3c, 0x10, 0x5d, 0x51, 0xe3, 0xf8, 0x99, 0x1e, 0x2d, 0x99, 0x90, 0xe5, 0xf9,
- 0x48, 0xbe, 0x11, 0xe5, 0x6c, 0x2c, 0xe0, 0x45, 0x88, 0x62, 0xe2, 0x92, 0x33, 0x93, 0x2c, 0xa4,
- 0x66, 0x08, 0x56, 0xce, 0x45, 0x97, 0xe3, 0x14, 0x92, 0x99, 0x1e, 0x2d, 0x35, 0xb7, 0xf0, 0x64,
- 0x22, 0xeb, 0x87, 0xa2, 0x44, 0xef, 0x2d, 0x63, 0xe8, 0x99, 0x1e, 0x2d, 0x91, 0x27, 0xe4, 0xba,
- 0x9c, 0x6e, 0x43, 0x79, 0x30, 0xda, 0x89, 0x21, 0x86, 0x75, 0xa2, 0x94, 0x96, 0xe3, 0xba, 0x9c,
- 0x82, 0x41, 0x39, 0x9f, 0x2c, 0x15, 0xce, 0x9c, 0x52, 0xaa, 0x06, 0x2d, 0x3d, 0xaa, 0xbc, 0xf2,
- 0x90, 0xc8, 0xeb, 0x25, 0xca, 0xa7, 0xd1, 0xcc, 0xf4, 0x68, 0xe9, 0x11, 0xe9, 0xb5, 0xf4, 0x70,
- 0xec, 0xca, 0x85, 0x6e, 0x3c, 0x83, 0xd6, 0xa5, 0x87, 0x72, 0xd7, 0xbb, 0x04, 0xc7, 0x56, 0x1e,
- 0x8e, 0x46, 0xdb, 0xeb, 0x48, 0x38, 0xd3, 0xa3, 0x75, 0x09, 0xb1, 0x7d, 0xab, 0x43, 0xa4, 0x6a,
- 0xe5, 0x62, 0x34, 0xad, 0x5f, 0x2a, 0xd1, 0x4c, 0x8f, 0xd6, 0x21, 0xce, 0xf5, 0xad, 0x0e, 0x81,
- 0x8c, 0x95, 0x62, 0x57, 0xb6, 0x81, 0x3c, 0x3a, 0x84, 0x41, 0x5e, 0x48, 0x8d, 0x01, 0xac, 0x3c,
- 0x12, 0x55, 0xdd, 0x14, 0x12, 0xa6, 0xba, 0x69, 0xd1, 0x83, 0x17, 0x52, 0x83, 0xd6, 0x2a, 0x8f,
- 0x76, 0x61, 0x18, 0xb4, 0x31, 0x35, 0xdc, 0xed, 0x42, 0x6a, 0xd4, 0x58, 0x45, 0x8d, 0x32, 0x4c,
- 0x21, 0x61, 0x0c, 0xd3, 0xe2, 0xcd, 0x2e, 0xa4, 0x86, 0x39, 0x55, 0x1e, 0xeb, 0xc2, 0x30, 0x6c,
- 0x61, 0x5a, 0x80, 0xd4, 0xe7, 0x23, 0x71, 0x46, 0x95, 0x0f, 0x44, 0xe7, 0x0d, 0x09, 0xc5, 0xe6,
- 0x0d, 0x39, 0x22, 0xe9, 0x64, 0x22, 0x92, 0x9a, 0xf2, 0x78, 0x74, 0x98, 0xc7, 0xd0, 0x6c, 0x98,
- 0xc7, 0x63, 0xaf, 0x4d, 0x26, 0x22, 0x4a, 0x29, 0x97, 0x3a, 0x31, 0x41, 0x74, 0x94, 0x09, 0x8f,
- 0x41, 0x55, 0x49, 0x09, 0x69, 0xa4, 0x7c, 0x30, 0xea, 0x73, 0x97, 0x20, 0x98, 0xe9, 0xd1, 0x52,
- 0x02, 0x21, 0x69, 0xe9, 0xef, 0xf7, 0x95, 0xcb, 0xd1, 0x61, 0x9b, 0x46, 0xc3, 0x86, 0x6d, 0xea,
- 0xdb, 0xff, 0xd9, 0x34, 0xff, 0x5a, 0xe5, 0x4a, 0xd4, 0x30, 0x4b, 0x52, 0x30, 0xc3, 0x2c, 0xc5,
- 0x2f, 0x57, 0x4b, 0x7f, 0x91, 0xae, 0x3c, 0xd1, 0xb5, 0x85, 0x48, 0x93, 0xd2, 0x42, 0xfe, 0x40,
- 0x3b, 0xb4, 0x9d, 0x6e, 0xb5, 0x1a, 0xb6, 0x6e, 0x28, 0x1f, 0x4a, 0xb5, 0x9d, 0x38, 0x52, 0xb2,
- 0x9d, 0x38, 0x80, 0xad, 0xf2, 0xb2, 0xff, 0xa9, 0xf2, 0x64, 0x74, 0x95, 0x97, 0x71, 0x6c, 0x95,
- 0x8f, 0xf8, 0xaa, 0x4e, 0x26, 0x7c, 0x35, 0x95, 0xa7, 0xa2, 0x0a, 0x10, 0x43, 0x33, 0x05, 0x88,
- 0x7b, 0x77, 0xbe, 0xd9, 0xd9, 0xbb, 0x51, 0x19, 0x47, 0x6e, 0x8f, 0xf8, 0xdc, 0x3a, 0xd1, 0xcd,
- 0xf4, 0x68, 0x9d, 0x3d, 0x24, 0x2b, 0x29, 0xce, 0x8a, 0xca, 0xd5, 0xa8, 0x82, 0x25, 0x08, 0x98,
- 0x82, 0x25, 0x5d, 0x1c, 0x2b, 0x29, 0xde, 0x86, 0xca, 0x87, 0x3b, 0xb2, 0x0a, 0xbe, 0x39, 0xc5,
- 0x47, 0xf1, 0xba, 0xec, 0x2e, 0xa8, 0x3c, 0x1d, 0x5d, 0xec, 0x42, 0x0c, 0x5b, 0xec, 0x24, 0xb7,
- 0xc2, 0xeb, 0xb2, 0xa3, 0x9c, 0x72, 0x2d, 0x59, 0x2a, 0x5c, 0x22, 0x25, 0x87, 0x3a, 0x2d, 0xdd,
- 0xbf, 0x4c, 0x79, 0x26, 0xaa, 0x75, 0x69, 0x34, 0x4c, 0xeb, 0x52, 0x7d, 0xd3, 0xa6, 0x93, 0x6e,
- 0x62, 0xca, 0xf5, 0xf8, 0x59, 0x42, 0x14, 0xcf, 0x2c, 0x9f, 0x84, 0x6b, 0xd9, 0xab, 0xf1, 0xe0,
- 0x32, 0xca, 0xb3, 0xb1, 0xcb, 0x8c, 0x08, 0x96, 0xd9, 0xb7, 0xb1, 0x60, 0x34, 0xaf, 0xc6, 0xe3,
- 0xb1, 0x28, 0xcf, 0xa5, 0x73, 0x08, 0x74, 0x25, 0x1e, 0xbf, 0xe5, 0xd5, 0x78, 0x08, 0x13, 0xe5,
- 0xf9, 0x74, 0x0e, 0x81, 0x74, 0xe3, 0x21, 0x4f, 0x9e, 0x96, 0x82, 0xaa, 0x2a, 0x1f, 0x89, 0x9a,
- 0x8e, 0x01, 0x82, 0x99, 0x8e, 0x61, 0xe8, 0xd5, 0xa7, 0xa5, 0x60, 0xa4, 0xca, 0x0b, 0x89, 0x22,
- 0x41, 0x63, 0xa5, 0x90, 0xa5, 0x4f, 0x4b, 0x41, 0x3c, 0x95, 0x17, 0x13, 0x45, 0x82, 0xd6, 0x49,
- 0xa1, 0x3e, 0x8d, 0x6e, 0xef, 0x70, 0x94, 0x8f, 0x46, 0x8f, 0x38, 0x3a, 0x53, 0xce, 0xf4, 0x68,
- 0xdd, 0xde, 0xf3, 0xbc, 0xd9, 0xd9, 0xe9, 0x4e, 0x79, 0x29, 0x3a, 0x84, 0x3b, 0xd1, 0xb1, 0x21,
- 0xdc, 0xd1, 0x71, 0xef, 0xe5, 0xd8, 0x9b, 0x5c, 0xe5, 0xe5, 0xe8, 0x14, 0x17, 0x41, 0xb2, 0x29,
- 0x2e, 0xfe, 0x82, 0x37, 0xf2, 0xd8, 0x54, 0xf9, 0x58, 0x74, 0x8a, 0x93, 0x71, 0x6c, 0x8a, 0x8b,
- 0x3c, 0x4c, 0x9d, 0x4c, 0xbc, 0x81, 0x54, 0x5e, 0x89, 0x4e, 0x71, 0x31, 0x34, 0x9b, 0xe2, 0xe2,
- 0xaf, 0x26, 0x5f, 0x8e, 0x3d, 0x05, 0x54, 0x5e, 0x4d, 0x6f, 0x3f, 0x22, 0xe5, 0xf6, 0xf3, 0x87,
- 0x83, 0x5a, 0xfa, 0x9b, 0x36, 0xa5, 0x14, 0x1d, 0xbf, 0x69, 0x34, 0x6c, 0xfc, 0xa6, 0xbe, 0x87,
- 0x5b, 0x48, 0x4d, 0xaa, 0xaf, 0x4c, 0x74, 0xd9, 0x38, 0x84, 0xa6, 0x48, 0x5a, 0x3a, 0x7e, 0x79,
- 0x8f, 0xcc, 0x37, 0x42, 0x93, 0x1d, 0xf6, 0xc8, 0xfe, 0x36, 0x28, 0x46, 0xcf, 0x66, 0xd7, 0x84,
- 0x0f, 0x98, 0x52, 0x8e, 0xce, 0xae, 0x09, 0x02, 0x36, 0xbb, 0x26, 0x3d, 0xc7, 0xa6, 0x61, 0x54,
- 0x68, 0x11, 0x77, 0x6d, 0x33, 0xad, 0x55, 0x65, 0x2a, 0xf6, 0xa4, 0x24, 0x86, 0x67, 0xb3, 0x53,
- 0x1c, 0x86, 0xeb, 0x35, 0x87, 0x4d, 0x36, 0xcc, 0xd6, 0xb2, 0xad, 0x3b, 0x46, 0x95, 0x5a, 0x86,
- 0x32, 0x1d, 0x5b, 0xaf, 0x53, 0x68, 0x70, 0xbd, 0x4e, 0x81, 0x63, 0x40, 0x95, 0x18, 0x5c, 0xa3,
- 0x75, 0x6a, 0xde, 0xa5, 0xca, 0x0d, 0x64, 0x5b, 0xec, 0xc4, 0x56, 0x90, 0xcd, 0xf4, 0x68, 0x9d,
- 0x38, 0x30, 0x5b, 0x7d, 0x6e, 0xb3, 0xfa, 0xfa, 0x6c, 0xf0, 0x8c, 0x72, 0xd1, 0xa1, 0x2d, 0xdd,
- 0xa1, 0xca, 0x4c, 0xd4, 0x56, 0x4f, 0x25, 0x62, 0xb6, 0x7a, 0x2a, 0x22, 0xc9, 0xd6, 0x1f, 0x0b,
- 0x95, 0x6e, 0x6c, 0xc3, 0x11, 0x91, 0x5e, 0x9a, 0xcd, 0x4e, 0x51, 0x04, 0x13, 0xd0, 0xac, 0x6d,
- 0xad, 0xe2, 0x49, 0xc5, 0x6b, 0xd1, 0xd9, 0xa9, 0x33, 0x25, 0x9b, 0x9d, 0x3a, 0x63, 0x99, 0xaa,
- 0x47, 0xb1, 0x7c, 0x0c, 0xde, 0x8c, 0xaa, 0x7a, 0x0a, 0x09, 0x53, 0xf5, 0x14, 0x70, 0x92, 0xa1,
- 0x46, 0x5d, 0xea, 0x29, 0xb3, 0xdd, 0x18, 0x22, 0x49, 0x92, 0x21, 0x82, 0x93, 0x0c, 0xa7, 0xa9,
- 0x57, 0x5f, 0x53, 0xe6, 0xba, 0x31, 0x44, 0x92, 0x24, 0x43, 0x04, 0xb3, 0xcd, 0x66, 0x14, 0x3c,
- 0xd1, 0x6e, 0xac, 0xfb, 0x7d, 0x36, 0x1f, 0xdd, 0x6c, 0x76, 0x24, 0x64, 0x9b, 0xcd, 0x8e, 0x48,
- 0xf2, 0xb9, 0x5d, 0xfb, 0x28, 0x2a, 0x0b, 0x58, 0xe1, 0x78, 0x68, 0x17, 0xec, 0xa6, 0xd4, 0x4c,
- 0x8f, 0xb6, 0x5b, 0x1f, 0xc8, 0x0f, 0x05, 0xae, 0x44, 0xca, 0x22, 0x56, 0x75, 0x2a, 0x38, 0xab,
- 0xe0, 0xe0, 0x99, 0x1e, 0x2d, 0x70, 0x36, 0x7a, 0x1e, 0x06, 0xf1, 0xa3, 0x2a, 0x96, 0xe9, 0x95,
- 0x27, 0x94, 0xd7, 0xa3, 0x5b, 0x26, 0x09, 0xc5, 0xb6, 0x4c, 0xd2, 0x4f, 0x36, 0x89, 0xe3, 0x4f,
- 0x3e, 0xc5, 0x94, 0x27, 0x14, 0x2d, 0x3a, 0x89, 0x47, 0x90, 0x6c, 0x12, 0x8f, 0x00, 0x82, 0x7a,
- 0xcb, 0x8e, 0xdd, 0x2a, 0x4f, 0x28, 0xd5, 0x94, 0x7a, 0x39, 0x2a, 0xa8, 0x97, 0xff, 0x0c, 0xea,
- 0xad, 0xae, 0xb5, 0xbd, 0x32, 0xfb, 0xc6, 0xa5, 0x94, 0x7a, 0x7d, 0x64, 0x50, 0xaf, 0x0f, 0x60,
- 0x53, 0x21, 0x02, 0x16, 0x1d, 0x9b, 0x4d, 0xda, 0x37, 0xcd, 0x46, 0x43, 0xb9, 0x15, 0x9d, 0x0a,
- 0xe3, 0x78, 0x36, 0x15, 0xc6, 0x61, 0xcc, 0xf4, 0xe4, 0xad, 0xa2, 0xcb, 0xed, 0x55, 0xe5, 0x76,
- 0xd4, 0xf4, 0x0c, 0x31, 0xcc, 0xf4, 0x0c, 0x7f, 0xe1, 0xee, 0x82, 0xfd, 0xd2, 0xe8, 0x8a, 0x43,
- 0xdd, 0x35, 0xe5, 0x4e, 0x6c, 0x77, 0x21, 0xe1, 0x70, 0x77, 0x21, 0xfd, 0x26, 0xab, 0xf0, 0x50,
- 0x64, 0xa1, 0xf1, 0xef, 0x9e, 0xaa, 0x54, 0x77, 0xea, 0x6b, 0xca, 0xc7, 0x91, 0xd5, 0x63, 0xa9,
- 0x4b, 0x55, 0x94, 0x74, 0xa6, 0x47, 0xeb, 0xc6, 0x09, 0xb7, 0xe5, 0xaf, 0xcf, 0xf2, 0xc8, 0x67,
- 0xda, 0xe2, 0xa4, 0xbf, 0x09, 0x7d, 0x23, 0xb6, 0x2d, 0x4f, 0x92, 0xe0, 0xb6, 0x3c, 0x09, 0x26,
- 0x2d, 0xb8, 0x18, 0xdb, 0xaa, 0xcd, 0xe9, 0x0d, 0xb6, 0x2f, 0xa1, 0xc6, 0xa2, 0x5e, 0x5f, 0xa7,
- 0x9e, 0xf2, 0x09, 0xe4, 0x7d, 0xa9, 0xc3, 0x86, 0x2f, 0x46, 0x3d, 0xd3, 0xa3, 0xed, 0xc0, 0x8f,
- 0xa8, 0x3c, 0x6d, 0xbb, 0xf2, 0xc9, 0xe8, 0xf9, 0x26, 0x83, 0xcd, 0xf4, 0x68, 0x3c, 0xa5, 0xfb,
- 0x9b, 0xa0, 0xdc, 0x6a, 0xad, 0x3a, 0xba, 0x41, 0xb9, 0xa1, 0x85, 0xb6, 0x9b, 0x30, 0x40, 0x3f,
- 0x15, 0xb5, 0xd2, 0x3a, 0xd1, 0x31, 0x2b, 0xad, 0x13, 0x8e, 0x29, 0x6a, 0x24, 0xc8, 0xb7, 0xf2,
- 0xe9, 0xa8, 0xa2, 0x46, 0x90, 0x4c, 0x51, 0xa3, 0x21, 0xc1, 0x3f, 0x0e, 0x67, 0x83, 0xfd, 0xbc,
- 0x58, 0x7f, 0x79, 0xa7, 0x29, 0x6f, 0x22, 0x9f, 0x8b, 0x89, 0xcb, 0x80, 0x08, 0xd5, 0x4c, 0x8f,
- 0xd6, 0xa1, 0x3c, 0x5b, 0x71, 0x13, 0xf9, 0x2b, 0x84, 0x79, 0xf1, 0x5d, 0xd1, 0x15, 0xb7, 0x03,
- 0x19, 0x5b, 0x71, 0x3b, 0xa0, 0x52, 0x99, 0x0b, 0xa1, 0xea, 0x3b, 0x30, 0x0f, 0x64, 0xda, 0x89,
- 0x43, 0x2a, 0x73, 0x61, 0xa9, 0x2d, 0xef, 0xc0, 0x3c, 0xb0, 0xd6, 0x3a, 0x71, 0x20, 0x97, 0xa1,
- 0x50, 0xad, 0xce, 0x69, 0x6d, 0x4b, 0xa9, 0xc7, 0x7c, 0xc0, 0x10, 0x3a, 0xd3, 0xa3, 0x09, 0x3c,
- 0x33, 0x83, 0xa6, 0x1a, 0xba, 0xeb, 0x99, 0x75, 0x17, 0x47, 0x8c, 0x3f, 0x42, 0x8c, 0xa8, 0x19,
- 0x94, 0x46, 0xc3, 0xcc, 0xa0, 0x34, 0x38, 0xb3, 0x17, 0x27, 0x75, 0xd7, 0xd5, 0x2d, 0xc3, 0xd1,
- 0x27, 0x70, 0x99, 0xa0, 0x31, 0x4f, 0xf9, 0x08, 0x96, 0xd9, 0x8b, 0x51, 0x08, 0x1e, 0xbe, 0xfb,
- 0x10, 0xdf, 0xcc, 0x59, 0x89, 0x1d, 0xbe, 0xc7, 0xf0, 0x78, 0xf8, 0x1e, 0x83, 0xa1, 0xdd, 0xe9,
- 0xc3, 0x34, 0xba, 0x6a, 0x32, 0x11, 0x29, 0xab, 0x31, 0xbb, 0x33, 0x4e, 0x80, 0x76, 0x67, 0x1c,
- 0x18, 0x69, 0x92, 0xbf, 0xdc, 0xae, 0x75, 0x68, 0x52, 0xb8, 0xca, 0x26, 0xca, 0xb0, 0xf5, 0x3b,
- 0x1c, 0x1c, 0xe5, 0x4d, 0x4b, 0x6f, 0xda, 0xe5, 0x09, 0x5f, 0xea, 0x66, 0x74, 0xfd, 0xee, 0x48,
- 0xc8, 0xd6, 0xef, 0x8e, 0x48, 0x36, 0xbb, 0xfa, 0x1b, 0xad, 0x35, 0xdd, 0xa1, 0x46, 0xd9, 0x74,
- 0xf0, 0x64, 0x71, 0x93, 0x6f, 0x0d, 0xdf, 0x8a, 0xce, 0xae, 0x5d, 0x48, 0xd9, 0xec, 0xda, 0x05,
- 0xcd, 0x8c, 0xbc, 0x74, 0xb4, 0x46, 0x75, 0x43, 0x59, 0x8f, 0x1a, 0x79, 0x9d, 0x29, 0x99, 0x91,
- 0xd7, 0x19, 0xdb, 0xf9, 0x73, 0xee, 0x38, 0xa6, 0x47, 0x95, 0xc6, 0x6e, 0x3e, 0x07, 0x49, 0x3b,
- 0x7f, 0x0e, 0xa2, 0xd9, 0x86, 0x30, 0xde, 0x21, 0xcd, 0xe8, 0x86, 0x30, 0xd9, 0x0d, 0xf1, 0x12,
- 0xcc, 0x62, 0x11, 0x0f, 0x26, 0x14, 0x2b, 0x6a, 0xb1, 0x08, 0x30, 0xb3, 0x58, 0xc2, 0x27, 0x15,
- 0x11, 0x07, 0x7d, 0xc5, 0x8e, 0xae, 0xa1, 0x32, 0x8e, 0xad, 0xa1, 0x11, 0x67, 0xfe, 0xe7, 0x23,
- 0xde, 0xb3, 0x4a, 0x2b, 0x6a, 0x75, 0x48, 0x28, 0x66, 0x75, 0xc8, 0x7e, 0xb6, 0x93, 0x70, 0x0a,
- 0x6f, 0xc1, 0xb5, 0x76, 0x70, 0x8f, 0xf3, 0x99, 0xe8, 0x67, 0xc6, 0xd0, 0xec, 0x33, 0x63, 0xa0,
- 0x08, 0x13, 0x31, 0x6d, 0x39, 0x1d, 0x98, 0x84, 0xe7, 0x83, 0x31, 0x10, 0x99, 0x05, 0x52, 0x2d,
- 0xcd, 0xcd, 0x56, 0x8c, 0x45, 0xf9, 0x8a, 0xcc, 0x8d, 0x9e, 0xc0, 0x26, 0x29, 0x66, 0x7a, 0xb4,
- 0x94, 0x72, 0xe4, 0x2d, 0xb8, 0x20, 0xa0, 0xe2, 0x35, 0x1c, 0x26, 0x97, 0x35, 0x82, 0x05, 0xc1,
- 0x8b, 0x7a, 0x67, 0x74, 0xa3, 0x9d, 0xe9, 0xd1, 0xba, 0xf2, 0xea, 0x5c, 0x97, 0x58, 0x1f, 0xda,
- 0xbb, 0xa9, 0x2b, 0x58, 0x24, 0xba, 0xf2, 0xea, 0x5c, 0x97, 0x90, 0xfb, 0xdd, 0xdd, 0xd4, 0x15,
- 0x74, 0x42, 0x57, 0x5e, 0xc4, 0x85, 0x62, 0x37, 0x7c, 0xa9, 0xd1, 0x50, 0x36, 0xb0, 0xba, 0x0f,
- 0xee, 0xa6, 0xba, 0x12, 0x1a, 0x9c, 0x3b, 0x71, 0x64, 0xb3, 0xf4, 0x42, 0x8b, 0x5a, 0xd5, 0xc8,
- 0x02, 0x74, 0x2f, 0x3a, 0x4b, 0x27, 0x08, 0xd8, 0x2c, 0x9d, 0x00, 0xb2, 0x01, 0x25, 0x3b, 0x61,
- 0x2b, 0x9b, 0xd1, 0x01, 0x25, 0xe3, 0xd8, 0x80, 0x8a, 0x38, 0x6c, 0x2f, 0xc0, 0xe9, 0x85, 0x75,
- 0x4f, 0xf7, 0x2d, 0x48, 0x57, 0x74, 0xe5, 0xdb, 0xb1, 0x4b, 0xa6, 0x24, 0x09, 0x5e, 0x32, 0x25,
- 0xc1, 0x6c, 0x8c, 0x30, 0x70, 0x75, 0xd3, 0xaa, 0x4f, 0xeb, 0x66, 0xa3, 0xed, 0x50, 0xe5, 0x3f,
- 0x8b, 0x8e, 0x91, 0x18, 0x9a, 0x8d, 0x91, 0x18, 0x88, 0x2d, 0xd0, 0x0c, 0x54, 0x72, 0x5d, 0x73,
- 0xd5, 0x12, 0xfb, 0xca, 0x76, 0xc3, 0x53, 0xfe, 0xf3, 0xe8, 0x02, 0x9d, 0x46, 0xc3, 0x16, 0xe8,
- 0x34, 0x38, 0x9e, 0x3a, 0xa5, 0x24, 0x5e, 0x56, 0xfe, 0x8b, 0xd8, 0xa9, 0x53, 0x0a, 0x0d, 0x9e,
- 0x3a, 0xa5, 0x25, 0x6d, 0x9e, 0x86, 0x51, 0x6e, 0x93, 0xcd, 0x9a, 0xc1, 0x5d, 0xf5, 0x7f, 0x19,
- 0x5d, 0x1f, 0xe3, 0x78, 0xb6, 0x3e, 0xc6, 0x61, 0x51, 0x3e, 0xa2, 0x0b, 0xfe, 0xab, 0x4e, 0x7c,
- 0x02, 0xf9, 0x27, 0xca, 0x90, 0x1b, 0x32, 0x1f, 0x31, 0x52, 0xbe, 0x3b, 0xd3, 0x89, 0x51, 0x30,
- 0x3c, 0x12, 0x85, 0xa2, 0x8c, 0x34, 0x7a, 0xd7, 0xa4, 0x1b, 0xca, 0x67, 0x3b, 0x32, 0xe2, 0x04,
- 0x51, 0x46, 0x1c, 0x46, 0xde, 0x80, 0xb3, 0x21, 0x6c, 0x8e, 0x36, 0x97, 0x83, 0x99, 0xe9, 0x7b,
- 0x32, 0x51, 0x33, 0x38, 0x9d, 0x8c, 0x99, 0xc1, 0xe9, 0x98, 0x34, 0xd6, 0x42, 0x74, 0xff, 0xf5,
- 0x0e, 0xac, 0x03, 0x09, 0x76, 0x60, 0x90, 0xc6, 0x5a, 0x48, 0xf3, 0x7b, 0x77, 0x60, 0x1d, 0xc8,
- 0xb4, 0x03, 0x03, 0xf2, 0xf9, 0x0c, 0x5c, 0x4a, 0x47, 0x95, 0x1a, 0x8d, 0x69, 0xdb, 0x09, 0x71,
- 0xca, 0xf7, 0x65, 0xa2, 0x07, 0x0d, 0xbb, 0x2b, 0x36, 0xd3, 0xa3, 0xed, 0xb2, 0x02, 0xf2, 0x31,
- 0x18, 0x2e, 0xb5, 0x0d, 0xd3, 0xc3, 0x8b, 0x37, 0x66, 0x38, 0x7f, 0x7f, 0x26, 0xb6, 0xc5, 0x91,
- 0xb1, 0xb8, 0xc5, 0x91, 0x01, 0xe4, 0x35, 0x18, 0xab, 0xd2, 0x7a, 0xdb, 0x31, 0xbd, 0x4d, 0x0d,
- 0x93, 0x6a, 0x33, 0x1e, 0x3f, 0x90, 0x89, 0x4e, 0x62, 0x09, 0x0a, 0x36, 0x89, 0x25, 0x80, 0xe4,
- 0x76, 0x87, 0xd4, 0xcb, 0xca, 0xe7, 0x32, 0x5d, 0xaf, 0xe5, 0x83, 0xbe, 0xec, 0x90, 0xb9, 0x79,
- 0x31, 0x35, 0x95, 0xad, 0xf2, 0xf9, 0x4c, 0x97, 0x6b, 0x74, 0x69, 0x86, 0x4b, 0xc9, 0x82, 0xbb,
- 0x98, 0x9a, 0xac, 0x54, 0xf9, 0xc1, 0x4c, 0x97, 0x6b, 0xef, 0x90, 0x63, 0x5a, 0x9e, 0xd3, 0x67,
- 0xb9, 0xa7, 0x88, 0x60, 0xf4, 0xdf, 0x64, 0x92, 0xae, 0x22, 0x41, 0x79, 0x89, 0x90, 0x15, 0xbb,
- 0xe5, 0x06, 0x4a, 0xff, 0x85, 0x4c, 0xd2, 0x37, 0x2f, 0x2c, 0x16, 0xfe, 0x22, 0x14, 0xce, 0x4f,
- 0xdd, 0xf3, 0xa8, 0x63, 0xe9, 0x0d, 0xec, 0xce, 0xaa, 0x67, 0x3b, 0xfa, 0x2a, 0x9d, 0xb2, 0xf4,
- 0xe5, 0x06, 0x55, 0xbe, 0x98, 0x89, 0x5a, 0xb0, 0x9d, 0x49, 0x99, 0x05, 0xdb, 0x19, 0x4b, 0xd6,
- 0xe0, 0xa1, 0x34, 0x6c, 0xd9, 0x74, 0xb1, 0x9e, 0x2f, 0x65, 0xa2, 0x26, 0x6c, 0x17, 0x5a, 0x66,
- 0xc2, 0x76, 0x41, 0x93, 0x6b, 0x30, 0x30, 0x61, 0xfb, 0xd3, 0xef, 0x7f, 0x1b, 0x73, 0x86, 0x0c,
- 0x30, 0x33, 0x3d, 0x5a, 0x48, 0x26, 0xca, 0x88, 0x41, 0xfd, 0xe5, 0x64, 0x99, 0xf0, 0xf2, 0x29,
- 0xf8, 0x21, 0xca, 0x08, 0x71, 0xff, 0x77, 0xc9, 0x32, 0xe1, 0x1d, 0x57, 0xf0, 0x83, 0xcd, 0x24,
- 0xbc, 0xc6, 0xb9, 0xe9, 0x12, 0xb3, 0xdb, 0x26, 0xd7, 0xf4, 0x46, 0x83, 0x5a, 0xab, 0x54, 0xf9,
- 0x4a, 0x6c, 0x26, 0x49, 0x27, 0x63, 0x33, 0x49, 0x3a, 0x86, 0x7c, 0x0a, 0xce, 0xdd, 0xd6, 0x1b,
- 0xa6, 0x11, 0xe2, 0xfc, 0xfc, 0x97, 0xca, 0x0f, 0x65, 0xa2, 0xbb, 0xe9, 0x0e, 0x74, 0x6c, 0x37,
- 0xdd, 0x01, 0x45, 0xe6, 0x80, 0xe0, 0x32, 0x1a, 0xcc, 0x16, 0x6c, 0x7d, 0x56, 0xfe, 0xfb, 0x4c,
- 0xd4, 0x4e, 0x4d, 0x92, 0x30, 0x3b, 0x35, 0x09, 0x25, 0xb5, 0xce, 0x21, 0xce, 0x95, 0x1f, 0xce,
- 0x44, 0x4f, 0x6b, 0x3a, 0x11, 0xce, 0xf4, 0x68, 0x9d, 0xe3, 0xa4, 0xdf, 0x80, 0xd1, 0xea, 0x62,
- 0x65, 0x7a, 0x7a, 0xaa, 0x7a, 0xbb, 0x52, 0x46, 0xf7, 0x5d, 0x43, 0xf9, 0x91, 0xd8, 0x8a, 0x15,
- 0x27, 0x60, 0x2b, 0x56, 0x1c, 0x46, 0xaa, 0x70, 0x86, 0x09, 0x62, 0xd1, 0xa1, 0x2b, 0xd4, 0xa1,
- 0x56, 0xdd, 0x1f, 0x96, 0x3f, 0x96, 0x89, 0x1a, 0x0a, 0x69, 0x44, 0xcc, 0x50, 0x48, 0x83, 0x93,
- 0x75, 0xb8, 0x10, 0x3f, 0xcc, 0x91, 0xdf, 0x43, 0x29, 0x3f, 0x9e, 0x89, 0xd9, 0xb3, 0x5d, 0x88,
- 0xd1, 0x9e, 0xed, 0x82, 0x27, 0x16, 0x3c, 0x2c, 0x4e, 0x46, 0x84, 0xcf, 0x64, 0xbc, 0xb6, 0x9f,
- 0xe0, 0xb5, 0x3d, 0x1e, 0xfa, 0xf4, 0x75, 0xa1, 0x9e, 0xe9, 0xd1, 0xba, 0xb3, 0x63, 0xaa, 0x92,
- 0x8c, 0xc5, 0xad, 0xfc, 0x64, 0x26, 0xdd, 0xa9, 0x24, 0xe2, 0x69, 0x9c, 0x16, 0xc4, 0xfb, 0x8d,
- 0x4e, 0x91, 0xa4, 0x95, 0x9f, 0x8a, 0x0d, 0x99, 0x74, 0x32, 0x36, 0x64, 0x3a, 0x84, 0xa2, 0x7e,
- 0x0d, 0xc6, 0xb8, 0x5e, 0x2e, 0xea, 0x38, 0x92, 0xac, 0x55, 0x6a, 0x28, 0xff, 0x43, 0x6c, 0xc1,
- 0x4a, 0x50, 0xa0, 0x77, 0x4e, 0x1c, 0xc8, 0x66, 0xdf, 0x6a, 0x4b, 0xb7, 0x2c, 0x3c, 0x29, 0x55,
- 0xfe, 0xc7, 0xd8, 0xec, 0x1b, 0xa2, 0xd0, 0xf7, 0x36, 0xf8, 0x85, 0x39, 0x7d, 0xd2, 0x9e, 0x0b,
- 0x2a, 0x5f, 0x8d, 0xad, 0x73, 0xa9, 0x54, 0x6c, 0x9d, 0x4b, 0x7f, 0x6d, 0x78, 0xbb, 0xc3, 0x53,
- 0x3b, 0xe5, 0xa7, 0xbb, 0xf3, 0x0d, 0xd7, 0xcf, 0xf4, 0x97, 0x7a, 0xb7, 0x3b, 0x3c, 0x53, 0x53,
- 0x7e, 0xa6, 0x3b, 0xdf, 0xd0, 0x5d, 0x2e, 0xfd, 0x95, 0x5b, 0xad, 0xf3, 0x13, 0x2f, 0xe5, 0x67,
- 0xe3, 0x13, 0x42, 0x07, 0x42, 0x9c, 0x10, 0x3a, 0xbd, 0x13, 0x7b, 0x2d, 0xe5, 0xa1, 0x95, 0xf2,
- 0x73, 0xb1, 0xbe, 0x4e, 0x50, 0xb0, 0xbe, 0x4e, 0xbe, 0xcf, 0x7a, 0x2d, 0xe5, 0x3d, 0x91, 0xf2,
- 0x3f, 0x77, 0xe6, 0x15, 0x08, 0x35, 0xe5, 0x19, 0xd2, 0x6b, 0x29, 0xcf, 0x66, 0x94, 0xff, 0xa5,
- 0x33, 0xaf, 0xd0, 0xeb, 0x26, 0xf9, 0xda, 0xe6, 0x0d, 0x38, 0xcb, 0xe7, 0xaf, 0x69, 0x6a, 0xd0,
- 0xc8, 0x87, 0xfe, 0x7c, 0x6c, 0xa8, 0xa4, 0x93, 0xe1, 0x21, 0x73, 0x2a, 0x26, 0x8d, 0xb5, 0x68,
- 0xeb, 0x2f, 0xec, 0xc0, 0x3a, 0x34, 0x81, 0xd3, 0x31, 0x13, 0x7d, 0xd0, 0x8b, 0xbb, 0x4f, 0xf5,
- 0xab, 0x19, 0x18, 0xaa, 0x7a, 0x0e, 0xd5, 0x9b, 0x22, 0x72, 0xc2, 0x79, 0xe8, 0xe7, 0x6e, 0x5c,
- 0xfe, 0x4b, 0x0a, 0x2d, 0xf8, 0x4d, 0x2e, 0xc1, 0xc8, 0xac, 0xee, 0x7a, 0x58, 0xb2, 0x62, 0x19,
- 0xf4, 0x1e, 0x3e, 0x61, 0xc8, 0x69, 0x31, 0x28, 0x99, 0xe5, 0x74, 0xbc, 0x1c, 0x86, 0xac, 0xc9,
- 0xed, 0x18, 0x30, 0xa0, 0xff, 0x9d, 0xad, 0x62, 0x0f, 0xc6, 0x07, 0x88, 0x95, 0x55, 0xbf, 0x99,
- 0x81, 0x84, 0x83, 0xd9, 0xfe, 0x5f, 0x38, 0x2d, 0xc0, 0xa9, 0x58, 0x98, 0x24, 0xf1, 0x0e, 0x63,
- 0x97, 0x51, 0x94, 0xe2, 0xa5, 0xc9, 0x07, 0x03, 0xff, 0xff, 0x5b, 0xda, 0xac, 0x08, 0x06, 0xd1,
- 0xb7, 0xbd, 0x55, 0xcc, 0xb5, 0x9d, 0x86, 0x26, 0xa1, 0xc4, 0x63, 0xe5, 0xff, 0x63, 0x34, 0x8c,
- 0x01, 0x43, 0x2e, 0x89, 0xe7, 0x56, 0x99, 0x30, 0x84, 0x44, 0x2c, 0x1d, 0x1c, 0x7f, 0x5e, 0xf5,
- 0x31, 0x18, 0xaa, 0x34, 0x5b, 0xd4, 0x71, 0x6d, 0x4b, 0xf7, 0x6c, 0x3f, 0xed, 0x34, 0x86, 0x17,
- 0x30, 0x25, 0xb8, 0xfc, 0xe4, 0x5d, 0xa6, 0x27, 0x57, 0xfc, 0xdc, 0x01, 0x39, 0x8c, 0xbe, 0x83,
- 0x21, 0x24, 0xe3, 0x29, 0xc6, 0x38, 0x05, 0x23, 0xbd, 0xe5, 0xea, 0xf8, 0x52, 0x24, 0x20, 0x6d,
- 0x33, 0x80, 0x4c, 0x8a, 0x14, 0xe4, 0x49, 0x28, 0xe0, 0xc9, 0x9a, 0x8b, 0x39, 0x41, 0x44, 0x60,
- 0x8b, 0x06, 0x42, 0xe4, 0x30, 0x02, 0x9c, 0x86, 0xdc, 0x84, 0xd1, 0xf0, 0xda, 0x00, 0x13, 0xa5,
- 0xfb, 0x51, 0x80, 0x31, 0x35, 0xdb, 0x7a, 0x80, 0xe3, 0x19, 0xd6, 0x65, 0x16, 0x89, 0x82, 0x64,
- 0x06, 0x4e, 0x85, 0x30, 0x26, 0x22, 0x3f, 0xfa, 0x38, 0xa6, 0x26, 0x94, 0x78, 0x31, 0x71, 0xca,
- 0xac, 0xe2, 0xc5, 0x48, 0x05, 0xfa, 0xfc, 0xa8, 0x16, 0xfd, 0x3b, 0x2a, 0xe9, 0x69, 0x11, 0xd5,
- 0xa2, 0x4f, 0x8e, 0x67, 0xe1, 0x97, 0x27, 0xd3, 0x30, 0xa2, 0xd9, 0x6d, 0x8f, 0x2e, 0xd9, 0x62,
- 0xb1, 0x16, 0xe1, 0x69, 0xb1, 0x4d, 0x0e, 0xc3, 0xd4, 0x3c, 0xdb, 0xcf, 0x6c, 0x27, 0x67, 0x58,
- 0x8b, 0x96, 0x22, 0xf3, 0x30, 0x96, 0xb8, 0x60, 0x91, 0xf3, 0xcd, 0x49, 0x9f, 0x97, 0x64, 0x96,
- 0x2c, 0x4a, 0xbe, 0x3f, 0x03, 0x85, 0x25, 0x47, 0x37, 0x3d, 0x57, 0x3c, 0x32, 0x79, 0x60, 0x7c,
- 0xc3, 0xd1, 0x5b, 0x4c, 0x3f, 0xc6, 0x31, 0xbc, 0xd2, 0x6d, 0xbd, 0xd1, 0xa6, 0xee, 0xc4, 0x1d,
- 0xf6, 0x75, 0xff, 0x70, 0xab, 0xf8, 0xd1, 0x55, 0xdc, 0xc6, 0x8d, 0xd7, 0xed, 0xe6, 0xd5, 0x55,
- 0x47, 0xbf, 0x6b, 0x7a, 0x38, 0x75, 0xe8, 0x8d, 0xab, 0x1e, 0x6d, 0xe0, 0x6e, 0xf1, 0xaa, 0xde,
- 0x32, 0xaf, 0x62, 0x18, 0xbf, 0xab, 0x01, 0x27, 0x5e, 0x03, 0x53, 0x01, 0x0f, 0xff, 0x92, 0x55,
- 0x80, 0xe3, 0xc8, 0x3c, 0xdb, 0x64, 0xe1, 0xa7, 0x96, 0x5a, 0x2d, 0xf1, 0x62, 0x45, 0xda, 0x63,
- 0xf9, 0x18, 0xae, 0xd8, 0x81, 0xc0, 0xf4, 0x96, 0x9c, 0x6e, 0x5f, 0xe2, 0xc0, 0xb4, 0x60, 0x49,
- 0xb4, 0xc8, 0x17, 0xd3, 0x70, 0x28, 0x71, 0xbf, 0xb1, 0x29, 0x42, 0x8a, 0x17, 0x23, 0xcb, 0x70,
- 0x4a, 0xf0, 0x0d, 0xe2, 0xc5, 0x8e, 0x44, 0x67, 0x85, 0x18, 0x9a, 0x2b, 0x6d, 0xd0, 0x46, 0x43,
- 0x80, 0xe5, 0x3a, 0x62, 0x25, 0xc8, 0x44, 0x98, 0x2a, 0x09, 0x73, 0xfb, 0x2b, 0xa7, 0x50, 0x63,
- 0x2f, 0x6c, 0x6f, 0x15, 0x15, 0xbf, 0x3c, 0x06, 0x78, 0x49, 0x4d, 0xfc, 0x87, 0x45, 0x64, 0x1e,
- 0x5c, 0xeb, 0x47, 0x53, 0x78, 0xc4, 0x75, 0x3e, 0x5a, 0x84, 0x4c, 0xc2, 0x70, 0xe0, 0x30, 0x7b,
- 0xeb, 0x56, 0xa5, 0x8c, 0x4f, 0x62, 0x44, 0x12, 0xfb, 0x58, 0x28, 0x5a, 0x99, 0x49, 0xa4, 0x8c,
- 0xf4, 0x76, 0x8e, 0xbf, 0x91, 0x89, 0xbd, 0x9d, 0x6b, 0xa5, 0xbc, 0x9d, 0x5b, 0x24, 0x2f, 0xc3,
- 0x60, 0xe9, 0x4e, 0x55, 0xbc, 0x09, 0x74, 0x95, 0xd3, 0x61, 0x0c, 0x70, 0xcc, 0xfd, 0x28, 0xde,
- 0x0f, 0xca, 0x4d, 0x97, 0xe9, 0xc9, 0x14, 0x8c, 0x44, 0xee, 0xdc, 0x5d, 0xe5, 0x0c, 0x72, 0xe0,
- 0xe9, 0xf7, 0x11, 0x53, 0x73, 0x04, 0x2a, 0x92, 0x8d, 0x34, 0x52, 0x88, 0x69, 0x0d, 0xdb, 0xb6,
- 0x36, 0x1a, 0xf6, 0x86, 0x46, 0xf1, 0xf9, 0x21, 0x3e, 0xb0, 0xe9, 0xe7, 0x5a, 0x63, 0x08, 0x54,
- 0xcd, 0xe1, 0xb8, 0x48, 0xfa, 0xd1, 0x68, 0x31, 0xf2, 0x16, 0x10, 0x8c, 0xc0, 0x4c, 0x0d, 0xff,
- 0x08, 0xb6, 0x52, 0x76, 0x95, 0xb3, 0x18, 0x66, 0x8e, 0xc4, 0xdf, 0xbf, 0x56, 0xca, 0x13, 0x97,
- 0xc4, 0xf4, 0x71, 0x51, 0xe7, 0xa5, 0x6a, 0x8e, 0xc0, 0xd5, 0x4c, 0x43, 0x6e, 0x71, 0x0a, 0x57,
- 0xb2, 0x01, 0xe7, 0x16, 0x1d, 0x7a, 0xd7, 0xb4, 0xdb, 0xae, 0xbf, 0x7c, 0xf8, 0xf3, 0xd6, 0xb9,
- 0x1d, 0xe7, 0xad, 0x47, 0x45, 0xc5, 0x0f, 0xb4, 0x1c, 0x7a, 0xb7, 0xe6, 0x07, 0x17, 0x8b, 0x44,
- 0xe5, 0xe9, 0xc4, 0x9d, 0x89, 0x0b, 0x9f, 0x5e, 0x0a, 0xb8, 0x49, 0x5d, 0x45, 0x09, 0xa7, 0x5a,
- 0xfe, 0x92, 0xd4, 0x0c, 0x70, 0xb2, 0xb8, 0x62, 0xc5, 0x88, 0x06, 0xe4, 0xc6, 0xa4, 0x7f, 0x1c,
- 0x5f, 0xaa, 0xf3, 0x54, 0x44, 0xca, 0x83, 0xc8, 0x4c, 0x65, 0x62, 0x59, 0xad, 0x07, 0x81, 0x06,
- 0x6b, 0xba, 0xc0, 0xcb, 0x62, 0x49, 0x96, 0x26, 0xb3, 0x30, 0xba, 0xe8, 0xe0, 0xce, 0xe2, 0x26,
- 0xdd, 0x5c, 0xb4, 0x1b, 0x66, 0x7d, 0x13, 0xdf, 0xf9, 0x88, 0xa9, 0xb2, 0xc5, 0x71, 0xb5, 0x75,
- 0xba, 0x59, 0x6b, 0x21, 0x56, 0x5e, 0x56, 0xe2, 0x25, 0xe5, 0xc0, 0x5f, 0x0f, 0xed, 0x2e, 0xf0,
- 0x17, 0x85, 0x51, 0x71, 0x98, 0x7f, 0xcf, 0xa3, 0x16, 0x5b, 0xea, 0x5d, 0xf1, 0xa6, 0x47, 0x89,
- 0x1d, 0xfe, 0x07, 0x78, 0x91, 0x8a, 0x94, 0x8f, 0x32, 0x1a, 0x80, 0xe5, 0x86, 0xc5, 0x8b, 0xa8,
- 0x5f, 0xca, 0xc9, 0x53, 0x27, 0xb9, 0x00, 0x79, 0x29, 0xee, 0x34, 0xc6, 0x0b, 0xc2, 0x18, 0x7d,
- 0x79, 0x11, 0x8c, 0x6c, 0x40, 0x98, 0x1d, 0xc1, 0xc3, 0x56, 0x4c, 0xca, 0xe1, 0x07, 0x03, 0x34,
- 0x0d, 0x2d, 0x24, 0xc0, 0x84, 0x08, 0x61, 0xc6, 0xf6, 0x9c, 0x94, 0x10, 0x21, 0xcc, 0xd8, 0x1e,
- 0xc9, 0xd7, 0x7e, 0x0d, 0x06, 0xfd, 0xcd, 0x68, 0x18, 0x2f, 0x0b, 0x03, 0xfa, 0xf9, 0x49, 0x5b,
- 0x79, 0xbc, 0x40, 0x89, 0x88, 0xbc, 0x88, 0x69, 0x8b, 0xfd, 0x47, 0xc3, 0xbd, 0xa1, 0xf9, 0x22,
- 0x0f, 0xfc, 0x58, 0xde, 0x62, 0xff, 0xed, 0xf0, 0x04, 0x0c, 0xcb, 0x9a, 0xe4, 0xa7, 0x80, 0xc1,
- 0x39, 0x2f, 0xa2, 0x7e, 0x72, 0xdf, 0x46, 0x8b, 0x90, 0x05, 0x18, 0x4b, 0x28, 0x8f, 0x88, 0xae,
- 0x85, 0xc9, 0xe6, 0x52, 0x34, 0x4f, 0x5e, 0x53, 0x13, 0x65, 0xd5, 0xef, 0xc9, 0x26, 0x56, 0x0c,
- 0x26, 0x18, 0x41, 0x25, 0x75, 0x0e, 0x0a, 0xc6, 0x67, 0xcd, 0x05, 0x23, 0x11, 0x91, 0xcb, 0xd0,
- 0x1f, 0xcb, 0x5c, 0x8c, 0xcf, 0xc8, 0x83, 0xb4, 0xc5, 0x01, 0x96, 0x5c, 0x93, 0x92, 0x12, 0x49,
- 0x51, 0xe9, 0xfc, 0xa4, 0x44, 0xf2, 0x84, 0x1b, 0xa4, 0x27, 0xba, 0x16, 0x8b, 0x7f, 0xee, 0x27,
- 0x98, 0x4d, 0xae, 0x56, 0x61, 0x76, 0x87, 0xc0, 0x56, 0xec, 0xdd, 0xc9, 0x56, 0x54, 0x7f, 0x3b,
- 0x93, 0xd4, 0x7e, 0x72, 0x3d, 0x19, 0x9a, 0x8a, 0xe7, 0x96, 0xf5, 0x81, 0x72, 0xad, 0x41, 0x90,
- 0xaa, 0x48, 0x90, 0xa9, 0xec, 0xbe, 0x83, 0x4c, 0xe5, 0xf6, 0x18, 0x64, 0x4a, 0xfd, 0xf7, 0xf9,
- 0xae, 0x2e, 0x61, 0x47, 0x12, 0x4c, 0xe1, 0x05, 0xb6, 0xdf, 0x61, 0xb5, 0x97, 0xdc, 0x84, 0xd5,
- 0xce, 0x3d, 0x5e, 0x6a, 0x3a, 0x1f, 0x35, 0xae, 0x16, 0xa5, 0x24, 0xaf, 0xc0, 0x90, 0xff, 0x01,
- 0x18, 0xbc, 0x4c, 0x0a, 0xba, 0x15, 0xac, 0x35, 0xf1, 0xf4, 0xc0, 0x72, 0x01, 0xf2, 0x2c, 0x0c,
- 0xa0, 0xa5, 0xd1, 0xd2, 0xeb, 0x7e, 0x64, 0x3b, 0x1e, 0x0a, 0xcf, 0x07, 0xca, 0x01, 0x03, 0x02,
- 0x4a, 0xf2, 0x69, 0x28, 0x44, 0xf2, 0x53, 0x5f, 0xdd, 0x85, 0x0f, 0xdd, 0xb8, 0x1c, 0x60, 0x95,
- 0xef, 0x1d, 0xe2, 0xb9, 0xa9, 0x05, 0x53, 0xb2, 0x04, 0xa7, 0x17, 0x1d, 0x6a, 0xa0, 0xb7, 0xe6,
- 0xd4, 0xbd, 0x96, 0x23, 0xc2, 0xdf, 0xf2, 0x01, 0x8c, 0x4b, 0x47, 0xcb, 0x47, 0xb3, 0x45, 0x4d,
- 0xe0, 0x25, 0x46, 0x69, 0xc5, 0x99, 0x3d, 0xc1, 0x5b, 0x72, 0x93, 0x6e, 0x6e, 0xd8, 0x8e, 0xc1,
- 0x23, 0xc4, 0x0a, 0x7b, 0x42, 0x08, 0x7a, 0x5d, 0xa0, 0x64, 0x7b, 0x22, 0x5a, 0xe8, 0xfc, 0x0b,
- 0x30, 0xb8, 0xdf, 0x20, 0xa5, 0xbf, 0x9a, 0xed, 0xe0, 0x5c, 0x7d, 0xff, 0x26, 0x97, 0x09, 0x12,
- 0x7d, 0xf5, 0x76, 0x48, 0xf4, 0xf5, 0x9d, 0x6c, 0x07, 0xcf, 0xf1, 0xfb, 0x3a, 0x21, 0x4f, 0x20,
- 0x8c, 0x68, 0x42, 0x9e, 0x30, 0x17, 0x92, 0x69, 0x68, 0x32, 0x51, 0x2c, 0x75, 0x57, 0x61, 0xc7,
- 0xd4, 0x5d, 0x3f, 0x9f, 0xeb, 0xe6, 0x59, 0x7f, 0x22, 0xfb, 0xbd, 0xc8, 0xfe, 0x1a, 0x0c, 0x06,
- 0x92, 0xad, 0x94, 0xd1, 0x9e, 0x19, 0x0e, 0x42, 0x22, 0x73, 0x30, 0x96, 0x91, 0x88, 0xc8, 0x15,
- 0xde, 0xd6, 0xaa, 0xf9, 0x36, 0x0f, 0x0b, 0x3a, 0x2c, 0x02, 0x3e, 0xea, 0x9e, 0x5e, 0x73, 0xcd,
- 0xb7, 0xa9, 0x16, 0xa0, 0xd5, 0xff, 0x27, 0x9b, 0xfa, 0x3c, 0xe1, 0xa4, 0x8f, 0xf6, 0xd0, 0x47,
- 0x29, 0x42, 0xe4, 0x0f, 0x2b, 0x4e, 0x84, 0xb8, 0x07, 0x21, 0xfe, 0x45, 0x36, 0xf5, 0x19, 0xca,
- 0x89, 0x10, 0xf7, 0x32, 0x5b, 0x3c, 0x09, 0x03, 0x9a, 0xbd, 0xe1, 0x62, 0x9e, 0x5e, 0x31, 0x57,
- 0xe0, 0x44, 0xed, 0xd8, 0x1b, 0x2e, 0xcf, 0x61, 0xac, 0x85, 0x04, 0xea, 0x5f, 0x65, 0xbb, 0x3c,
- 0xd4, 0x39, 0x11, 0xfc, 0xbb, 0xb9, 0x44, 0xfe, 0x7a, 0x36, 0xf2, 0x10, 0xe8, 0xbe, 0xce, 0x6c,
- 0x59, 0xad, 0xaf, 0xd1, 0xa6, 0x1e, 0xcf, 0x6c, 0xe9, 0x22, 0x54, 0x24, 0xc6, 0x0a, 0x49, 0xd4,
- 0xaf, 0x65, 0x63, 0x2f, 0xa1, 0x4e, 0x64, 0xb7, 0x6b, 0xd9, 0x05, 0x5a, 0x27, 0x1e, 0x77, 0x9d,
- 0x48, 0x6e, 0xb7, 0x92, 0xfb, 0x5c, 0x36, 0xf6, 0x0e, 0xee, 0xfe, 0x4d, 0x72, 0xf7, 0xb5, 0x6c,
- 0xf2, 0x4d, 0xdf, 0xfd, 0xab, 0x49, 0x4f, 0xc2, 0x80, 0x90, 0x43, 0xb0, 0x54, 0xf0, 0x79, 0x9f,
- 0x03, 0xf1, 0x00, 0x35, 0x20, 0x50, 0xbf, 0x2f, 0x0b, 0xd1, 0xf7, 0x89, 0xf7, 0xa9, 0x0e, 0xfd,
- 0x7a, 0x36, 0xfa, 0x32, 0xf3, 0xfe, 0xd5, 0x9f, 0x71, 0x80, 0x6a, 0x7b, 0xb9, 0x2e, 0x02, 0xfb,
- 0xf5, 0x4a, 0x27, 0xf0, 0x01, 0x54, 0x93, 0x28, 0xd4, 0xff, 0x90, 0x4d, 0x7d, 0x2e, 0x7a, 0xff,
- 0x0a, 0xf0, 0x19, 0x3c, 0x15, 0xaf, 0x5b, 0xe1, 0x44, 0x8e, 0x87, 0x90, 0x6c, 0xfc, 0x25, 0xf2,
- 0x71, 0xf8, 0x84, 0xe4, 0x23, 0x29, 0xe6, 0x1a, 0x46, 0x3b, 0x0d, 0xcd, 0x35, 0xf9, 0x86, 0x41,
- 0x32, 0xdc, 0xfe, 0x4e, 0x76, 0xa7, 0xd7, 0xb5, 0xf7, 0xf3, 0xaa, 0xda, 0xb7, 0xa8, 0x6f, 0x62,
- 0x14, 0x28, 0xd6, 0x13, 0x43, 0x3c, 0x5b, 0x44, 0x8b, 0x83, 0xe4, 0x1b, 0x31, 0x41, 0xa5, 0xfe,
- 0x79, 0x6f, 0xfa, 0xd3, 0xce, 0xfb, 0x57, 0x84, 0x17, 0x20, 0xbf, 0xa8, 0x7b, 0x6b, 0x42, 0x93,
- 0xf1, 0xb6, 0xae, 0xa5, 0x7b, 0x6b, 0x1a, 0x42, 0xc9, 0x15, 0xe8, 0xd7, 0xf4, 0x0d, 0x7e, 0xe6,
- 0x59, 0x08, 0x33, 0x79, 0x38, 0xfa, 0x46, 0x8d, 0x9f, 0x7b, 0x06, 0x68, 0xa2, 0x06, 0x99, 0x64,
- 0xf8, 0xc9, 0x37, 0xa6, 0x61, 0xe0, 0x99, 0x64, 0x82, 0xfc, 0x31, 0x17, 0x20, 0x3f, 0x61, 0x1b,
- 0x9b, 0xe8, 0xcc, 0x32, 0xc4, 0x2b, 0x5b, 0xb6, 0x8d, 0x4d, 0x0d, 0xa1, 0xe4, 0xf3, 0x19, 0xe8,
- 0x9b, 0xa1, 0xba, 0xc1, 0x46, 0xc8, 0x40, 0x37, 0x5f, 0x90, 0x8f, 0x1f, 0x8e, 0x2f, 0xc8, 0xd8,
- 0x1a, 0xaf, 0x4c, 0x56, 0x14, 0x51, 0x3f, 0xb9, 0x01, 0xfd, 0x93, 0xba, 0x47, 0x57, 0x6d, 0x67,
- 0x13, 0xbd, 0x5b, 0x46, 0x42, 0x47, 0xc6, 0x88, 0xfe, 0xf8, 0x44, 0xfc, 0x66, 0xac, 0x2e, 0x7e,
- 0x69, 0x41, 0x61, 0x26, 0x16, 0x91, 0x61, 0x72, 0x30, 0x14, 0x0b, 0x4f, 0x25, 0x19, 0x24, 0x92,
- 0x0c, 0x8e, 0x95, 0x87, 0xd2, 0x8f, 0x95, 0xd1, 0x7a, 0x44, 0x0f, 0x38, 0xcc, 0xdf, 0x32, 0x8c,
- 0x8b, 0x3e, 0xb7, 0x1e, 0x11, 0x8a, 0xe9, 0x5b, 0x34, 0x89, 0x44, 0xfd, 0x56, 0x2f, 0xa4, 0x3e,
- 0x04, 0x3b, 0x51, 0xf2, 0x13, 0x25, 0x0f, 0x95, 0xbc, 0x9c, 0x50, 0xf2, 0xf3, 0xc9, 0xa7, 0x85,
- 0xef, 0x51, 0x0d, 0xff, 0xd1, 0x7c, 0xe2, 0x61, 0xf2, 0xfd, 0xbd, 0xbb, 0x0c, 0xa5, 0xd7, 0xbb,
- 0xa3, 0xf4, 0x82, 0x01, 0x51, 0xd8, 0x71, 0x40, 0xf4, 0xed, 0x76, 0x40, 0xf4, 0x77, 0x1c, 0x10,
- 0xa1, 0x82, 0x0c, 0x74, 0x54, 0x90, 0x8a, 0x18, 0x34, 0xd0, 0x3d, 0x37, 0xd8, 0x85, 0xed, 0xad,
- 0xe2, 0x08, 0x1b, 0x4d, 0xa9, 0x59, 0xc1, 0x90, 0x85, 0xfa, 0xcd, 0x7c, 0x97, 0x68, 0x02, 0x47,
- 0xa2, 0x23, 0xcf, 0x40, 0xae, 0xd4, 0x6a, 0x09, 0xfd, 0x38, 0x2d, 0x05, 0x32, 0xe8, 0x50, 0x8a,
- 0x51, 0x93, 0x17, 0x21, 0x57, 0xba, 0x53, 0x8d, 0xc7, 0x44, 0x2f, 0xdd, 0xa9, 0x8a, 0x2f, 0xe9,
- 0x58, 0xf6, 0x4e, 0x95, 0xbc, 0x14, 0x06, 0x27, 0x5b, 0x6b, 0x5b, 0xeb, 0x62, 0xa3, 0x28, 0x9c,
- 0x60, 0x7d, 0x4f, 0x9b, 0x3a, 0x43, 0xb1, 0xed, 0x62, 0x8c, 0x36, 0xa6, 0x4d, 0x85, 0xdd, 0x6b,
- 0x53, 0xdf, 0x8e, 0xda, 0xd4, 0xbf, 0x5b, 0x6d, 0x1a, 0xd8, 0x85, 0x36, 0xc1, 0x8e, 0xda, 0x34,
- 0x78, 0x70, 0x6d, 0x6a, 0xc1, 0xf9, 0x64, 0x04, 0x98, 0x40, 0x23, 0x34, 0x20, 0x49, 0xac, 0x70,
- 0x2c, 0xc1, 0xab, 0xff, 0x36, 0xc7, 0xd6, 0x78, 0x26, 0xd8, 0x78, 0x1e, 0x55, 0x2d, 0xa5, 0xb4,
- 0xfa, 0xab, 0xd9, 0xce, 0x81, 0x6b, 0x8e, 0xe7, 0x14, 0xf7, 0x5d, 0xa9, 0x52, 0xca, 0x47, 0x1f,
- 0x12, 0x76, 0x96, 0x72, 0x8c, 0x6d, 0x9a, 0xcc, 0xbe, 0x91, 0xe9, 0x14, 0x4d, 0xe7, 0x40, 0x12,
- 0x7b, 0x3c, 0xe9, 0xac, 0x86, 0xde, 0xf3, 0x6e, 0xd4, 0x4b, 0x2d, 0x9e, 0x58, 0x34, 0xb7, 0xcf,
- 0xc4, 0xa2, 0xbf, 0x9d, 0x81, 0xd3, 0x37, 0xdb, 0xcb, 0x54, 0x38, 0xa7, 0x05, 0xcd, 0x78, 0x0b,
- 0x80, 0x81, 0x85, 0x13, 0x4b, 0x06, 0x9d, 0x58, 0x3e, 0x24, 0x47, 0xc2, 0x89, 0x15, 0x18, 0x0f,
- 0xa9, 0xb9, 0x03, 0xcb, 0xc3, 0xbe, 0x8b, 0xe5, 0x7a, 0x7b, 0x99, 0xd6, 0x12, 0x9e, 0x2c, 0x12,
- 0xf7, 0xf3, 0x2f, 0x73, 0xe7, 0xf5, 0xfd, 0x3a, 0x8d, 0xfc, 0x72, 0xb6, 0x63, 0xf0, 0xa1, 0x63,
- 0x9b, 0xfb, 0xe5, 0x93, 0xa9, 0xbd, 0x12, 0xcf, 0x01, 0x93, 0x42, 0x12, 0xe3, 0x98, 0xc6, 0x25,
- 0x5d, 0x60, 0xc7, 0x3c, 0x23, 0xd1, 0xbb, 0x2a, 0xb0, 0x3f, 0xcc, 0x74, 0x0c, 0x12, 0x75, 0x5c,
- 0x05, 0xa6, 0xfe, 0xb3, 0x9c, 0x1f, 0x9b, 0xea, 0x40, 0x9f, 0xf0, 0x24, 0x0c, 0x88, 0x04, 0x1c,
- 0x51, 0xdf, 0x5a, 0x71, 0x94, 0x87, 0x47, 0xc3, 0x01, 0x01, 0x5b, 0xe6, 0xfd, 0xd8, 0x39, 0x41,
- 0x2a, 0x5a, 0x5c, 0xe6, 0x4d, 0x01, 0x65, 0xf4, 0x12, 0x09, 0x5b, 0xc8, 0xa7, 0xee, 0x99, 0x1e,
- 0x5a, 0x05, 0xac, 0x2f, 0x73, 0x7c, 0x21, 0xa7, 0xf7, 0x4c, 0x8f, 0xdb, 0x04, 0x01, 0x9a, 0x2d,
- 0xd2, 0xd5, 0x30, 0xdf, 0xa2, 0x58, 0xa4, 0x5d, 0x91, 0x76, 0x52, 0x3c, 0xe6, 0x7a, 0x12, 0x06,
- 0x84, 0xc3, 0xaa, 0x70, 0x33, 0x11, 0xad, 0x15, 0x2e, 0xae, 0xd8, 0xda, 0x80, 0x80, 0x71, 0xd4,
- 0xe8, 0x6a, 0xe8, 0x58, 0x87, 0x1c, 0x1d, 0x84, 0x68, 0x02, 0x43, 0xae, 0xc1, 0x48, 0xd5, 0xd3,
- 0x2d, 0x43, 0x77, 0x8c, 0x85, 0xb6, 0xd7, 0x6a, 0x7b, 0xb2, 0x51, 0xea, 0x7a, 0x86, 0xdd, 0xf6,
- 0xb4, 0x18, 0x05, 0xf9, 0x30, 0x0c, 0xfb, 0x90, 0x29, 0xc7, 0xb1, 0x1d, 0xd9, 0xf2, 0x70, 0x3d,
- 0x83, 0x3a, 0x8e, 0x16, 0x25, 0x20, 0x1f, 0x81, 0xe1, 0x8a, 0x75, 0xd7, 0xae, 0xf3, 0x47, 0x7b,
- 0xda, 0xac, 0xb0, 0x43, 0xf0, 0x81, 0x94, 0x19, 0x20, 0x6a, 0x6d, 0xa7, 0xa1, 0x45, 0x09, 0xd5,
- 0xed, 0x6c, 0x32, 0x84, 0xd7, 0xfd, 0xbb, 0x69, 0xb9, 0x12, 0x75, 0xa6, 0x43, 0x0f, 0x52, 0x34,
- 0x08, 0x65, 0x5f, 0x5e, 0x6e, 0x17, 0x5e, 0x83, 0xfe, 0x9b, 0x74, 0x93, 0xfb, 0x7d, 0x16, 0x42,
- 0x57, 0xe1, 0x75, 0x01, 0x93, 0x4f, 0x5c, 0x7d, 0x3a, 0xf5, 0xeb, 0xd9, 0x64, 0x70, 0xb2, 0xfb,
- 0x57, 0xd8, 0x1f, 0x86, 0x3e, 0x14, 0x65, 0xc5, 0x3f, 0xf2, 0x47, 0x01, 0xa2, 0xb8, 0xa3, 0x1e,
- 0xc8, 0x3e, 0x99, 0xfa, 0xd3, 0x85, 0x78, 0xc4, 0xba, 0xfb, 0x57, 0x7a, 0x1f, 0x85, 0xc1, 0x49,
- 0xdb, 0x72, 0x4d, 0xd7, 0xa3, 0x56, 0xdd, 0x57, 0xd8, 0x07, 0x99, 0x41, 0x55, 0x0f, 0xc1, 0xf2,
- 0xcb, 0x20, 0x89, 0x7a, 0x3f, 0xca, 0x4b, 0x9e, 0x83, 0x01, 0x14, 0x39, 0xfa, 0x49, 0x4b, 0x89,
- 0xb6, 0x97, 0x19, 0x30, 0xee, 0x24, 0x1d, 0x92, 0x92, 0x5b, 0xd0, 0x3f, 0xb9, 0x66, 0x36, 0x0c,
- 0x87, 0x5a, 0xe8, 0x2f, 0x2c, 0xc5, 0xcd, 0x8b, 0xf6, 0xe5, 0x38, 0xfe, 0x8b, 0xb4, 0xbc, 0x39,
- 0x75, 0x51, 0x2c, 0xf2, 0x36, 0x4a, 0xc0, 0xce, 0xff, 0x70, 0x16, 0x20, 0x2c, 0x40, 0x1e, 0x81,
- 0x6c, 0x90, 0xca, 0x0c, 0xdd, 0x54, 0x22, 0x1a, 0x94, 0xc5, 0xa5, 0x42, 0x8c, 0xed, 0xec, 0x8e,
- 0x63, 0xfb, 0x16, 0x14, 0xf8, 0x89, 0x17, 0x7a, 0x92, 0x4b, 0x41, 0xb4, 0x3a, 0x36, 0x78, 0x1c,
- 0xe9, 0xf9, 0x66, 0x16, 0x2d, 0xcf, 0x88, 0x57, 0x36, 0x67, 0x76, 0xbe, 0x0e, 0xbd, 0xf8, 0x17,
- 0xb9, 0x04, 0x79, 0x94, 0x62, 0x06, 0xf7, 0xb1, 0x38, 0x4b, 0xc7, 0xe4, 0x87, 0x78, 0xd6, 0x4d,
- 0x93, 0xb6, 0xe5, 0xb1, 0xaa, 0xb1, 0xd5, 0x43, 0x42, 0x2e, 0x02, 0x16, 0x91, 0x8b, 0x80, 0xa9,
- 0xff, 0x7f, 0x36, 0x25, 0x96, 0xe2, 0xfd, 0x3b, 0x4c, 0x5e, 0x00, 0xc0, 0x87, 0xd6, 0x4c, 0x9e,
- 0xfe, 0x13, 0x0d, 0x1c, 0x25, 0xc8, 0x08, 0xd5, 0x36, 0xb2, 0xed, 0x08, 0x89, 0xd5, 0xdf, 0xcd,
- 0x24, 0x02, 0xf0, 0x1d, 0x48, 0x8e, 0xb2, 0x55, 0x96, 0xdd, 0xa7, 0x19, 0xeb, 0xf7, 0x45, 0x6e,
- 0x6f, 0x7d, 0x11, 0xfd, 0x96, 0x43, 0xb0, 0x4c, 0x8f, 0xf2, 0x5b, 0xbe, 0x95, 0x4d, 0x0b, 0x47,
- 0x78, 0x3c, 0x55, 0xfc, 0x7a, 0x60, 0x94, 0xe6, 0x77, 0x93, 0x04, 0x5c, 0x98, 0xa9, 0x6f, 0xc2,
- 0xa9, 0x58, 0x90, 0x3e, 0x91, 0x5f, 0xf0, 0x52, 0xf7, 0x68, 0x7f, 0x9d, 0x9f, 0xe8, 0x47, 0xc8,
- 0xd4, 0xff, 0x98, 0xe9, 0x1e, 0xa2, 0xf1, 0xc8, 0x55, 0x27, 0x45, 0x00, 0xb9, 0xbf, 0x1d, 0x01,
- 0x1c, 0xc2, 0x36, 0xf8, 0x78, 0x0b, 0xe0, 0x3d, 0x32, 0x79, 0xbc, 0xdb, 0x02, 0xf8, 0xe9, 0xcc,
- 0x8e, 0x11, 0x36, 0x8f, 0x5a, 0x06, 0xea, 0x3f, 0xce, 0xa4, 0x46, 0xc2, 0x3c, 0x50, 0xbb, 0x5e,
- 0x82, 0x02, 0x77, 0xab, 0x11, 0xad, 0x92, 0x72, 0x87, 0x30, 0x68, 0x87, 0xf2, 0xa2, 0x0c, 0x99,
- 0x85, 0x3e, 0xde, 0x06, 0x23, 0x9e, 0x63, 0x37, 0xa5, 0x9d, 0x46, 0xa7, 0xc9, 0x51, 0xa0, 0xd5,
- 0xdf, 0xc9, 0x24, 0x02, 0x73, 0x1e, 0xe1, 0xb7, 0x85, 0x53, 0x75, 0x6e, 0xf7, 0x53, 0xb5, 0xfa,
- 0x67, 0xd9, 0xf4, 0xb8, 0xa0, 0x47, 0xf8, 0x21, 0x87, 0x71, 0x9c, 0xb6, 0xbf, 0x75, 0x6b, 0x09,
- 0x46, 0xa2, 0xb2, 0x10, 0xcb, 0xd6, 0xc5, 0xf4, 0xe8, 0xa8, 0x1d, 0x5a, 0x11, 0xe3, 0xa1, 0xbe,
- 0x93, 0x49, 0x86, 0x34, 0x3d, 0xf2, 0xf9, 0x69, 0x7f, 0xda, 0x12, 0xfd, 0x94, 0xf7, 0xc8, 0x5a,
- 0x73, 0x18, 0x9f, 0xf2, 0x1e, 0x59, 0x35, 0xf6, 0xf7, 0x29, 0xbf, 0x98, 0xed, 0x14, 0x11, 0xf6,
- 0xc8, 0x3f, 0xe8, 0x13, 0xb2, 0x90, 0x79, 0xcb, 0xc4, 0xa7, 0x3d, 0xd2, 0x29, 0x04, 0x6b, 0x07,
- 0x9e, 0x09, 0x3e, 0xfb, 0x1b, 0xe3, 0xa9, 0xc2, 0x7a, 0x8f, 0x28, 0xf2, 0xf1, 0x10, 0xd6, 0x7b,
- 0x64, 0xa8, 0xbc, 0xf7, 0x84, 0xf5, 0x9b, 0xd9, 0xdd, 0x86, 0x21, 0x3e, 0x11, 0x5e, 0x42, 0x78,
- 0x5f, 0xce, 0x26, 0xc3, 0x63, 0x1f, 0xb9, 0x98, 0xa6, 0xa1, 0x20, 0x02, 0x75, 0x77, 0x14, 0x0e,
- 0xc7, 0x77, 0xb2, 0x68, 0xc4, 0x77, 0x5c, 0x07, 0x71, 0x91, 0xb3, 0x3b, 0x91, 0x70, 0x5a, 0xf5,
- 0xaf, 0x32, 0xb1, 0x58, 0xd2, 0x47, 0x72, 0x84, 0xb0, 0xaf, 0x25, 0x89, 0xbc, 0xec, 0x1f, 0x66,
- 0xe6, 0x63, 0x81, 0x40, 0x83, 0xef, 0x29, 0x53, 0x4f, 0x37, 0x1b, 0xf1, 0xf2, 0x22, 0x26, 0xc0,
- 0xd7, 0xb3, 0x30, 0x96, 0x20, 0x25, 0x97, 0x22, 0x51, 0x72, 0xf0, 0x58, 0x32, 0xe6, 0x3c, 0xce,
- 0xe3, 0xe5, 0xec, 0xe1, 0x24, 0xf5, 0x12, 0xe4, 0xcb, 0xfa, 0x26, 0xff, 0xb6, 0x5e, 0xce, 0xd2,
- 0xd0, 0x37, 0xe5, 0x13, 0x37, 0xc4, 0x93, 0x65, 0x78, 0x80, 0xdf, 0x87, 0x98, 0xb6, 0xb5, 0x64,
- 0x36, 0x69, 0xc5, 0x9a, 0x33, 0x1b, 0x0d, 0xd3, 0x15, 0x97, 0x7a, 0x4f, 0x6e, 0x6f, 0x15, 0x2f,
- 0x7b, 0xb6, 0xa7, 0x37, 0x6a, 0xd4, 0x27, 0xab, 0x79, 0x66, 0x93, 0xd6, 0x4c, 0xab, 0xd6, 0x44,
- 0x4a, 0x89, 0x65, 0x3a, 0x2b, 0x52, 0xe1, 0x31, 0x5f, 0xab, 0x75, 0xdd, 0xb2, 0xa8, 0x51, 0xb1,
- 0x26, 0x36, 0x3d, 0xca, 0x2f, 0x03, 0x73, 0xfc, 0x48, 0x90, 0xbf, 0x0d, 0xe7, 0x68, 0xc6, 0x78,
- 0x99, 0x11, 0x68, 0x29, 0x85, 0xd4, 0xdf, 0xca, 0xa7, 0x84, 0x11, 0x3f, 0x46, 0xea, 0xe3, 0xf7,
- 0x74, 0x7e, 0x87, 0x9e, 0xbe, 0x0a, 0x7d, 0xb7, 0xa9, 0x83, 0xe7, 0x5b, 0xfc, 0x82, 0x01, 0x9d,
- 0xd9, 0xef, 0x72, 0x90, 0x7c, 0x43, 0x23, 0xa8, 0x48, 0x03, 0xce, 0x2f, 0xb1, 0x6e, 0x4a, 0xef,
- 0xcc, 0xc2, 0x3e, 0x3a, 0xb3, 0x0b, 0x3f, 0xf2, 0x06, 0x9c, 0x43, 0x6c, 0x4a, 0xb7, 0xf6, 0x61,
- 0x55, 0x18, 0x39, 0x8a, 0x57, 0x95, 0xde, 0xb9, 0x9d, 0xca, 0x93, 0x4f, 0xc0, 0x50, 0x30, 0x40,
- 0x4c, 0xea, 0x8a, 0x9b, 0x8b, 0x2e, 0xe3, 0x8c, 0x87, 0x65, 0x63, 0x60, 0x74, 0x21, 0x8b, 0x86,
- 0xf6, 0x8a, 0xf0, 0x52, 0xff, 0x51, 0xa6, 0x5b, 0x38, 0xf3, 0x23, 0x9f, 0x95, 0x5f, 0x86, 0x3e,
- 0x83, 0x7f, 0x94, 0xd0, 0xa9, 0xee, 0x01, 0xcf, 0x39, 0xa9, 0xe6, 0x97, 0x51, 0xff, 0x34, 0xd3,
- 0x35, 0x8a, 0xfa, 0x71, 0xff, 0xbc, 0x2f, 0xe7, 0x3a, 0x7c, 0x9e, 0x98, 0x44, 0xaf, 0xc0, 0xa8,
- 0x19, 0x06, 0xbd, 0xad, 0x85, 0xe1, 0xa7, 0xb4, 0x53, 0x12, 0x1c, 0x47, 0xd7, 0x75, 0x38, 0xeb,
- 0x3b, 0x3e, 0x3a, 0xbe, 0x87, 0x98, 0x5b, 0x6b, 0x3b, 0x26, 0x1f, 0x97, 0xda, 0x19, 0x37, 0xe6,
- 0x3e, 0xe6, 0xde, 0x72, 0x4c, 0x56, 0x81, 0xee, 0xad, 0x51, 0x4b, 0xaf, 0x6d, 0xd8, 0xce, 0x3a,
- 0xc6, 0xfe, 0xe4, 0x83, 0x53, 0x3b, 0xc5, 0xe1, 0x77, 0x7c, 0x30, 0x79, 0x0c, 0x86, 0x57, 0x1b,
- 0x6d, 0x1a, 0x44, 0x5b, 0xe4, 0x77, 0x7d, 0xda, 0x10, 0x03, 0x06, 0x37, 0x24, 0x0f, 0x03, 0x20,
- 0x91, 0x87, 0x31, 0xee, 0xf1, 0x62, 0x4f, 0x1b, 0x60, 0x90, 0x25, 0xd1, 0x5d, 0xe7, 0xb9, 0x56,
- 0x73, 0x21, 0xd5, 0x1a, 0xb6, 0xb5, 0x5a, 0xf3, 0xa8, 0xd3, 0xc4, 0x86, 0xa2, 0x33, 0x83, 0x76,
- 0x16, 0x29, 0xf0, 0xea, 0xc4, 0x9d, 0xb5, 0xad, 0xd5, 0x25, 0xea, 0x34, 0x59, 0x53, 0x9f, 0x04,
- 0x22, 0x9a, 0xea, 0xe0, 0xa1, 0x07, 0xff, 0x38, 0xf4, 0x66, 0xd0, 0xc4, 0x47, 0xf0, 0xd3, 0x10,
- 0xfc, 0xb0, 0x22, 0x0c, 0xf2, 0x90, 0x73, 0x5c, 0x68, 0xe8, 0xc2, 0xa0, 0x01, 0x07, 0xa1, 0xbc,
- 0xce, 0x82, 0xf0, 0xae, 0xe0, 0x5e, 0xdd, 0x9a, 0xf8, 0xa5, 0x7e, 0x21, 0x97, 0x16, 0xf8, 0xfd,
- 0x40, 0x8a, 0x16, 0x4e, 0xab, 0xd9, 0x3d, 0x4d, 0xab, 0xa7, 0xac, 0x76, 0xb3, 0xa6, 0xb7, 0x5a,
- 0xb5, 0x15, 0xb3, 0x81, 0xcf, 0xaa, 0x70, 0xe1, 0xd3, 0x86, 0xad, 0x76, 0xb3, 0xd4, 0x6a, 0x4d,
- 0x73, 0x20, 0x79, 0x02, 0xc6, 0x18, 0x1d, 0x76, 0x52, 0x40, 0x99, 0x47, 0x4a, 0xc6, 0x00, 0x63,
- 0xb6, 0xfa, 0xb4, 0x0f, 0x42, 0xbf, 0xe0, 0xc9, 0xd7, 0xaa, 0x5e, 0xad, 0x8f, 0x33, 0x73, 0x59,
- 0xcf, 0x05, 0x6c, 0xf8, 0xe4, 0xda, 0xab, 0x0d, 0xf8, 0xe5, 0x31, 0x32, 0xb1, 0xd5, 0x6e, 0xf2,
- 0x88, 0x58, 0x7d, 0x88, 0x0c, 0x7e, 0x93, 0x4b, 0x30, 0xc2, 0xb8, 0x04, 0x02, 0xe3, 0xc1, 0x5c,
- 0x7b, 0xb5, 0x18, 0x94, 0x5c, 0x83, 0x33, 0x11, 0x08, 0xb7, 0x41, 0xf9, 0x33, 0x81, 0x5e, 0x2d,
- 0x15, 0xa7, 0xbe, 0x93, 0x4b, 0xc6, 0xb5, 0x3f, 0x92, 0xb5, 0x71, 0x06, 0x40, 0xa4, 0xad, 0x08,
- 0x2f, 0x68, 0x02, 0xaf, 0xe5, 0x10, 0xd3, 0x81, 0x87, 0x54, 0x96, 0x5c, 0x81, 0x7e, 0xfe, 0x45,
- 0x95, 0xb2, 0x58, 0x33, 0xd1, 0xcd, 0xc8, 0x6d, 0x99, 0x2b, 0x2b, 0xe8, 0x93, 0x14, 0xa0, 0xc9,
- 0x25, 0xe8, 0x2b, 0xcf, 0x57, 0xab, 0xa5, 0x79, 0xff, 0xb6, 0x11, 0xdf, 0x28, 0x18, 0x96, 0x5b,
- 0x73, 0x75, 0xcb, 0xd5, 0x7c, 0x24, 0x79, 0x0c, 0x0a, 0x95, 0x45, 0x24, 0xe3, 0x2f, 0xef, 0x06,
- 0xb7, 0xb7, 0x8a, 0x7d, 0x66, 0x8b, 0x53, 0x09, 0x14, 0xd6, 0x7b, 0xbb, 0x52, 0x96, 0xae, 0xdc,
- 0x79, 0xbd, 0x77, 0x4d, 0x03, 0xaf, 0x2e, 0xb5, 0x00, 0x4d, 0x9e, 0x85, 0xa1, 0x2a, 0x75, 0x4c,
- 0xbd, 0x31, 0xdf, 0xc6, 0xed, 0x06, 0x77, 0x33, 0x1a, 0xdb, 0xde, 0x2a, 0x0e, 0xbb, 0x08, 0xaf,
- 0x59, 0x88, 0xd0, 0x22, 0x64, 0xe4, 0x02, 0xe4, 0x67, 0x4c, 0xcb, 0x77, 0x83, 0x47, 0x3f, 0xe9,
- 0x35, 0xd3, 0xf2, 0x34, 0x84, 0xaa, 0xff, 0x3a, 0x9b, 0x9e, 0x59, 0xe0, 0x08, 0xc6, 0xd6, 0x3e,
- 0x6f, 0x0b, 0x63, 0x4a, 0x90, 0x3f, 0x80, 0x12, 0xac, 0xc0, 0xa9, 0x92, 0xd1, 0x34, 0xad, 0x12,
- 0xfe, 0x74, 0xe7, 0xa6, 0x4b, 0x38, 0x20, 0xa5, 0x67, 0x58, 0x31, 0xb4, 0xf8, 0x1e, 0x1e, 0x6e,
- 0x95, 0xa1, 0x6a, 0x3a, 0xc7, 0xd5, 0x9a, 0x2b, 0x7a, 0xad, 0xce, 0x83, 0xf2, 0x6b, 0x71, 0xa6,
- 0xea, 0x0f, 0x65, 0x77, 0x48, 0x86, 0x70, 0x3f, 0x4a, 0x5f, 0xfd, 0x4a, 0xb6, 0x7b, 0x3e, 0x8a,
- 0xfb, 0x52, 0x28, 0x7f, 0x91, 0x4d, 0xc9, 0x0e, 0x71, 0x20, 0x49, 0x5c, 0x81, 0x7e, 0xce, 0x26,
- 0x70, 0xd7, 0xc4, 0x19, 0x87, 0x2b, 0x2b, 0xce, 0x74, 0x3e, 0x9a, 0xcc, 0xc3, 0x99, 0xd2, 0xca,
- 0x0a, 0xad, 0x7b, 0x61, 0xe0, 0xdd, 0xf9, 0x30, 0xd8, 0x26, 0x8f, 0x56, 0x2a, 0xf0, 0x61, 0xe0,
- 0x5e, 0x0c, 0x2a, 0x91, 0x5a, 0x8e, 0x2c, 0xc1, 0xd9, 0x38, 0xbc, 0xca, 0x4d, 0xbd, 0xbc, 0x14,
- 0xc0, 0x34, 0xc1, 0x91, 0xff, 0xa7, 0x75, 0x28, 0x9b, 0xd6, 0x4a, 0x9c, 0x4e, 0x7b, 0xbb, 0xb5,
- 0x12, 0xe7, 0xd6, 0xd4, 0x72, 0xea, 0xd7, 0x73, 0x72, 0x12, 0x8d, 0xfb, 0xd7, 0xb1, 0xe6, 0x7a,
- 0xc4, 0x9d, 0x76, 0xb7, 0x43, 0xe6, 0x59, 0x11, 0x29, 0xc2, 0x68, 0x3b, 0xbe, 0xe7, 0x59, 0xf0,
- 0x52, 0x1d, 0x81, 0xb2, 0x0f, 0x59, 0x40, 0x49, 0x2a, 0x90, 0x2f, 0x39, 0xab, 0xdc, 0x8c, 0xd9,
- 0xe9, 0xf1, 0x8c, 0xee, 0xac, 0xba, 0xe9, 0x8f, 0x67, 0x18, 0x0b, 0xf5, 0x27, 0xb2, 0x9d, 0x12,
- 0x50, 0x1c, 0x57, 0x87, 0x98, 0x43, 0x9c, 0x4f, 0xd2, 0x84, 0x73, 0xbc, 0xbd, 0x85, 0x0e, 0x4f,
- 0x38, 0x4f, 0xcc, 0xf1, 0x80, 0xc2, 0x37, 0x4d, 0xcb, 0x20, 0x0f, 0xc2, 0x03, 0xb7, 0xaa, 0x53,
- 0x5a, 0xed, 0x66, 0x65, 0xbe, 0x5c, 0xbb, 0x35, 0x5f, 0x5d, 0x9c, 0x9a, 0xac, 0x4c, 0x57, 0xa6,
- 0xca, 0xa3, 0x3d, 0xe4, 0x34, 0x9c, 0x0a, 0x51, 0x33, 0xb7, 0xe6, 0x4a, 0xf3, 0xa3, 0x19, 0x32,
- 0x06, 0xc3, 0x21, 0x70, 0x62, 0x61, 0x69, 0x34, 0xfb, 0xc4, 0x07, 0x61, 0x10, 0x77, 0x4c, 0x7c,
- 0xe5, 0x27, 0x43, 0xd0, 0xbf, 0x30, 0x51, 0x9d, 0xd2, 0x6e, 0x23, 0x13, 0x80, 0x42, 0x79, 0x6a,
- 0x9e, 0x31, 0xcc, 0x3c, 0xf1, 0xef, 0x32, 0x00, 0xd5, 0xe9, 0xa5, 0x45, 0x41, 0x38, 0x08, 0x7d,
- 0x95, 0xf9, 0xdb, 0xa5, 0xd9, 0x0a, 0xa3, 0xeb, 0x87, 0xfc, 0xc2, 0xe2, 0x14, 0xab, 0x61, 0x00,
- 0x7a, 0x27, 0x67, 0x17, 0xaa, 0x53, 0xa3, 0x59, 0x06, 0xd4, 0xa6, 0x4a, 0xe5, 0xd1, 0x1c, 0x03,
- 0xde, 0xd1, 0x2a, 0x4b, 0x53, 0xa3, 0x79, 0xf6, 0xe7, 0x6c, 0x75, 0xa9, 0xb4, 0x34, 0xda, 0xcb,
- 0xfe, 0x9c, 0xc6, 0x3f, 0x0b, 0x8c, 0x59, 0x75, 0x6a, 0x09, 0x7f, 0xf4, 0xb1, 0x26, 0x4c, 0xfb,
- 0xbf, 0xfa, 0x19, 0x8a, 0xb1, 0x2e, 0x57, 0xb4, 0xd1, 0x01, 0xf6, 0x83, 0xb1, 0x64, 0x3f, 0x80,
- 0x35, 0x4e, 0x9b, 0x9a, 0x5b, 0xb8, 0x3d, 0x35, 0x3a, 0xc8, 0x78, 0xcd, 0xdd, 0x64, 0xe0, 0x21,
- 0xf6, 0xa7, 0x36, 0xc7, 0xfe, 0x1c, 0x66, 0x9c, 0xb4, 0xa9, 0xd2, 0xec, 0x62, 0x69, 0x69, 0x66,
- 0x74, 0x84, 0xb5, 0x07, 0x79, 0x9e, 0xe2, 0x25, 0xe7, 0x4b, 0x73, 0x53, 0xa3, 0xa3, 0x82, 0xa6,
- 0x3c, 0x5b, 0x99, 0xbf, 0x39, 0x3a, 0x86, 0x0d, 0x79, 0x63, 0x0e, 0x7f, 0x10, 0x56, 0x00, 0xff,
- 0x3a, 0xfd, 0xc4, 0xa7, 0xa0, 0xb0, 0x50, 0x45, 0xfb, 0xf6, 0x1c, 0x9c, 0x5e, 0xa8, 0xd6, 0x96,
- 0xde, 0x58, 0x9c, 0x8a, 0xc9, 0x7b, 0x0c, 0x86, 0x7d, 0xc4, 0x6c, 0x65, 0xfe, 0xd6, 0xc7, 0xb9,
- 0xb4, 0x7d, 0xd0, 0x5c, 0x69, 0x72, 0xa1, 0x3a, 0x9a, 0x65, 0xbd, 0xe2, 0x83, 0xee, 0x54, 0xe6,
- 0xcb, 0x0b, 0x77, 0xaa, 0xa3, 0xb9, 0x27, 0xee, 0xfa, 0x59, 0x48, 0x17, 0x1c, 0x73, 0xd5, 0xb4,
- 0xc8, 0xc3, 0xf0, 0x60, 0x79, 0xea, 0x76, 0x65, 0x72, 0xaa, 0xb6, 0xa0, 0x55, 0x6e, 0x54, 0xe6,
- 0x63, 0x35, 0x3d, 0x00, 0x63, 0x51, 0x74, 0x69, 0xb1, 0x32, 0x9a, 0x21, 0x67, 0x81, 0x44, 0xc1,
- 0xaf, 0x95, 0xe6, 0xa6, 0x47, 0xb3, 0x44, 0x81, 0x33, 0x51, 0x78, 0x65, 0x7e, 0xe9, 0xd6, 0xfc,
- 0xd4, 0x68, 0xee, 0x89, 0x9f, 0xcd, 0xc0, 0x03, 0xa9, 0x4f, 0xf6, 0x89, 0x0a, 0x17, 0xa7, 0x66,
- 0x4b, 0xd5, 0xa5, 0xca, 0x64, 0x75, 0xaa, 0xa4, 0x4d, 0xce, 0xd4, 0x26, 0x4b, 0x4b, 0x53, 0x37,
- 0x16, 0xb4, 0x37, 0x6a, 0x37, 0xa6, 0xe6, 0xa7, 0xb4, 0xd2, 0xec, 0x68, 0x0f, 0x79, 0x0c, 0x8a,
- 0x1d, 0x68, 0xaa, 0x53, 0x93, 0xb7, 0xb4, 0xca, 0xd2, 0x1b, 0xa3, 0x19, 0xf2, 0x28, 0x3c, 0xdc,
- 0x91, 0x88, 0xfd, 0x1e, 0xcd, 0x92, 0x8b, 0x70, 0xbe, 0x13, 0xc9, 0xeb, 0xb3, 0xa3, 0xb9, 0x27,
- 0x7e, 0x2c, 0x03, 0x24, 0xf9, 0xe6, 0x9a, 0x3c, 0x02, 0x17, 0x98, 0x5e, 0xd4, 0x3a, 0x37, 0xf0,
- 0x51, 0x78, 0x38, 0x95, 0x42, 0x6a, 0x5e, 0x11, 0x1e, 0xea, 0x40, 0x22, 0x1a, 0x77, 0x01, 0x94,
- 0x74, 0x02, 0x6c, 0xda, 0xaf, 0x65, 0xe0, 0x81, 0x54, 0x63, 0x9b, 0x5c, 0x86, 0x0f, 0x94, 0xca,
- 0x73, 0xac, 0x6f, 0x26, 0x97, 0x2a, 0x0b, 0xf3, 0xd5, 0xda, 0xdc, 0x74, 0xa9, 0xc6, 0xb4, 0xef,
- 0x56, 0x35, 0xd6, 0x9b, 0x97, 0x40, 0xed, 0x42, 0x39, 0x39, 0x53, 0x9a, 0xbf, 0xc1, 0x86, 0x1f,
- 0xf9, 0x00, 0x3c, 0xd2, 0x91, 0x6e, 0x6a, 0xbe, 0x34, 0x31, 0x3b, 0x55, 0x1e, 0xcd, 0x92, 0xc7,
- 0xe1, 0xd1, 0x8e, 0x54, 0xe5, 0x4a, 0x95, 0x93, 0xe5, 0x26, 0xca, 0xef, 0xfc, 0x93, 0x8b, 0x3d,
- 0xef, 0x7c, 0xfb, 0x62, 0xe6, 0x0f, 0xbe, 0x7d, 0x31, 0xf3, 0x67, 0xdf, 0xbe, 0x98, 0xf9, 0xc4,
- 0xb5, 0xbd, 0xbc, 0xa5, 0xe7, 0xd3, 0xd6, 0x72, 0x01, 0x17, 0xbe, 0x67, 0xfe, 0x53, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0x86, 0x00, 0xc7, 0x54, 0x45, 0x52, 0x01, 0x00,
+ // 15335 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x74, 0x24, 0xc7,
+ 0x75, 0x18, 0x8c, 0x79, 0x60, 0x00, 0x5c, 0x3c, 0x16, 0xa8, 0x5d, 0xee, 0x36, 0x97, 0xbb, 0x3b,
+ 0x64, 0x53, 0x5c, 0xed, 0x52, 0xe4, 0xae, 0xb8, 0x5c, 0x92, 0x22, 0x45, 0x8a, 0x1c, 0x60, 0x80,
+ 0xc5, 0x70, 0xf1, 0x62, 0x0f, 0x76, 0x57, 0xd4, 0x83, 0xe3, 0xc6, 0x74, 0x01, 0x68, 0x62, 0xa6,
+ 0x7b, 0xd4, 0xdd, 0xb3, 0x58, 0xf0, 0x7b, 0x59, 0xfe, 0xfc, 0x90, 0xfc, 0x49, 0xfa, 0xf4, 0xc9,
+ 0x9f, 0xdf, 0xfe, 0xbe, 0x4f, 0xb6, 0x8f, 0xbf, 0xd8, 0x3e, 0x8e, 0x1d, 0xe7, 0xe4, 0xd8, 0x96,
+ 0x1d, 0x9d, 0xd8, 0x51, 0x72, 0x42, 0x47, 0x76, 0x8e, 0xed, 0x24, 0x3e, 0x3e, 0x89, 0x03, 0x39,
+ 0x4a, 0x9c, 0x1f, 0x38, 0xc9, 0x39, 0x4e, 0xa2, 0x13, 0x2b, 0x8e, 0xf3, 0x38, 0x75, 0xab, 0xba,
+ 0xbb, 0xfa, 0x31, 0x83, 0x27, 0x0d, 0x82, 0x8b, 0x3f, 0xbb, 0x98, 0x7b, 0x6f, 0xdd, 0xaa, 0xbe,
+ 0x75, 0xab, 0xea, 0x56, 0xd5, 0xad, 0x7b, 0xe1, 0xb2, 0x47, 0x1b, 0xb4, 0x65, 0x3b, 0xde, 0xd5,
+ 0x06, 0x5d, 0xd1, 0xeb, 0x1b, 0x57, 0xbd, 0x8d, 0x16, 0x75, 0xaf, 0xd2, 0xbb, 0xd4, 0xf2, 0xfc,
+ 0xff, 0xae, 0xb4, 0x1c, 0xdb, 0xb3, 0x49, 0x81, 0xff, 0x3a, 0x7b, 0x6a, 0xc5, 0x5e, 0xb1, 0x11,
+ 0x74, 0x95, 0xfd, 0xc5, 0xb1, 0x67, 0xcf, 0xad, 0xd8, 0xf6, 0x4a, 0x83, 0x5e, 0xc5, 0x5f, 0x4b,
+ 0xed, 0xe5, 0xab, 0xae, 0xe7, 0xb4, 0xeb, 0x9e, 0xc0, 0x16, 0xe3, 0x58, 0xcf, 0x6c, 0x52, 0xd7,
+ 0xd3, 0x9b, 0x2d, 0x41, 0x70, 0x21, 0x4e, 0xb0, 0xee, 0xe8, 0xad, 0x16, 0x75, 0x44, 0xe5, 0x67,
+ 0x1f, 0x49, 0x6f, 0x27, 0xfe, 0x2b, 0x48, 0x9e, 0x4c, 0x27, 0xf1, 0x19, 0xc5, 0x38, 0xaa, 0x5f,
+ 0xca, 0x42, 0xff, 0x2c, 0xf5, 0x74, 0x43, 0xf7, 0x74, 0x72, 0x0e, 0x7a, 0x2b, 0x96, 0x41, 0xef,
+ 0x29, 0x99, 0x87, 0x33, 0x97, 0x72, 0xe3, 0x85, 0xad, 0xcd, 0x62, 0x96, 0x9a, 0x1a, 0x07, 0x92,
+ 0xf3, 0x90, 0x5f, 0xdc, 0x68, 0x51, 0x25, 0xfb, 0x70, 0xe6, 0xd2, 0xc0, 0xf8, 0xc0, 0xd6, 0x66,
+ 0xb1, 0x17, 0x65, 0xa1, 0x21, 0x98, 0x3c, 0x02, 0xd9, 0x4a, 0x59, 0xc9, 0x21, 0x72, 0x6c, 0x6b,
+ 0xb3, 0x38, 0xdc, 0x36, 0x8d, 0x27, 0xec, 0xa6, 0xe9, 0xd1, 0x66, 0xcb, 0xdb, 0xd0, 0xb2, 0x95,
+ 0x32, 0xb9, 0x08, 0xf9, 0x09, 0xdb, 0xa0, 0x4a, 0x1e, 0x89, 0xc8, 0xd6, 0x66, 0x71, 0xa4, 0x6e,
+ 0x1b, 0x54, 0xa2, 0x42, 0x3c, 0x79, 0x05, 0xf2, 0x8b, 0x66, 0x93, 0x2a, 0xbd, 0x0f, 0x67, 0x2e,
+ 0x0d, 0x5e, 0x3b, 0x7b, 0x85, 0x4b, 0xe5, 0x8a, 0x2f, 0x95, 0x2b, 0x8b, 0xbe, 0xd8, 0xc6, 0x47,
+ 0xdf, 0xde, 0x2c, 0xf6, 0x6c, 0x6d, 0x16, 0xf3, 0x4c, 0x92, 0x5f, 0xfc, 0x46, 0x31, 0xa3, 0x61,
+ 0x49, 0xf2, 0x22, 0x0c, 0x4e, 0x34, 0xda, 0xae, 0x47, 0x9d, 0x39, 0xbd, 0x49, 0x95, 0x02, 0x56,
+ 0x78, 0x76, 0x6b, 0xb3, 0x78, 0xba, 0xce, 0xc1, 0x35, 0x4b, 0x6f, 0xca, 0x15, 0xcb, 0xe4, 0xea,
+ 0xaf, 0x65, 0xe0, 0x44, 0x95, 0xba, 0xae, 0x69, 0x5b, 0x81, 0x6c, 0x1e, 0x83, 0x01, 0x01, 0xaa,
+ 0x94, 0x51, 0x3e, 0x03, 0xe3, 0x7d, 0x5b, 0x9b, 0xc5, 0x9c, 0x6b, 0x1a, 0x5a, 0x88, 0x21, 0x1f,
+ 0x84, 0xbe, 0x3b, 0xa6, 0xb7, 0x3a, 0x3b, 0x55, 0x12, 0x72, 0x3a, 0xbd, 0xb5, 0x59, 0x24, 0xeb,
+ 0xa6, 0xb7, 0x5a, 0x6b, 0x2e, 0xeb, 0x52, 0x85, 0x3e, 0x19, 0x99, 0x81, 0xd1, 0x05, 0xc7, 0xbc,
+ 0xab, 0x7b, 0xf4, 0x26, 0xdd, 0x58, 0xb0, 0x1b, 0x66, 0x7d, 0x43, 0x48, 0xf1, 0xe1, 0xad, 0xcd,
+ 0xe2, 0xb9, 0x16, 0xc7, 0xd5, 0xd6, 0xe8, 0x46, 0xad, 0x85, 0x58, 0x89, 0x49, 0xa2, 0xa4, 0xfa,
+ 0xeb, 0x05, 0x18, 0xba, 0xe5, 0x52, 0x27, 0x68, 0xf7, 0x45, 0xc8, 0xb3, 0xdf, 0xa2, 0xc9, 0x28,
+ 0xf3, 0xb6, 0x4b, 0x1d, 0x59, 0xe6, 0x0c, 0x4f, 0x2e, 0x43, 0xef, 0x8c, 0xbd, 0x62, 0x5a, 0xa2,
+ 0xd9, 0x27, 0xb7, 0x36, 0x8b, 0x27, 0x1a, 0x0c, 0x20, 0x51, 0x72, 0x0a, 0xf2, 0x11, 0x18, 0xaa,
+ 0x34, 0x99, 0x0e, 0xd9, 0x96, 0xee, 0xd9, 0x8e, 0x68, 0x2d, 0x4a, 0xd7, 0x94, 0xe0, 0x52, 0xc1,
+ 0x08, 0x3d, 0x79, 0x01, 0xa0, 0x74, 0xa7, 0xaa, 0xd9, 0x0d, 0x5a, 0xd2, 0xe6, 0x84, 0x32, 0x60,
+ 0x69, 0x7d, 0xdd, 0xad, 0x39, 0x76, 0x83, 0xd6, 0x74, 0x47, 0xae, 0x56, 0xa2, 0x26, 0x93, 0x30,
+ 0x52, 0xaa, 0xd7, 0xa9, 0xeb, 0x6a, 0xf4, 0x53, 0x6d, 0xea, 0x7a, 0xae, 0xd2, 0xfb, 0x70, 0xee,
+ 0xd2, 0xc0, 0xf8, 0xf9, 0xad, 0xcd, 0xe2, 0x83, 0x3a, 0x62, 0x6a, 0x8e, 0x40, 0x49, 0x2c, 0x62,
+ 0x85, 0xc8, 0x38, 0x0c, 0x97, 0xde, 0x6a, 0x3b, 0xb4, 0x62, 0x50, 0xcb, 0x33, 0xbd, 0x0d, 0xa1,
+ 0x21, 0xe7, 0xb6, 0x36, 0x8b, 0x8a, 0xce, 0x10, 0x35, 0x53, 0x60, 0x24, 0x26, 0xd1, 0x22, 0x64,
+ 0x1e, 0xc6, 0x6e, 0x4c, 0x2c, 0x54, 0xa9, 0x73, 0xd7, 0xac, 0xd3, 0x52, 0xbd, 0x6e, 0xb7, 0x2d,
+ 0x4f, 0xe9, 0x43, 0x3e, 0x8f, 0x6c, 0x6d, 0x16, 0xcf, 0xaf, 0xd4, 0x5b, 0x35, 0x97, 0x63, 0x6b,
+ 0x3a, 0x47, 0x4b, 0xcc, 0x92, 0x65, 0xc9, 0xc7, 0x60, 0x78, 0xd1, 0x61, 0x5a, 0x68, 0x94, 0x29,
+ 0x83, 0x2b, 0xfd, 0xa8, 0xff, 0xa7, 0xaf, 0x88, 0x09, 0x88, 0x43, 0xfd, 0x9e, 0xe5, 0x8d, 0xf5,
+ 0x78, 0x81, 0x9a, 0x81, 0x38, 0xb9, 0xb1, 0x11, 0x56, 0x84, 0x82, 0xc2, 0x3e, 0xde, 0x74, 0xa8,
+ 0x91, 0xd0, 0xb6, 0x01, 0x6c, 0xf3, 0xe5, 0xad, 0xcd, 0xe2, 0x63, 0x8e, 0xa0, 0xa9, 0x75, 0x55,
+ 0xbb, 0x8e, 0xac, 0xc8, 0x24, 0xf4, 0x33, 0x6d, 0xba, 0x69, 0x5a, 0x86, 0x02, 0x0f, 0x67, 0x2e,
+ 0x8d, 0x5c, 0x1b, 0xf5, 0x5b, 0xef, 0xc3, 0xc7, 0xcf, 0x6c, 0x6d, 0x16, 0x4f, 0x32, 0x1d, 0xac,
+ 0xad, 0x99, 0x96, 0x3c, 0x45, 0x04, 0x45, 0xd9, 0x28, 0x1a, 0xb7, 0x3d, 0x1c, 0xba, 0x83, 0xe1,
+ 0x28, 0x5a, 0xb2, 0xbd, 0xf8, 0xb0, 0xf5, 0xc9, 0xc8, 0x04, 0x0c, 0x8f, 0xdb, 0x5e, 0xc5, 0x72,
+ 0x3d, 0xdd, 0xaa, 0xd3, 0x4a, 0x59, 0x19, 0xc2, 0x72, 0xa8, 0x16, 0xac, 0x9c, 0x29, 0x30, 0xb5,
+ 0xc8, 0xa4, 0x14, 0x2d, 0xa3, 0xfe, 0x79, 0x1e, 0x46, 0x58, 0x9f, 0x48, 0xc3, 0xa7, 0xc4, 0x66,
+ 0x02, 0x06, 0x61, 0xb5, 0xb8, 0x2d, 0xbd, 0x4e, 0xc5, 0x48, 0xc2, 0xaf, 0xb0, 0x7c, 0xa0, 0xc4,
+ 0x33, 0x4e, 0x4f, 0x2e, 0x43, 0x3f, 0x07, 0x55, 0xca, 0x62, 0x70, 0x0d, 0x6f, 0x6d, 0x16, 0x07,
+ 0x5c, 0x84, 0xd5, 0x4c, 0x43, 0x0b, 0xd0, 0x4c, 0xbb, 0xf9, 0xdf, 0xd3, 0xb6, 0xeb, 0x31, 0xe6,
+ 0x62, 0x6c, 0xe1, 0x67, 0x88, 0x02, 0xab, 0x02, 0x25, 0x6b, 0x77, 0xb4, 0x10, 0x79, 0x1e, 0x80,
+ 0x43, 0x4a, 0x86, 0xe1, 0x88, 0x01, 0xf6, 0xe0, 0xd6, 0x66, 0xf1, 0x01, 0xc1, 0x42, 0x37, 0x0c,
+ 0x79, 0x74, 0x4a, 0xc4, 0xa4, 0x09, 0x43, 0xfc, 0xd7, 0x8c, 0xbe, 0x44, 0x1b, 0x7c, 0x74, 0x0d,
+ 0x5e, 0xbb, 0xe4, 0x77, 0x62, 0x54, 0x3a, 0x57, 0x64, 0xd2, 0x49, 0xcb, 0x73, 0x36, 0xc6, 0x8b,
+ 0x62, 0x42, 0x3e, 0x23, 0xaa, 0x6a, 0x20, 0x4e, 0x9e, 0x0a, 0xe4, 0x32, 0x6c, 0x9e, 0x9e, 0xb2,
+ 0x9d, 0x75, 0xdd, 0x31, 0xa8, 0x31, 0xbe, 0x21, 0xcf, 0xd3, 0xcb, 0x3e, 0xb8, 0xb6, 0x24, 0xab,
+ 0x9e, 0x4c, 0xce, 0x3a, 0x9d, 0x73, 0xab, 0xb6, 0x97, 0x50, 0xe5, 0xfa, 0x12, 0xd2, 0x72, 0xdb,
+ 0x4b, 0x71, 0x35, 0x8b, 0x96, 0x61, 0x53, 0x01, 0x07, 0xdc, 0xa6, 0x0e, 0x9b, 0xc4, 0x71, 0xd4,
+ 0x89, 0xa9, 0x40, 0x30, 0xb9, 0xcb, 0x31, 0x49, 0x1e, 0xa2, 0xc8, 0xd9, 0x97, 0x61, 0x2c, 0x21,
+ 0x0a, 0x32, 0x0a, 0xb9, 0x35, 0xba, 0xc1, 0xd5, 0x45, 0x63, 0x7f, 0x92, 0x53, 0xd0, 0x7b, 0x57,
+ 0x6f, 0xb4, 0xc5, 0x12, 0xaa, 0xf1, 0x1f, 0x2f, 0x64, 0x3f, 0x94, 0x61, 0x2b, 0x0e, 0x99, 0xb0,
+ 0x2d, 0x8b, 0xd6, 0x3d, 0x79, 0xd1, 0x79, 0x16, 0x06, 0x66, 0xec, 0xba, 0xde, 0xc0, 0x7e, 0xe4,
+ 0x7a, 0xa7, 0x6c, 0x6d, 0x16, 0x4f, 0xb1, 0x0e, 0xbc, 0xd2, 0x60, 0x18, 0xa9, 0x4d, 0x21, 0x29,
+ 0x53, 0x00, 0x8d, 0x36, 0x6d, 0x8f, 0x62, 0xc1, 0x6c, 0xa8, 0x00, 0x58, 0xd0, 0x41, 0x94, 0xac,
+ 0x00, 0x21, 0x31, 0xb9, 0x0a, 0xfd, 0x0b, 0x6c, 0x9d, 0xad, 0xdb, 0x0d, 0xa1, 0x7c, 0xb8, 0x14,
+ 0xe0, 0xda, 0x2b, 0x8f, 0x55, 0x9f, 0x48, 0x9d, 0x86, 0x91, 0x89, 0x86, 0x49, 0x2d, 0x4f, 0x6e,
+ 0x35, 0x1b, 0xc9, 0xa5, 0x15, 0x6a, 0x79, 0x72, 0xab, 0x71, 0xcc, 0xeb, 0x0c, 0x2a, 0xb7, 0x3a,
+ 0x20, 0x55, 0xff, 0x51, 0x0e, 0x1e, 0xbc, 0xd9, 0x5e, 0xa2, 0x8e, 0x45, 0x3d, 0xea, 0x8a, 0x05,
+ 0x39, 0xe0, 0x3a, 0x07, 0x63, 0x09, 0xa4, 0xe0, 0x8e, 0x0b, 0xe5, 0x5a, 0x80, 0xac, 0x89, 0x35,
+ 0x5e, 0x9e, 0x6d, 0x13, 0x45, 0xc9, 0x34, 0x9c, 0x08, 0x81, 0xac, 0x11, 0xae, 0x92, 0xc5, 0xa5,
+ 0xe4, 0xc2, 0xd6, 0x66, 0xf1, 0xac, 0xc4, 0x8d, 0x35, 0x5b, 0xd6, 0xe0, 0x78, 0x31, 0x72, 0x13,
+ 0x46, 0x43, 0xd0, 0x0d, 0xc7, 0x6e, 0xb7, 0x5c, 0x25, 0x87, 0xac, 0x8a, 0x5b, 0x9b, 0xc5, 0x87,
+ 0x24, 0x56, 0x2b, 0x88, 0x94, 0x17, 0xf0, 0x78, 0x41, 0xf2, 0xdd, 0x19, 0x99, 0x9b, 0x18, 0x85,
+ 0x79, 0x1c, 0x85, 0xcf, 0xf9, 0xa3, 0xb0, 0xa3, 0x90, 0xae, 0xc4, 0x4b, 0x8a, 0x41, 0x19, 0x6b,
+ 0x46, 0x62, 0x50, 0x26, 0x6a, 0x3c, 0x3b, 0x01, 0x0f, 0xa4, 0xf2, 0xda, 0x95, 0x56, 0xff, 0x69,
+ 0x4e, 0xe6, 0xb2, 0x60, 0x1b, 0x41, 0x67, 0xce, 0xcb, 0x9d, 0xb9, 0x60, 0x1b, 0x38, 0xd5, 0x67,
+ 0xc2, 0xb5, 0x53, 0x6a, 0x6c, 0xcb, 0x36, 0xe2, 0xb3, 0x7e, 0xb2, 0x2c, 0x79, 0x03, 0x4e, 0x27,
+ 0x80, 0x7c, 0xba, 0xe6, 0xda, 0x7f, 0x71, 0x6b, 0xb3, 0xa8, 0xa6, 0x70, 0x8d, 0xcf, 0xde, 0x1d,
+ 0xb8, 0x10, 0x1d, 0xce, 0x48, 0x52, 0xb7, 0x2d, 0x4f, 0x37, 0x2d, 0x61, 0x5c, 0xf2, 0x51, 0xf2,
+ 0xfe, 0xad, 0xcd, 0xe2, 0xa3, 0xb2, 0x0e, 0xfa, 0x34, 0xf1, 0xc6, 0x77, 0xe2, 0x43, 0x0c, 0x50,
+ 0x52, 0x50, 0x95, 0xa6, 0xbe, 0xe2, 0x5b, 0xcc, 0x97, 0xb6, 0x36, 0x8b, 0xef, 0x4b, 0xad, 0xc3,
+ 0x64, 0x54, 0xf2, 0x0a, 0xdd, 0x89, 0x13, 0xd1, 0x80, 0x84, 0xb8, 0x39, 0xdb, 0xa0, 0xf8, 0x0d,
+ 0xbd, 0xc8, 0x5f, 0xdd, 0xda, 0x2c, 0x5e, 0x90, 0xf8, 0x5b, 0xb6, 0x41, 0xe3, 0xcd, 0x4f, 0x29,
+ 0xad, 0xfe, 0x5a, 0x0e, 0x2e, 0x54, 0x4b, 0xb3, 0x33, 0x15, 0xc3, 0x37, 0x69, 0x16, 0x1c, 0xfb,
+ 0xae, 0x69, 0x48, 0xa3, 0x77, 0x09, 0xce, 0xc4, 0x50, 0x93, 0x68, 0x45, 0x05, 0xc6, 0x34, 0x7e,
+ 0x9b, 0x6f, 0x2e, 0xb5, 0x04, 0x4d, 0x8d, 0x9b, 0x5a, 0xd1, 0x45, 0xbb, 0x13, 0x23, 0xd6, 0x47,
+ 0x31, 0x54, 0x75, 0xd5, 0x76, 0xbc, 0x7a, 0xdb, 0x13, 0x4a, 0x80, 0x7d, 0x94, 0xa8, 0xc3, 0x15,
+ 0x44, 0x5d, 0xaa, 0xf0, 0xf9, 0x90, 0xcf, 0x66, 0x60, 0xb4, 0xe4, 0x79, 0x8e, 0xb9, 0xd4, 0xf6,
+ 0xe8, 0xac, 0xde, 0x6a, 0x99, 0xd6, 0x0a, 0x8e, 0xf5, 0xc1, 0x6b, 0x2f, 0x06, 0x6b, 0x64, 0x57,
+ 0x49, 0x5c, 0x89, 0x17, 0x97, 0x86, 0xa8, 0xee, 0xa3, 0x6a, 0x4d, 0x8e, 0x93, 0x87, 0x68, 0xbc,
+ 0x1c, 0x1b, 0xa2, 0xa9, 0xbc, 0x76, 0x35, 0x44, 0xbf, 0x94, 0x83, 0x73, 0xf3, 0x6b, 0x9e, 0xae,
+ 0x51, 0xd7, 0x6e, 0x3b, 0x75, 0xea, 0xde, 0x6a, 0x19, 0xba, 0x47, 0xc3, 0x91, 0x5a, 0x84, 0xde,
+ 0x92, 0x61, 0x50, 0x03, 0xd9, 0xf5, 0xf2, 0x6d, 0x9f, 0xce, 0x00, 0x1a, 0x87, 0x93, 0xc7, 0xa0,
+ 0x4f, 0x94, 0x41, 0xee, 0xbd, 0xe3, 0x83, 0x5b, 0x9b, 0xc5, 0xbe, 0x36, 0x07, 0x69, 0x3e, 0x8e,
+ 0x91, 0x95, 0x69, 0x83, 0x32, 0xb2, 0x5c, 0x48, 0x66, 0x70, 0x90, 0xe6, 0xe3, 0xc8, 0x6b, 0x30,
+ 0x82, 0x6c, 0x83, 0xf6, 0x88, 0xb9, 0xef, 0x94, 0x2f, 0x5d, 0xb9, 0xb1, 0x7c, 0x69, 0xc2, 0xd6,
+ 0xd4, 0x1c, 0xbf, 0x80, 0x16, 0x63, 0x40, 0xee, 0xc0, 0xa8, 0x68, 0x44, 0xc8, 0xb4, 0xb7, 0x0b,
+ 0xd3, 0x07, 0xb6, 0x36, 0x8b, 0x63, 0xa2, 0xfd, 0x12, 0xdb, 0x04, 0x13, 0xc6, 0x58, 0x34, 0x3b,
+ 0x64, 0x5c, 0xd8, 0x8e, 0xb1, 0xf8, 0x62, 0x99, 0x71, 0x9c, 0x89, 0xfa, 0x3a, 0x0c, 0xc9, 0x05,
+ 0xc9, 0x69, 0xdc, 0x5a, 0xf3, 0x71, 0x82, 0x9b, 0x72, 0xd3, 0xc0, 0xfd, 0xf4, 0x53, 0x30, 0x58,
+ 0xa6, 0x6e, 0xdd, 0x31, 0x5b, 0xcc, 0x6a, 0x10, 0x4a, 0x7e, 0x62, 0x6b, 0xb3, 0x38, 0x68, 0x84,
+ 0x60, 0x4d, 0xa6, 0x51, 0xff, 0x53, 0x06, 0x4e, 0x33, 0xde, 0x25, 0xd7, 0x35, 0x57, 0xac, 0xa6,
+ 0xbc, 0x6c, 0x3f, 0x01, 0x85, 0x2a, 0xd6, 0x27, 0x6a, 0x3a, 0xb5, 0xb5, 0x59, 0x1c, 0xe5, 0x2d,
+ 0x90, 0xf4, 0x50, 0xd0, 0x04, 0xfb, 0xca, 0xec, 0x36, 0xfb, 0x4a, 0x66, 0xd2, 0x7a, 0xba, 0xe3,
+ 0x99, 0xd6, 0x4a, 0xd5, 0xd3, 0xbd, 0xb6, 0x1b, 0x31, 0x69, 0x05, 0xa6, 0xe6, 0x22, 0x2a, 0x62,
+ 0xd2, 0x46, 0x0a, 0x91, 0x97, 0x61, 0x68, 0xd2, 0x32, 0x42, 0x26, 0x7c, 0x42, 0x7c, 0x88, 0x59,
+ 0x9a, 0x14, 0xe1, 0x49, 0x16, 0x91, 0x02, 0xea, 0x5f, 0xcf, 0x80, 0xc2, 0x37, 0x81, 0x33, 0xa6,
+ 0xeb, 0xcd, 0xd2, 0xe6, 0x92, 0x34, 0x3b, 0x4d, 0xf9, 0xbb, 0x4a, 0x86, 0x93, 0xd6, 0x22, 0x34,
+ 0x05, 0xc4, 0xae, 0xb2, 0x61, 0xba, 0x89, 0xed, 0x47, 0xac, 0x14, 0xa9, 0x40, 0x1f, 0xe7, 0xcc,
+ 0x6d, 0x89, 0xc1, 0x6b, 0x8a, 0xaf, 0x08, 0xf1, 0xaa, 0xb9, 0x32, 0x34, 0x39, 0xb1, 0xbc, 0xa1,
+ 0x11, 0xe5, 0xd5, 0xbf, 0x91, 0x85, 0xd1, 0x78, 0x21, 0x72, 0x07, 0xfa, 0x5f, 0xb5, 0x4d, 0x8b,
+ 0x1a, 0xf3, 0x16, 0xb6, 0xb0, 0xfb, 0xe1, 0x88, 0x6f, 0x8b, 0x9f, 0x7c, 0x13, 0xcb, 0xd4, 0x64,
+ 0x0b, 0x16, 0xcf, 0x4a, 0x02, 0x66, 0xe4, 0x63, 0x30, 0xc0, 0x6c, 0xc0, 0xbb, 0xc8, 0x39, 0xbb,
+ 0x2d, 0xe7, 0x87, 0x05, 0xe7, 0x53, 0x0e, 0x2f, 0x94, 0x64, 0x1d, 0xb2, 0x63, 0x7a, 0xa5, 0x51,
+ 0xdd, 0xb5, 0x2d, 0xd1, 0xf3, 0xa8, 0x57, 0x0e, 0x42, 0x64, 0xbd, 0xe2, 0x34, 0xcc, 0x74, 0xe5,
+ 0x1f, 0x8b, 0xdd, 0x20, 0xed, 0x5d, 0xb8, 0xac, 0xe2, 0x3d, 0x20, 0x11, 0xab, 0xdf, 0x9b, 0x85,
+ 0x27, 0x43, 0x91, 0x69, 0xf4, 0xae, 0x49, 0xd7, 0x85, 0x38, 0x57, 0xcd, 0x96, 0xd8, 0xb3, 0x32,
+ 0x95, 0x77, 0x27, 0x56, 0x75, 0x6b, 0x85, 0x1a, 0xe4, 0x32, 0xf4, 0x6a, 0x76, 0x83, 0xba, 0x4a,
+ 0x06, 0xcd, 0x35, 0x9c, 0x4e, 0x1c, 0x06, 0x90, 0x0f, 0x3d, 0x90, 0x82, 0xd8, 0x50, 0x58, 0x74,
+ 0x74, 0xd3, 0xf3, 0x7b, 0xb6, 0x94, 0xec, 0xd9, 0x1d, 0xd4, 0x78, 0x85, 0xf3, 0xe0, 0x73, 0x3e,
+ 0x0a, 0xc2, 0x43, 0x80, 0x2c, 0x08, 0x4e, 0x72, 0xf6, 0x79, 0x18, 0x94, 0x88, 0x77, 0x35, 0xa9,
+ 0x7f, 0x25, 0x2f, 0xeb, 0xba, 0xdf, 0x2c, 0xa1, 0xeb, 0x57, 0x99, 0x8e, 0xba, 0x2e, 0xb3, 0x2a,
+ 0xb8, 0x92, 0x0b, 0x4d, 0x44, 0x50, 0x54, 0x13, 0x11, 0x44, 0x9e, 0x86, 0x7e, 0xce, 0x22, 0xd8,
+ 0xbf, 0xe2, 0xde, 0xd7, 0x41, 0x58, 0x74, 0x69, 0x0e, 0x08, 0xc9, 0xcf, 0x67, 0xe0, 0x7c, 0x57,
+ 0x49, 0xa0, 0x32, 0x0c, 0x5e, 0x7b, 0x66, 0x4f, 0x62, 0x1c, 0x7f, 0x72, 0x6b, 0xb3, 0x78, 0xb9,
+ 0x19, 0x90, 0xd4, 0x1c, 0x89, 0xa6, 0x56, 0xe7, 0x44, 0x52, 0xbb, 0xba, 0x37, 0x85, 0x19, 0x8f,
+ 0xbc, 0xd2, 0x29, 0x3c, 0x3a, 0xb2, 0xea, 0x1b, 0x7e, 0x23, 0xf3, 0xa1, 0xf1, 0x28, 0xbe, 0x77,
+ 0xd9, 0x27, 0x49, 0xa9, 0xa6, 0x03, 0x17, 0x52, 0x87, 0x33, 0x1c, 0x53, 0xd6, 0x37, 0xe6, 0x97,
+ 0x67, 0x6d, 0xcb, 0x5b, 0xf5, 0x2b, 0xe8, 0x95, 0xcf, 0x5e, 0xb0, 0x02, 0x43, 0xdf, 0xa8, 0xd9,
+ 0xcb, 0xb5, 0x26, 0xa3, 0x4a, 0xa9, 0xa3, 0x13, 0x27, 0x36, 0xd1, 0x8a, 0x31, 0xe7, 0x4f, 0x41,
+ 0x85, 0xf0, 0x64, 0xcc, 0x1f, 0xa7, 0xc9, 0x09, 0x27, 0x56, 0x48, 0xad, 0xc0, 0xd0, 0x8c, 0x5d,
+ 0x5f, 0x0b, 0xd4, 0xe5, 0x79, 0x28, 0x2c, 0xea, 0xce, 0x0a, 0xf5, 0x50, 0x16, 0x83, 0xd7, 0xc6,
+ 0xae, 0xf0, 0xd3, 0x66, 0x46, 0xc4, 0x11, 0xe3, 0x23, 0x62, 0x36, 0x28, 0x78, 0xf8, 0x5b, 0x13,
+ 0x05, 0xd4, 0x6f, 0xf4, 0xc2, 0x90, 0x38, 0x19, 0xc5, 0xd9, 0x9c, 0xbc, 0x10, 0x9e, 0x35, 0x8b,
+ 0xe9, 0x2b, 0x38, 0x1d, 0x0a, 0x4e, 0xb5, 0x86, 0x18, 0xb3, 0xdf, 0xdb, 0x2c, 0x66, 0xb6, 0x36,
+ 0x8b, 0x3d, 0x5a, 0xbf, 0xb4, 0xa9, 0x0c, 0xd7, 0x1b, 0x69, 0x81, 0x95, 0xcf, 0x3a, 0x63, 0x65,
+ 0xf9, 0xfa, 0xf3, 0x32, 0xf4, 0x89, 0x36, 0x08, 0x8d, 0x3b, 0x13, 0x9e, 0x65, 0x44, 0x4e, 0x78,
+ 0x63, 0xa5, 0xfd, 0x52, 0xe4, 0x45, 0x28, 0xf0, 0xbd, 0xbd, 0x10, 0xc0, 0xe9, 0xf4, 0xb3, 0x90,
+ 0x58, 0x71, 0x51, 0x86, 0x4c, 0x03, 0x84, 0xfb, 0xfa, 0xe0, 0x40, 0x5b, 0x70, 0x48, 0xee, 0xf8,
+ 0x63, 0x5c, 0xa4, 0xb2, 0xe4, 0x59, 0x18, 0x5a, 0xa4, 0x4e, 0xd3, 0xb4, 0xf4, 0x46, 0xd5, 0x7c,
+ 0xcb, 0x3f, 0xd3, 0xc6, 0x85, 0xd7, 0x35, 0xdf, 0x92, 0x47, 0x6e, 0x84, 0x8e, 0x7c, 0x32, 0x6d,
+ 0xdf, 0xdc, 0x87, 0x0d, 0x79, 0x64, 0xdb, 0x0d, 0x65, 0xac, 0x3d, 0x29, 0xdb, 0xe8, 0xd7, 0x60,
+ 0x38, 0xb2, 0x65, 0x12, 0x87, 0x96, 0xe7, 0x93, 0xac, 0xa5, 0xfd, 0x5f, 0x8c, 0x6d, 0x94, 0x03,
+ 0xd3, 0xe4, 0x8a, 0x65, 0x7a, 0xa6, 0xde, 0x98, 0xb0, 0x9b, 0x4d, 0xdd, 0x32, 0x94, 0x81, 0x50,
+ 0x93, 0x4d, 0x8e, 0xa9, 0xd5, 0x39, 0x4a, 0xd6, 0xe4, 0x68, 0x21, 0xb6, 0x2d, 0x17, 0x7d, 0xa8,
+ 0xd1, 0xba, 0xed, 0x30, 0x5b, 0x00, 0xcf, 0x24, 0xc5, 0xb6, 0xdc, 0xe5, 0xb8, 0x9a, 0xe3, 0x23,
+ 0x65, 0x63, 0x3b, 0x5e, 0xf0, 0xd5, 0x7c, 0xff, 0xe0, 0xe8, 0x50, 0xfc, 0x18, 0x59, 0xfd, 0xb9,
+ 0x1c, 0x0c, 0x0a, 0x52, 0xb6, 0x94, 0x1e, 0x2b, 0xf8, 0x7e, 0x14, 0x3c, 0x55, 0x51, 0x0b, 0x07,
+ 0xa5, 0xa8, 0xea, 0xe7, 0xb2, 0xc1, 0x6c, 0xb4, 0xe0, 0x98, 0xd6, 0xfe, 0x66, 0xa3, 0x8b, 0x00,
+ 0x13, 0xab, 0x6d, 0x6b, 0x8d, 0x5f, 0x97, 0x65, 0xc3, 0xeb, 0xb2, 0xba, 0xa9, 0x49, 0x18, 0x72,
+ 0x1e, 0xf2, 0x65, 0xc6, 0x9f, 0xf5, 0xcc, 0xd0, 0xf8, 0xc0, 0xdb, 0x9c, 0x53, 0xe6, 0x49, 0x0d,
+ 0xc1, 0x6c, 0x73, 0x35, 0xbe, 0xe1, 0x51, 0x6e, 0xce, 0xe6, 0xf8, 0xe6, 0x6a, 0x89, 0x01, 0x34,
+ 0x0e, 0x27, 0xd7, 0x61, 0xac, 0x4c, 0x1b, 0xfa, 0xc6, 0xac, 0xd9, 0x68, 0x98, 0x2e, 0xad, 0xdb,
+ 0x96, 0xe1, 0xa2, 0x90, 0x45, 0x75, 0x4d, 0x57, 0x4b, 0x12, 0x10, 0x15, 0x0a, 0xf3, 0xcb, 0xcb,
+ 0x2e, 0xf5, 0x50, 0x7c, 0xb9, 0x71, 0x60, 0x93, 0xb3, 0x8d, 0x10, 0x4d, 0x60, 0xd4, 0x5f, 0xca,
+ 0xb0, 0xdd, 0x8b, 0xbb, 0xe6, 0xd9, 0xad, 0x40, 0xcb, 0xf7, 0x25, 0x92, 0xcb, 0xa1, 0x5d, 0x91,
+ 0xc5, 0xaf, 0x3d, 0x21, 0xbe, 0xb6, 0x4f, 0xd8, 0x16, 0xa1, 0x45, 0x91, 0xfa, 0x55, 0xb9, 0x6d,
+ 0xbe, 0x4a, 0xfd, 0xb3, 0x2c, 0x9c, 0x11, 0x2d, 0x9e, 0x68, 0x98, 0xad, 0x25, 0x5b, 0x77, 0x0c,
+ 0x8d, 0xd6, 0xa9, 0x79, 0x97, 0x1e, 0xcd, 0x81, 0x17, 0x1d, 0x3a, 0xf9, 0x7d, 0x0c, 0x9d, 0x6b,
+ 0xb8, 0x11, 0x64, 0x92, 0xc1, 0x03, 0x5f, 0x6e, 0x54, 0x8c, 0x6e, 0x6d, 0x16, 0x87, 0x0c, 0x0e,
+ 0xc6, 0x23, 0x7f, 0x4d, 0x26, 0x62, 0x4a, 0x32, 0x43, 0xad, 0x15, 0x6f, 0x15, 0x95, 0xa4, 0x97,
+ 0x2b, 0x49, 0x03, 0x21, 0x9a, 0xc0, 0xa8, 0xff, 0x2e, 0x0b, 0xa7, 0xe2, 0x22, 0xaf, 0x52, 0xcb,
+ 0x38, 0x96, 0xf7, 0x3b, 0x23, 0xef, 0x6f, 0xe5, 0xe0, 0x21, 0x51, 0xa6, 0xba, 0xaa, 0x3b, 0xd4,
+ 0x28, 0x9b, 0x0e, 0xad, 0x7b, 0xb6, 0xb3, 0x71, 0x84, 0x0d, 0xa8, 0x83, 0x13, 0xfb, 0x75, 0x28,
+ 0x88, 0xed, 0x3f, 0x5f, 0x67, 0x46, 0x82, 0x96, 0x20, 0x34, 0xb1, 0x42, 0xf1, 0xa3, 0x83, 0x58,
+ 0x67, 0x15, 0x76, 0xd2, 0x59, 0x1f, 0x82, 0xe1, 0x40, 0xf4, 0xb8, 0x11, 0xed, 0x0b, 0xad, 0x2d,
+ 0xc3, 0x47, 0xe0, 0x5e, 0x54, 0x8b, 0x12, 0x62, 0x6d, 0x3e, 0xa0, 0x52, 0x46, 0x6b, 0x68, 0x58,
+ 0xd4, 0x16, 0x94, 0x33, 0x0d, 0x4d, 0x26, 0x52, 0x37, 0xf3, 0x70, 0x36, 0xbd, 0xdb, 0x35, 0xaa,
+ 0x1b, 0xc7, 0xbd, 0xfe, 0x9e, 0xec, 0x75, 0xf2, 0x08, 0xe4, 0x17, 0x74, 0x6f, 0x55, 0x5c, 0xbf,
+ 0xe3, 0x9d, 0xf0, 0xb2, 0xd9, 0xa0, 0xb5, 0x96, 0xee, 0xad, 0x6a, 0x88, 0x92, 0xe6, 0x0c, 0x40,
+ 0x8e, 0x29, 0x73, 0x86, 0xb4, 0xd8, 0x0f, 0x3e, 0x9c, 0xb9, 0x94, 0x4f, 0x5d, 0xec, 0xbf, 0x91,
+ 0xef, 0x34, 0xaf, 0xdc, 0x71, 0x4c, 0x8f, 0x1e, 0x6b, 0xd8, 0xb1, 0x86, 0xed, 0x53, 0xc3, 0xfe,
+ 0x20, 0x0b, 0xc3, 0xc1, 0xa6, 0xe9, 0x4d, 0x5a, 0x3f, 0x9c, 0xb5, 0x2a, 0xdc, 0xca, 0xe4, 0xf6,
+ 0xbd, 0x95, 0xd9, 0x8f, 0x42, 0xa9, 0xc1, 0x91, 0x27, 0x37, 0x0d, 0x50, 0x62, 0xfc, 0xc8, 0x33,
+ 0x38, 0xe8, 0x7c, 0x04, 0xfa, 0x66, 0xf5, 0x7b, 0x66, 0xb3, 0xdd, 0x14, 0x56, 0x3a, 0xba, 0x93,
+ 0x35, 0xf5, 0x7b, 0x9a, 0x0f, 0x57, 0xff, 0x49, 0x06, 0x46, 0x84, 0x50, 0x05, 0xf3, 0x7d, 0x49,
+ 0x35, 0x94, 0x4e, 0x76, 0xdf, 0xd2, 0xc9, 0xed, 0x5d, 0x3a, 0xea, 0x4f, 0xe4, 0x40, 0x99, 0x32,
+ 0x1b, 0x74, 0xd1, 0xd1, 0x2d, 0x77, 0x99, 0x3a, 0x62, 0x3b, 0x3d, 0xc9, 0x58, 0xed, 0xeb, 0x03,
+ 0xa5, 0x29, 0x25, 0xbb, 0xa7, 0x29, 0xe5, 0x03, 0x30, 0x20, 0x1a, 0x13, 0xb8, 0x32, 0xe2, 0xa8,
+ 0x71, 0x7c, 0xa0, 0x16, 0xe2, 0x19, 0x71, 0xa9, 0xd5, 0x72, 0xec, 0xbb, 0xd4, 0xe1, 0xb7, 0x54,
+ 0x82, 0x58, 0xf7, 0x81, 0x5a, 0x88, 0x97, 0x38, 0x53, 0xdf, 0x5e, 0x94, 0x39, 0x53, 0x47, 0x0b,
+ 0xf1, 0xe4, 0x12, 0xf4, 0xcf, 0xd8, 0x75, 0x1d, 0x05, 0xcd, 0xa7, 0x95, 0xa1, 0xad, 0xcd, 0x62,
+ 0x7f, 0x43, 0xc0, 0xb4, 0x00, 0xcb, 0x28, 0xcb, 0xf6, 0xba, 0xd5, 0xb0, 0x75, 0xee, 0xfc, 0xd2,
+ 0xcf, 0x29, 0x0d, 0x01, 0xd3, 0x02, 0x2c, 0xa3, 0x64, 0x32, 0x47, 0xa7, 0xa2, 0xfe, 0x90, 0xe7,
+ 0xb2, 0x80, 0x69, 0x01, 0x56, 0xfd, 0xa5, 0x3c, 0xd3, 0x5e, 0xd7, 0x7c, 0xeb, 0xbe, 0x5f, 0x17,
+ 0xc2, 0x01, 0xd3, 0xbb, 0x87, 0x01, 0x73, 0xdf, 0x1c, 0xd8, 0xa9, 0x7f, 0xde, 0x07, 0x20, 0xa4,
+ 0x3f, 0x79, 0xbc, 0x39, 0xdc, 0x9f, 0xd6, 0x94, 0x61, 0x6c, 0xd2, 0x5a, 0xd5, 0xad, 0x3a, 0x35,
+ 0xc2, 0x63, 0xcb, 0x02, 0x0e, 0x6d, 0x74, 0x82, 0xa4, 0x02, 0x19, 0x9e, 0x5b, 0x6a, 0xc9, 0x02,
+ 0xe4, 0x29, 0x18, 0xac, 0x58, 0x1e, 0x75, 0xf4, 0xba, 0x67, 0xde, 0xa5, 0x62, 0x6a, 0xc0, 0x9b,
+ 0x61, 0x33, 0x04, 0x6b, 0x32, 0x0d, 0xb9, 0x0e, 0x43, 0x0b, 0xba, 0xe3, 0x99, 0x75, 0xb3, 0xa5,
+ 0x5b, 0x9e, 0xab, 0xf4, 0xe3, 0x8c, 0x86, 0x16, 0x46, 0x4b, 0x82, 0x6b, 0x11, 0x2a, 0xf2, 0x49,
+ 0x18, 0xc0, 0xad, 0x29, 0xfa, 0x6b, 0x0f, 0x6c, 0x7b, 0x71, 0xf8, 0x68, 0xe8, 0x1e, 0xc8, 0x4f,
+ 0x5f, 0xf1, 0x06, 0x38, 0x7e, 0x77, 0x18, 0x70, 0x24, 0x1f, 0x85, 0xbe, 0x49, 0xcb, 0x40, 0xe6,
+ 0xb0, 0x2d, 0x73, 0x55, 0x30, 0x3f, 0x1d, 0x32, 0xb7, 0x5b, 0x31, 0xde, 0x3e, 0xbb, 0xf4, 0x51,
+ 0x36, 0xf8, 0xce, 0x8d, 0xb2, 0xa1, 0x77, 0xe0, 0x58, 0x7c, 0xf8, 0xa0, 0x8e, 0xc5, 0x47, 0xf6,
+ 0x78, 0x2c, 0xae, 0xbe, 0x05, 0x83, 0xe3, 0x0b, 0x53, 0xc1, 0xe8, 0x7d, 0x10, 0x72, 0x0b, 0xc2,
+ 0x53, 0x21, 0xcf, 0xed, 0x99, 0x96, 0x69, 0x68, 0x0c, 0x46, 0x2e, 0x43, 0xff, 0x04, 0xba, 0xbf,
+ 0x89, 0x5b, 0xc4, 0x3c, 0x5f, 0xff, 0xea, 0x08, 0x43, 0x2f, 0x58, 0x1f, 0x4d, 0x1e, 0x83, 0xbe,
+ 0x05, 0xc7, 0x5e, 0x71, 0xf4, 0xa6, 0x58, 0x83, 0xd1, 0x55, 0xa4, 0xc5, 0x41, 0x9a, 0x8f, 0x53,
+ 0x7f, 0x20, 0xe3, 0x9b, 0xed, 0xac, 0x44, 0xb5, 0x8d, 0x47, 0xf3, 0x58, 0x77, 0x3f, 0x2f, 0xe1,
+ 0x72, 0x90, 0xe6, 0xe3, 0xc8, 0x65, 0xe8, 0x9d, 0x74, 0x1c, 0xdb, 0x91, 0x7d, 0xdc, 0x29, 0x03,
+ 0xc8, 0xd7, 0xbd, 0x48, 0x41, 0x9e, 0x83, 0x41, 0x3e, 0xe7, 0xf0, 0x13, 0xcd, 0x5c, 0xb7, 0x9b,
+ 0x52, 0x99, 0x52, 0xfd, 0x5a, 0x4e, 0xb2, 0xd9, 0xb8, 0xc4, 0xef, 0xc3, 0x5b, 0x81, 0xa7, 0x21,
+ 0x37, 0xbe, 0x30, 0x25, 0x26, 0xc0, 0x93, 0x7e, 0x51, 0x49, 0x55, 0x62, 0xe5, 0x18, 0x35, 0x39,
+ 0x07, 0xf9, 0x05, 0xa6, 0x3e, 0x05, 0x54, 0x8f, 0xfe, 0xad, 0xcd, 0x62, 0xbe, 0xc5, 0xf4, 0x07,
+ 0xa1, 0x88, 0x65, 0x9b, 0x19, 0xbe, 0x63, 0xe2, 0xd8, 0x70, 0x1f, 0x73, 0x0e, 0xf2, 0x25, 0x67,
+ 0xe5, 0xae, 0x98, 0xb5, 0x10, 0xab, 0x3b, 0x2b, 0x77, 0x35, 0x84, 0x92, 0xab, 0x00, 0x1a, 0xf5,
+ 0xda, 0x8e, 0x85, 0xcf, 0x4f, 0x06, 0xf0, 0xfc, 0x0d, 0x67, 0x43, 0x07, 0xa1, 0xb5, 0xba, 0x6d,
+ 0x50, 0x4d, 0x22, 0x51, 0x7f, 0x26, 0xbc, 0xd8, 0x29, 0x9b, 0xee, 0xda, 0x71, 0x17, 0xee, 0xa2,
+ 0x0b, 0x75, 0x71, 0xc4, 0x99, 0xec, 0xa4, 0x22, 0xf4, 0x4e, 0x35, 0xf4, 0x15, 0x17, 0xfb, 0x50,
+ 0xf8, 0x92, 0x2d, 0x33, 0x80, 0xc6, 0xe1, 0xb1, 0x7e, 0xea, 0xdf, 0xbe, 0x9f, 0x7e, 0xb8, 0x37,
+ 0x18, 0x6d, 0x73, 0xd4, 0x5b, 0xb7, 0x9d, 0xe3, 0xae, 0xda, 0x69, 0x57, 0x5d, 0x84, 0xbe, 0xaa,
+ 0x53, 0x97, 0x8e, 0x2e, 0x70, 0x3f, 0xe0, 0x3a, 0x75, 0x7e, 0x6c, 0xe1, 0x23, 0x19, 0x5d, 0xd9,
+ 0xf5, 0x90, 0xae, 0x2f, 0xa4, 0x33, 0x5c, 0x4f, 0xd0, 0x09, 0xa4, 0xa0, 0x5b, 0xb0, 0x1d, 0x4f,
+ 0x74, 0x5c, 0x40, 0xd7, 0xb2, 0x1d, 0x4f, 0xf3, 0x91, 0xe4, 0x03, 0x00, 0x8b, 0x13, 0x0b, 0xbe,
+ 0xb3, 0xfd, 0x40, 0xe8, 0x0b, 0x28, 0xbc, 0xec, 0x35, 0x09, 0x4d, 0x16, 0x61, 0x60, 0xbe, 0x45,
+ 0x1d, 0xbe, 0x15, 0xe2, 0x0f, 0x4a, 0xde, 0x1f, 0x13, 0xad, 0xe8, 0xf7, 0x2b, 0xe2, 0xff, 0x80,
+ 0x9c, 0xaf, 0x2f, 0xb6, 0xff, 0x53, 0x0b, 0x19, 0x91, 0xe7, 0xa0, 0x50, 0xe2, 0x76, 0xde, 0x20,
+ 0xb2, 0x0c, 0x44, 0x86, 0x5b, 0x50, 0x8e, 0xe2, 0x7b, 0x76, 0x1d, 0xff, 0xd6, 0x04, 0xb9, 0x7a,
+ 0x19, 0x46, 0xe3, 0xd5, 0x90, 0x41, 0xe8, 0x9b, 0x98, 0x9f, 0x9b, 0x9b, 0x9c, 0x58, 0x1c, 0xed,
+ 0x21, 0xfd, 0x90, 0xaf, 0x4e, 0xce, 0x95, 0x47, 0x33, 0xea, 0x2f, 0x48, 0x33, 0x08, 0x53, 0xad,
+ 0xe3, 0xab, 0xe1, 0x7d, 0xdd, 0xb7, 0x8c, 0xe2, 0x7d, 0x28, 0x9e, 0x18, 0x34, 0x4d, 0xcf, 0xa3,
+ 0x86, 0x58, 0x25, 0xf0, 0xbe, 0xd0, 0xbb, 0xa7, 0x25, 0xf0, 0xe4, 0x09, 0x18, 0x46, 0x98, 0xb8,
+ 0x22, 0xe4, 0xfb, 0x63, 0x51, 0xc0, 0xb9, 0xa7, 0x45, 0x91, 0xea, 0xd7, 0xc3, 0xdb, 0xe1, 0x19,
+ 0xaa, 0x1f, 0xd5, 0x1b, 0xc5, 0x77, 0x49, 0x7f, 0xa9, 0x7f, 0x99, 0xe7, 0x4f, 0x40, 0xf8, 0x7b,
+ 0xc1, 0xc3, 0x10, 0x65, 0x78, 0xa4, 0x9b, 0xdb, 0xc5, 0x91, 0xee, 0x13, 0x50, 0x98, 0xa5, 0xde,
+ 0xaa, 0xed, 0x3b, 0x7e, 0xa1, 0x87, 0x5e, 0x13, 0x21, 0xb2, 0x87, 0x1e, 0xa7, 0x21, 0x6b, 0x40,
+ 0xfc, 0xc7, 0x80, 0x81, 0x23, 0xb6, 0x7f, 0x84, 0x7c, 0x26, 0xb1, 0x4f, 0xa9, 0xe2, 0x4b, 0x60,
+ 0xf4, 0xb1, 0x3f, 0x15, 0x38, 0x7a, 0x4b, 0x9e, 0x58, 0x7f, 0xb1, 0x59, 0x2c, 0x70, 0x1a, 0x2d,
+ 0x85, 0x2d, 0x79, 0x0d, 0x06, 0x66, 0xa7, 0x4a, 0xe2, 0x61, 0x20, 0xf7, 0x8a, 0x78, 0x30, 0x90,
+ 0xa2, 0x8f, 0x08, 0x44, 0x82, 0xef, 0x6d, 0x9a, 0xcb, 0x7a, 0xf2, 0x5d, 0x60, 0xc8, 0x85, 0x69,
+ 0x0b, 0x7f, 0xb9, 0x23, 0x4e, 0x17, 0x02, 0x6d, 0x89, 0xbe, 0xe7, 0x89, 0xcb, 0x8a, 0x63, 0x63,
+ 0xda, 0xd2, 0xbf, 0x8f, 0xd1, 0x3d, 0x0f, 0x63, 0xa5, 0x56, 0xab, 0x61, 0x52, 0x03, 0xf5, 0x45,
+ 0x6b, 0x37, 0xa8, 0x2b, 0x5c, 0x7e, 0xf0, 0x31, 0x88, 0xce, 0x91, 0x35, 0x7c, 0x8e, 0x5a, 0x73,
+ 0xda, 0x51, 0xff, 0xcc, 0x64, 0x59, 0xf5, 0x87, 0xb2, 0x70, 0x7a, 0xc2, 0xa1, 0xba, 0x47, 0x67,
+ 0xa7, 0x4a, 0xa5, 0x36, 0xfa, 0xc8, 0x35, 0x1a, 0xd4, 0x5a, 0x39, 0x9c, 0x61, 0xfd, 0x61, 0x18,
+ 0x09, 0x1a, 0x50, 0xad, 0xdb, 0x2d, 0x2a, 0x3f, 0xac, 0xaa, 0xfb, 0x98, 0x9a, 0xcb, 0x50, 0x5a,
+ 0x8c, 0x94, 0xdc, 0x84, 0x93, 0x01, 0xa4, 0xd4, 0x68, 0xd8, 0xeb, 0x1a, 0x6d, 0xbb, 0xdc, 0x31,
+ 0xb6, 0x9f, 0x3b, 0xc6, 0x86, 0x1c, 0x74, 0x86, 0xaf, 0x39, 0x8c, 0x40, 0x4b, 0x2b, 0xa5, 0x7e,
+ 0x39, 0x07, 0x67, 0x6e, 0xeb, 0x0d, 0xd3, 0x08, 0x45, 0xa3, 0x51, 0xb7, 0x65, 0x5b, 0x2e, 0x3d,
+ 0x42, 0xa3, 0x34, 0x32, 0x14, 0xf2, 0x07, 0x32, 0x14, 0x92, 0x5d, 0xd4, 0xbb, 0xef, 0x2e, 0x2a,
+ 0xec, 0xa9, 0x8b, 0xfe, 0x6d, 0x06, 0x46, 0x7d, 0xc7, 0x7f, 0xf9, 0x11, 0xb7, 0xe4, 0x95, 0x8e,
+ 0x47, 0x88, 0x31, 0x3f, 0x68, 0xc4, 0x93, 0x2a, 0xf4, 0x4d, 0xde, 0x6b, 0x99, 0x0e, 0x75, 0x77,
+ 0xe0, 0xc4, 0x7d, 0x5e, 0x1c, 0x97, 0x8c, 0x51, 0x5e, 0x24, 0x71, 0x52, 0xc2, 0xc1, 0xf8, 0x9c,
+ 0x8f, 0x3f, 0x7d, 0x18, 0xf7, 0x5f, 0xa6, 0xf3, 0xe7, 0x7c, 0xe2, 0x89, 0x44, 0xe4, 0x7d, 0x66,
+ 0x48, 0x4a, 0x1e, 0x85, 0xdc, 0xe2, 0xe2, 0x8c, 0x98, 0x49, 0x31, 0x22, 0x80, 0xe7, 0xc9, 0xef,
+ 0x15, 0x19, 0x56, 0xfd, 0xe3, 0x2c, 0x00, 0x53, 0x05, 0x3e, 0x5c, 0x0f, 0x45, 0x09, 0xc7, 0xa1,
+ 0xdf, 0x17, 0xb8, 0x50, 0xc3, 0xc0, 0x6b, 0x3f, 0xde, 0x11, 0xf1, 0xba, 0x83, 0x17, 0x1a, 0x45,
+ 0xdf, 0x91, 0x9c, 0xdf, 0x03, 0xe0, 0xce, 0x06, 0x1d, 0xc9, 0x7d, 0xf7, 0xf1, 0x0f, 0xc0, 0x80,
+ 0x98, 0xf1, 0xec, 0xc8, 0xf9, 0x7f, 0xdd, 0x07, 0x6a, 0x21, 0x3e, 0x36, 0xb5, 0x16, 0xf6, 0xb1,
+ 0x10, 0xfb, 0xe2, 0xe5, 0xbd, 0x72, 0x2c, 0xde, 0x03, 0x16, 0xef, 0x17, 0x84, 0x78, 0xf9, 0x0b,
+ 0x9e, 0x23, 0x2b, 0xde, 0x03, 0x3b, 0xfb, 0x56, 0xff, 0x20, 0x03, 0x84, 0x35, 0x6b, 0x41, 0x77,
+ 0xdd, 0x75, 0xdb, 0x31, 0xb8, 0x73, 0xfa, 0xa1, 0x08, 0xe6, 0xe0, 0xee, 0x2b, 0xbf, 0xd6, 0x0f,
+ 0x27, 0x23, 0x8e, 0xbf, 0x47, 0x7c, 0xb2, 0xba, 0x1c, 0x1d, 0x4d, 0xdd, 0x5e, 0xbd, 0xbc, 0x4f,
+ 0xbe, 0x10, 0xed, 0x8d, 0x3c, 0x40, 0x93, 0x6e, 0x42, 0x9f, 0x84, 0x21, 0xf1, 0x83, 0xad, 0xd0,
+ 0xfe, 0x4d, 0x17, 0x8e, 0x52, 0x97, 0x01, 0xb4, 0x08, 0x9a, 0x3c, 0x03, 0x03, 0x6c, 0xc0, 0xac,
+ 0x60, 0xf0, 0x90, 0xbe, 0xf0, 0x45, 0x89, 0xe1, 0x03, 0xe5, 0xf5, 0x24, 0xa0, 0x94, 0xde, 0x11,
+ 0xf5, 0xef, 0xe0, 0x1d, 0xd1, 0x1b, 0x30, 0x58, 0xb2, 0x2c, 0xdb, 0xc3, 0x4d, 0xba, 0x2b, 0xae,
+ 0x26, 0x3a, 0x5a, 0xe5, 0x8f, 0xe2, 0xe3, 0xf8, 0x90, 0x3e, 0xd5, 0x2c, 0x97, 0x19, 0x92, 0x6b,
+ 0xfe, 0xab, 0x18, 0xea, 0x08, 0xaf, 0x72, 0xbc, 0x9e, 0x71, 0x04, 0x2c, 0xf9, 0x28, 0x06, 0x3b,
+ 0x6f, 0x78, 0xc1, 0xb1, 0x5b, 0xb6, 0x4b, 0x0d, 0x2e, 0xa8, 0xc1, 0x30, 0xd4, 0x40, 0x4b, 0x20,
+ 0xf0, 0x1d, 0x5b, 0x24, 0x90, 0x47, 0xa4, 0x08, 0x59, 0x86, 0x53, 0xfe, 0x45, 0x71, 0xf0, 0x62,
+ 0xb0, 0x52, 0x76, 0x95, 0x21, 0x7c, 0x95, 0x44, 0xe2, 0xca, 0x50, 0x29, 0x8f, 0x5f, 0xf0, 0xaf,
+ 0x45, 0xfc, 0x27, 0x87, 0x35, 0xd3, 0x90, 0xbb, 0x3a, 0x95, 0x1f, 0xf9, 0x0e, 0x18, 0x9c, 0xd5,
+ 0xef, 0x95, 0xdb, 0xe2, 0xec, 0x65, 0x78, 0xe7, 0xb7, 0x2f, 0x4d, 0xfd, 0x5e, 0xcd, 0x10, 0xe5,
+ 0x62, 0x36, 0x85, 0xcc, 0x92, 0xd4, 0xe0, 0xf4, 0x82, 0x63, 0x37, 0x6d, 0x8f, 0x1a, 0xb1, 0xc7,
+ 0x77, 0x27, 0xc2, 0xd7, 0xba, 0x2d, 0x41, 0x51, 0xeb, 0xf2, 0x0a, 0xaf, 0x03, 0x1b, 0xd2, 0x84,
+ 0x13, 0x25, 0xd7, 0x6d, 0x37, 0x69, 0x78, 0x43, 0x35, 0xba, 0xed, 0x67, 0xbc, 0x5f, 0x78, 0x2d,
+ 0x3f, 0xa4, 0x63, 0x51, 0x7e, 0x41, 0x55, 0xf3, 0x4c, 0xb9, 0x46, 0xfc, 0x96, 0x38, 0xef, 0x57,
+ 0xf3, 0xfd, 0x23, 0xa3, 0x27, 0xb4, 0x33, 0xc9, 0xc6, 0x2c, 0x9a, 0x5e, 0x83, 0xaa, 0x5f, 0xcd,
+ 0x00, 0x84, 0x02, 0x26, 0x4f, 0x46, 0x23, 0x14, 0x65, 0xc2, 0x8b, 0x0e, 0x11, 0xbd, 0x20, 0x12,
+ 0x92, 0x88, 0x9c, 0x83, 0x3c, 0x46, 0xb8, 0xc8, 0x86, 0x07, 0xab, 0x6b, 0xa6, 0x65, 0x68, 0x08,
+ 0x65, 0x58, 0xe9, 0x29, 0x3a, 0x62, 0xf1, 0x52, 0x9f, 0x5b, 0x85, 0x65, 0x38, 0x51, 0x6d, 0x2f,
+ 0xf9, 0x75, 0x4b, 0xef, 0xea, 0x30, 0xd0, 0x86, 0xdb, 0x5e, 0x0a, 0x1e, 0xa3, 0x46, 0xc2, 0x98,
+ 0x44, 0x8b, 0xa8, 0xbf, 0x94, 0x89, 0xcd, 0x82, 0x87, 0xb8, 0xe8, 0xbd, 0x2f, 0xe9, 0xa7, 0x91,
+ 0x9c, 0x96, 0xd4, 0xff, 0x2f, 0x0b, 0x83, 0x0b, 0xb6, 0xe3, 0x89, 0x90, 0x21, 0x47, 0x7b, 0x15,
+ 0x92, 0xf6, 0x4a, 0xf9, 0x5d, 0xec, 0x95, 0xce, 0x41, 0x5e, 0x72, 0x51, 0xe6, 0xf7, 0x22, 0x86,
+ 0xe1, 0x68, 0x08, 0x55, 0xbf, 0x33, 0x0b, 0xf0, 0xd1, 0xa7, 0x9e, 0xba, 0x8f, 0x05, 0xa4, 0xfe,
+ 0x78, 0x06, 0x4e, 0x88, 0x8b, 0x3a, 0x29, 0xd6, 0x57, 0x9f, 0x7f, 0xc5, 0x2a, 0x8f, 0x4b, 0x0e,
+ 0xd2, 0x7c, 0x1c, 0x5b, 0x02, 0x26, 0xef, 0x99, 0x1e, 0xde, 0x55, 0x48, 0xc1, 0xbe, 0xa8, 0x80,
+ 0xc9, 0x4b, 0x80, 0x4f, 0x47, 0x9e, 0xf4, 0xaf, 0x20, 0x73, 0xe1, 0xba, 0xc7, 0x0a, 0x4c, 0xa6,
+ 0x5e, 0x43, 0xaa, 0xbf, 0x92, 0x87, 0xfc, 0xe4, 0x3d, 0x5a, 0x3f, 0xe2, 0x5d, 0x23, 0x1d, 0x6c,
+ 0xe6, 0xf7, 0x79, 0xb0, 0xb9, 0x17, 0x9f, 0x8a, 0x97, 0xc3, 0xfe, 0x2c, 0x44, 0xab, 0x8f, 0xf5,
+ 0x7c, 0xbc, 0x7a, 0xbf, 0xa7, 0x8f, 0x9e, 0x4b, 0xce, 0xdf, 0xcf, 0x41, 0xae, 0x3a, 0xb1, 0x70,
+ 0xac, 0x37, 0x87, 0xaa, 0x37, 0xdd, 0xef, 0xac, 0xd5, 0xe0, 0x1a, 0xaa, 0x3f, 0xf4, 0x12, 0x8d,
+ 0xdd, 0x38, 0x7d, 0x2b, 0x07, 0x23, 0xd5, 0xa9, 0xc5, 0x05, 0xe9, 0x24, 0xf8, 0x26, 0xf7, 0xe4,
+ 0x43, 0x9f, 0x32, 0xde, 0xa5, 0xe7, 0x12, 0xf6, 0xcc, 0xad, 0x8a, 0xe5, 0x3d, 0x7b, 0xfd, 0xb6,
+ 0xde, 0x68, 0x53, 0x3c, 0x7a, 0xe1, 0x7e, 0xbf, 0xae, 0xf9, 0x16, 0xfd, 0x32, 0x3e, 0xfc, 0xf7,
+ 0x19, 0x90, 0x0f, 0x43, 0xee, 0x96, 0xf0, 0xc8, 0xe8, 0xc4, 0xe7, 0xe9, 0x6b, 0x9c, 0x0f, 0x9b,
+ 0x04, 0x73, 0x6d, 0xd3, 0x40, 0x0e, 0xac, 0x14, 0x2b, 0x7c, 0x43, 0x2c, 0xc0, 0x3b, 0x2a, 0xbc,
+ 0xe2, 0x17, 0xbe, 0x51, 0x29, 0x93, 0x2a, 0x0c, 0x2e, 0x50, 0xa7, 0x69, 0x62, 0x47, 0xf9, 0x73,
+ 0x76, 0x77, 0x26, 0x6c, 0xa7, 0x32, 0xd8, 0x0a, 0x0b, 0x21, 0x33, 0x99, 0x0b, 0x79, 0x1d, 0x80,
+ 0xdb, 0x28, 0x3b, 0x8c, 0x1f, 0x79, 0x1e, 0xed, 0x7e, 0x6e, 0x5a, 0xa6, 0xd8, 0x78, 0x12, 0x33,
+ 0xb2, 0x06, 0xa3, 0xb3, 0xb6, 0x61, 0x2e, 0x9b, 0xdc, 0xf5, 0x12, 0x2b, 0x28, 0x6c, 0xef, 0xf0,
+ 0xc4, 0x4c, 0xc9, 0xa6, 0x54, 0x2e, 0xad, 0x9a, 0x04, 0x63, 0xf5, 0xef, 0xf4, 0x42, 0x9e, 0x75,
+ 0xfb, 0xf1, 0xf8, 0xdd, 0xcf, 0xf8, 0x2d, 0xc1, 0xe8, 0x1d, 0xdb, 0x59, 0x33, 0xad, 0x95, 0xc0,
+ 0x2b, 0x5e, 0xec, 0x4d, 0xd1, 0x93, 0x67, 0x9d, 0xe3, 0x6a, 0x81, 0x03, 0xbd, 0x96, 0x20, 0xdf,
+ 0x66, 0x04, 0x3f, 0x0f, 0xc0, 0xdf, 0xba, 0x23, 0x4d, 0x7f, 0x18, 0xac, 0x82, 0xbf, 0x84, 0x47,
+ 0x47, 0x7b, 0x39, 0x58, 0x45, 0x48, 0xcc, 0x36, 0xe1, 0xdc, 0x17, 0x62, 0x00, 0xfd, 0xee, 0x71,
+ 0x13, 0x8e, 0xbe, 0x10, 0xb2, 0x11, 0xc0, 0xbd, 0x22, 0x16, 0x00, 0xa4, 0xfb, 0x25, 0x88, 0x09,
+ 0x22, 0x32, 0x39, 0x88, 0xf0, 0x70, 0x29, 0xd7, 0x4b, 0x9a, 0xc4, 0x83, 0x3c, 0x1b, 0xbb, 0x00,
+ 0x27, 0x11, 0x6e, 0x1d, 0xef, 0xbf, 0x43, 0x07, 0xaa, 0xa1, 0xed, 0x1c, 0xa8, 0xd4, 0xcf, 0x65,
+ 0x61, 0xa0, 0xda, 0x5e, 0x72, 0x37, 0x5c, 0x8f, 0x36, 0x8f, 0xb8, 0x1a, 0xfb, 0xdb, 0xab, 0x7c,
+ 0xea, 0xf6, 0xea, 0x51, 0x5f, 0x28, 0xd2, 0xb9, 0x63, 0x60, 0xd2, 0xf9, 0xe2, 0xf8, 0x9b, 0x59,
+ 0x18, 0xe5, 0x17, 0x67, 0x65, 0xd3, 0xad, 0x1f, 0x80, 0x33, 0xff, 0xe1, 0x4b, 0x65, 0x7f, 0x97,
+ 0xcd, 0x3b, 0x78, 0x22, 0xa1, 0x7e, 0x3a, 0x0b, 0x83, 0xa5, 0xb6, 0xb7, 0x5a, 0xf2, 0x50, 0xb7,
+ 0xee, 0xcb, 0xfd, 0xc9, 0x6f, 0x67, 0xe0, 0x04, 0x6b, 0xc8, 0xa2, 0xbd, 0x46, 0xad, 0x03, 0x38,
+ 0x78, 0x94, 0x0f, 0x10, 0xb3, 0x7b, 0x3c, 0x40, 0xf4, 0x65, 0x99, 0xdb, 0x9d, 0x2c, 0xf1, 0xb8,
+ 0x5c, 0xb3, 0x1b, 0xf4, 0x68, 0x7f, 0xc6, 0x01, 0x1e, 0x97, 0xfb, 0x02, 0x39, 0x80, 0xeb, 0x99,
+ 0xf7, 0x96, 0x40, 0x0e, 0xe0, 0x6c, 0xe9, 0xbd, 0x21, 0x90, 0xaf, 0x65, 0x60, 0x60, 0xdc, 0xf6,
+ 0x8e, 0xf8, 0xc0, 0x17, 0x5f, 0x71, 0xb4, 0xd5, 0xdc, 0xff, 0x8a, 0xa3, 0xad, 0x9b, 0xea, 0x8f,
+ 0x64, 0xe1, 0x94, 0x88, 0x0d, 0x2e, 0xce, 0x1f, 0x8e, 0xa7, 0x63, 0x31, 0xd8, 0x92, 0xa2, 0x39,
+ 0x9e, 0x87, 0x84, 0x68, 0x7e, 0x36, 0x07, 0xa7, 0x30, 0x94, 0x29, 0xdb, 0x96, 0xbd, 0x07, 0x6c,
+ 0x11, 0x52, 0x8f, 0x5e, 0x82, 0xce, 0xa6, 0x5c, 0x82, 0xfe, 0xc5, 0x66, 0xf1, 0xd9, 0x15, 0xd3,
+ 0x5b, 0x6d, 0x2f, 0x5d, 0xa9, 0xdb, 0xcd, 0xab, 0x2b, 0x8e, 0x7e, 0xd7, 0xe4, 0xd7, 0x7f, 0x7a,
+ 0xe3, 0x6a, 0x90, 0x66, 0x43, 0x6f, 0x99, 0x22, 0x01, 0x47, 0x15, 0xf7, 0x3a, 0x8c, 0xab, 0x7f,
+ 0x7d, 0xea, 0x02, 0xbc, 0x6a, 0x9b, 0x96, 0xf0, 0x29, 0xe4, 0x86, 0x6e, 0x95, 0xed, 0x0f, 0xdf,
+ 0xb4, 0x4d, 0xab, 0x16, 0x77, 0x2c, 0xdc, 0x6d, 0x7d, 0x21, 0x6b, 0x4d, 0xaa, 0x46, 0xfd, 0xc7,
+ 0x19, 0x78, 0x30, 0xaa, 0xc5, 0xef, 0x05, 0xdb, 0xf1, 0x47, 0xb3, 0xf0, 0xc0, 0x0d, 0x14, 0x4e,
+ 0xe0, 0xc8, 0x71, 0x3c, 0x6f, 0x89, 0xc1, 0x99, 0x22, 0x9b, 0x63, 0x8b, 0xb2, 0xb3, 0x6c, 0x8e,
+ 0x27, 0x75, 0x21, 0x9b, 0xdf, 0xcd, 0xc0, 0xc9, 0xf9, 0x4a, 0x79, 0xe2, 0x3d, 0x32, 0xa2, 0x92,
+ 0xdf, 0x73, 0xc4, 0x0d, 0xce, 0xc4, 0xf7, 0x1c, 0x71, 0xd3, 0x93, 0x7d, 0x4f, 0xb5, 0x34, 0x3b,
+ 0xf3, 0x5e, 0xd2, 0xb7, 0xc8, 0xf7, 0xbc, 0x07, 0xf4, 0x2d, 0xf2, 0x3d, 0x47, 0x5c, 0xdf, 0xfe,
+ 0x5e, 0x01, 0x06, 0x6f, 0xb6, 0x97, 0xa8, 0x70, 0x09, 0xb9, 0xaf, 0xcf, 0x5b, 0xaf, 0xc1, 0xa0,
+ 0x10, 0x03, 0xde, 0x55, 0x48, 0x21, 0xeb, 0x44, 0x08, 0x12, 0x1e, 0x15, 0x48, 0x26, 0x22, 0xe7,
+ 0x20, 0x7f, 0x9b, 0x3a, 0x4b, 0xf2, 0x6b, 0xce, 0xbb, 0xd4, 0x59, 0xd2, 0x10, 0x4a, 0x66, 0x42,
+ 0x47, 0xf5, 0xd2, 0x42, 0x05, 0xd3, 0x97, 0x88, 0x6b, 0x12, 0xcc, 0xc7, 0x12, 0x78, 0x9b, 0xe9,
+ 0x2d, 0x93, 0x27, 0x3e, 0x91, 0x5f, 0x92, 0xc7, 0x4b, 0x92, 0x39, 0x18, 0x93, 0xdd, 0x8d, 0x78,
+ 0xee, 0x8e, 0xfe, 0x14, 0x76, 0x69, 0x59, 0x3b, 0x92, 0x45, 0xc9, 0xcb, 0x30, 0xe4, 0x03, 0xd1,
+ 0x71, 0x6a, 0x20, 0x0c, 0x18, 0x1f, 0xb0, 0x8a, 0x25, 0x06, 0x8a, 0x14, 0x90, 0x19, 0xe0, 0xe1,
+ 0x3f, 0xa4, 0x30, 0x88, 0x39, 0xa2, 0x45, 0x0a, 0x90, 0x67, 0x90, 0x01, 0x3e, 0xae, 0x40, 0x17,
+ 0x91, 0x41, 0x7c, 0xea, 0x88, 0x8e, 0xf0, 0x8e, 0x80, 0xf3, 0x07, 0xad, 0x11, 0x32, 0x32, 0x0f,
+ 0x10, 0x5e, 0xe5, 0x8b, 0xb0, 0x01, 0xbb, 0x76, 0x32, 0x90, 0x58, 0xc8, 0x97, 0x70, 0xc3, 0x7b,
+ 0xb9, 0x84, 0x53, 0x7f, 0x3f, 0x0b, 0x83, 0xa5, 0x56, 0x2b, 0x18, 0x0a, 0x4f, 0x42, 0xa1, 0xd4,
+ 0x6a, 0xdd, 0xd2, 0x2a, 0x72, 0x00, 0x71, 0xbd, 0xd5, 0xaa, 0xb5, 0x1d, 0x53, 0xf6, 0xc4, 0xe4,
+ 0x44, 0x64, 0x02, 0x86, 0x4b, 0xad, 0xd6, 0x42, 0x7b, 0xa9, 0x61, 0xd6, 0xa5, 0x7c, 0x44, 0x3c,
+ 0x63, 0x5b, 0xab, 0x55, 0x6b, 0x21, 0x26, 0x9e, 0x94, 0x2a, 0x5a, 0x86, 0xbc, 0x81, 0xc1, 0x76,
+ 0x44, 0x3a, 0x1c, 0x9e, 0x70, 0x43, 0x0d, 0x42, 0x87, 0x87, 0x6d, 0xbb, 0x12, 0x10, 0xf1, 0x10,
+ 0xeb, 0xe7, 0xfc, 0x40, 0xf5, 0xac, 0xa2, 0x44, 0xda, 0x9b, 0x90, 0x25, 0xf9, 0x20, 0xf4, 0x95,
+ 0x5a, 0x2d, 0xe9, 0x96, 0x07, 0x5d, 0x79, 0x58, 0xa9, 0x78, 0xc6, 0x31, 0x41, 0x76, 0xf6, 0x45,
+ 0x18, 0x89, 0x56, 0xb6, 0xab, 0x10, 0xed, 0xdf, 0xce, 0xe0, 0x07, 0x1d, 0x71, 0x4f, 0xe2, 0xa7,
+ 0x21, 0x57, 0x6a, 0xb5, 0xc4, 0x7c, 0x74, 0x32, 0xa5, 0x3f, 0xe2, 0x0f, 0x8f, 0x4b, 0xad, 0x96,
+ 0xff, 0xe9, 0x47, 0xfc, 0x49, 0xc2, 0x9e, 0x3e, 0xfd, 0x6b, 0xfc, 0xd3, 0x8f, 0xf6, 0x73, 0x01,
+ 0xf5, 0x57, 0x72, 0x70, 0xa2, 0xd4, 0x6a, 0x1d, 0x87, 0x76, 0x3f, 0xa8, 0xe7, 0xcd, 0x4f, 0x01,
+ 0x48, 0xd3, 0x63, 0x5f, 0xf0, 0x60, 0x6a, 0x50, 0x9a, 0x1a, 0x95, 0x8c, 0x26, 0x11, 0xf9, 0xea,
+ 0xd7, 0xbf, 0x2b, 0xf5, 0xfb, 0x74, 0x0e, 0xa7, 0xe2, 0xa3, 0x1e, 0xaa, 0xe9, 0xdd, 0xd2, 0x6d,
+ 0xa2, 0x0f, 0x0a, 0xbb, 0xea, 0x83, 0xdf, 0x8a, 0x0c, 0x1e, 0x0c, 0x15, 0x7e, 0xdc, 0x0b, 0xbd,
+ 0xfb, 0x32, 0x8b, 0x47, 0x64, 0x61, 0x8a, 0xf8, 0x31, 0x7e, 0xfa, 0x22, 0x11, 0xcd, 0xa8, 0xce,
+ 0x50, 0x35, 0xd3, 0xd0, 0x62, 0xb4, 0x7e, 0x1f, 0xf6, 0xed, 0xaa, 0x0f, 0x37, 0xb3, 0xf8, 0x62,
+ 0x39, 0x88, 0x86, 0xb4, 0xff, 0xdd, 0xc5, 0x55, 0x00, 0x7e, 0xdf, 0x1f, 0x38, 0x13, 0x0f, 0xf3,
+ 0xc0, 0x27, 0x3c, 0xab, 0x91, 0x08, 0x7c, 0x12, 0x92, 0x04, 0x7e, 0x49, 0xb9, 0x54, 0xbf, 0xa4,
+ 0xcb, 0xd0, 0xaf, 0xe9, 0xeb, 0xaf, 0xb5, 0xa9, 0xb3, 0x21, 0xcc, 0x19, 0x1e, 0x6c, 0x50, 0x5f,
+ 0xaf, 0x7d, 0x8a, 0x01, 0xb5, 0x00, 0x4d, 0xd4, 0xe0, 0xc9, 0xbb, 0xe4, 0x87, 0xc1, 0x4f, 0xa6,
+ 0x83, 0x87, 0xee, 0x7b, 0x51, 0x74, 0xf2, 0x02, 0xe4, 0x4a, 0x77, 0xaa, 0x42, 0xb2, 0x41, 0xd7,
+ 0x96, 0xee, 0x54, 0x85, 0xbc, 0x3a, 0x96, 0xbd, 0x53, 0x55, 0x3f, 0x9d, 0x05, 0x92, 0xa4, 0x24,
+ 0xcf, 0xc2, 0x00, 0x42, 0x57, 0x98, 0xce, 0xc8, 0xe9, 0x30, 0xd7, 0xdd, 0x9a, 0x83, 0xd0, 0x88,
+ 0x71, 0xe7, 0x93, 0x92, 0xe7, 0x31, 0xe1, 0xb0, 0x48, 0xc8, 0x16, 0x49, 0x87, 0xb9, 0xee, 0xfa,
+ 0x29, 0x7a, 0x63, 0xf9, 0x86, 0x05, 0x31, 0xda, 0x85, 0x77, 0xaa, 0xd3, 0xb6, 0xeb, 0x09, 0x51,
+ 0x73, 0xbb, 0x70, 0xdd, 0xc5, 0x3c, 0xac, 0x11, 0xbb, 0x90, 0x93, 0x61, 0x2e, 0xa9, 0x3b, 0x55,
+ 0xfe, 0x38, 0xc4, 0xd0, 0xec, 0x86, 0x6f, 0x50, 0xf2, 0x5c, 0x52, 0xeb, 0x6e, 0x8d, 0x3f, 0x2c,
+ 0x31, 0x30, 0xd3, 0x71, 0x24, 0x97, 0x54, 0xa4, 0x94, 0xfa, 0xf9, 0x7e, 0x18, 0x2d, 0xeb, 0x9e,
+ 0xbe, 0xa4, 0xbb, 0x54, 0xda, 0x4d, 0x9f, 0xf0, 0x61, 0xfe, 0xe7, 0x48, 0x72, 0x30, 0x96, 0x52,
+ 0xbe, 0x26, 0x5e, 0x80, 0x7c, 0x38, 0xe4, 0x1b, 0x64, 0xfa, 0x94, 0x53, 0x87, 0x2d, 0xd5, 0x5a,
+ 0x02, 0xac, 0x25, 0x08, 0xc9, 0x13, 0x30, 0xe8, 0xc3, 0xd8, 0x06, 0x20, 0x17, 0xea, 0x8c, 0xb1,
+ 0xc4, 0xec, 0x7f, 0x4d, 0x46, 0x93, 0xe7, 0x61, 0xc8, 0xff, 0x29, 0x99, 0xd6, 0x3c, 0x0f, 0xda,
+ 0x52, 0x62, 0xf7, 0x24, 0x93, 0xca, 0x45, 0x71, 0x7e, 0xeb, 0x8d, 0x14, 0x8d, 0xa5, 0x1a, 0x8b,
+ 0x90, 0x92, 0x4f, 0xc1, 0x88, 0xff, 0x5b, 0x6c, 0x18, 0x78, 0x56, 0xb6, 0x27, 0x82, 0x44, 0xca,
+ 0x31, 0xb1, 0x5e, 0x89, 0x92, 0xf3, 0xad, 0xc3, 0x43, 0x7e, 0xf6, 0x2c, 0x63, 0x29, 0xb9, 0x73,
+ 0x88, 0x55, 0x40, 0x2a, 0x30, 0xe6, 0x43, 0x42, 0x0d, 0xed, 0x0b, 0x77, 0x8c, 0xc6, 0x52, 0x2d,
+ 0x55, 0x49, 0x93, 0xa5, 0x48, 0x03, 0xce, 0x45, 0x80, 0x86, 0xbb, 0x6a, 0x2e, 0x7b, 0x62, 0xbb,
+ 0x27, 0x22, 0xff, 0x8a, 0x74, 0x89, 0x01, 0x57, 0x4e, 0xe3, 0xe7, 0x3d, 0x8d, 0xe6, 0x64, 0xea,
+ 0xca, 0x8d, 0x54, 0xe1, 0x94, 0x8f, 0xbf, 0x31, 0xb1, 0xb0, 0xe0, 0xd8, 0x6f, 0xd2, 0xba, 0x57,
+ 0x29, 0x8b, 0xed, 0x32, 0x46, 0x84, 0x33, 0x96, 0x6a, 0x2b, 0xf5, 0x16, 0x53, 0x0a, 0x86, 0x8b,
+ 0x32, 0x4f, 0x2d, 0x4c, 0x6e, 0xc3, 0x03, 0x12, 0x5c, 0x4a, 0xca, 0x0c, 0xe1, 0x7e, 0x5e, 0x70,
+ 0x4d, 0xcf, 0xcb, 0x9c, 0x5e, 0x9c, 0xbc, 0x08, 0xc3, 0x3e, 0x82, 0xdf, 0xdd, 0x0d, 0xe2, 0xdd,
+ 0x1d, 0x0e, 0x49, 0x63, 0xa9, 0x16, 0x7f, 0xc3, 0x18, 0x25, 0x96, 0x35, 0x0a, 0xf3, 0xd8, 0x0f,
+ 0x45, 0x34, 0xca, 0xdb, 0x68, 0xa5, 0x2a, 0x23, 0xe6, 0xb6, 0x7f, 0x39, 0xd4, 0xa8, 0x79, 0xc7,
+ 0x5c, 0x31, 0xf9, 0x4e, 0xda, 0x7f, 0xb6, 0xb8, 0x54, 0xb3, 0x11, 0x98, 0xa6, 0x1f, 0x9c, 0xfc,
+ 0x6c, 0x09, 0x4e, 0xa6, 0xe8, 0xd8, 0xae, 0x76, 0x8c, 0x9f, 0xcb, 0x86, 0x8d, 0x38, 0xe2, 0xdb,
+ 0xc6, 0x71, 0xe8, 0xf7, 0xbf, 0x44, 0x18, 0x0f, 0x4a, 0xa7, 0xa1, 0x19, 0xe7, 0xe1, 0xe3, 0x23,
+ 0xe2, 0x38, 0xe2, 0x5b, 0xc9, 0x83, 0x10, 0xc7, 0xdb, 0x99, 0x50, 0x1c, 0x47, 0x7c, 0x7b, 0xf9,
+ 0xbb, 0xb9, 0x70, 0x4e, 0x3a, 0xde, 0x63, 0x1e, 0x94, 0x99, 0x1c, 0x7a, 0x9f, 0x16, 0x76, 0xf1,
+ 0x7c, 0x50, 0x56, 0xcd, 0xbe, 0x3d, 0xaa, 0xe6, 0x1f, 0x26, 0xfb, 0x93, 0x9b, 0x9e, 0x47, 0xb2,
+ 0x3f, 0x0f, 0x60, 0xb0, 0x92, 0x6b, 0xe1, 0x3a, 0xc6, 0x6d, 0xf4, 0x5e, 0x29, 0xb0, 0xde, 0x92,
+ 0x30, 0xd1, 0xa3, 0x24, 0xe4, 0xe3, 0x70, 0x26, 0x02, 0x58, 0xd0, 0x1d, 0xbd, 0x49, 0xbd, 0x30,
+ 0xcf, 0x1f, 0x86, 0x4a, 0xf2, 0x4b, 0xd7, 0x5a, 0x01, 0x5a, 0xce, 0x1d, 0xd8, 0x81, 0x83, 0xa4,
+ 0x1c, 0x7d, 0xbb, 0x70, 0x4d, 0xfe, 0xa3, 0x3c, 0x28, 0x81, 0x81, 0x18, 0x3c, 0xc2, 0x39, 0xc4,
+ 0xc9, 0xf8, 0x5d, 0xd1, 0xb9, 0x26, 0x8c, 0x85, 0xc2, 0xa8, 0xb6, 0x9b, 0x4d, 0x1d, 0x3b, 0x98,
+ 0x19, 0xa0, 0xc5, 0x38, 0xb3, 0x90, 0x90, 0xdb, 0x9c, 0x67, 0x85, 0xcd, 0x49, 0xc2, 0x47, 0x4e,
+ 0x35, 0x97, 0xb3, 0xd0, 0x92, 0x5c, 0xc9, 0x17, 0x32, 0x70, 0xaa, 0xb4, 0xbc, 0x4c, 0xeb, 0x1e,
+ 0x35, 0xe6, 0x97, 0x98, 0xf1, 0x35, 0x61, 0xb7, 0x2d, 0xcf, 0xb7, 0x77, 0x5f, 0xe8, 0x5c, 0x1d,
+ 0xef, 0xa4, 0x2b, 0x69, 0x85, 0x79, 0x4b, 0x82, 0xa0, 0x01, 0xba, 0x20, 0xa9, 0xd9, 0x48, 0x53,
+ 0xab, 0x23, 0x91, 0x96, 0x5a, 0xef, 0xd9, 0x1b, 0xf0, 0x60, 0x47, 0x96, 0xdb, 0x19, 0x3b, 0xbd,
+ 0xb2, 0xb1, 0xf3, 0x4f, 0x33, 0xa1, 0xba, 0xc7, 0x84, 0x44, 0xae, 0x00, 0x84, 0x20, 0xb1, 0xfd,
+ 0x19, 0xd9, 0xda, 0x2c, 0x42, 0x28, 0x34, 0x4d, 0xa2, 0x20, 0xf3, 0x50, 0x10, 0x62, 0xe1, 0x99,
+ 0x5b, 0x3f, 0xb0, 0x4d, 0x2f, 0x5c, 0x91, 0xe5, 0x80, 0x5b, 0x1b, 0xf1, 0xcd, 0x82, 0xcd, 0xd9,
+ 0xe7, 0x61, 0x70, 0xaf, 0xdf, 0xf5, 0x85, 0x1c, 0x10, 0x79, 0xaf, 0x72, 0x88, 0x86, 0xdc, 0xbb,
+ 0x62, 0xb0, 0xec, 0x2d, 0xf3, 0xca, 0x25, 0xe8, 0x67, 0x9f, 0x80, 0xb9, 0x0c, 0xa4, 0xd8, 0xa5,
+ 0x6d, 0x01, 0xd3, 0x02, 0x6c, 0x18, 0x38, 0xa8, 0x2f, 0x3d, 0x70, 0x90, 0xfa, 0x83, 0x39, 0x38,
+ 0x2d, 0x77, 0x48, 0x99, 0x62, 0x38, 0xf4, 0xe3, 0x4e, 0x79, 0x07, 0x3b, 0x45, 0x85, 0x02, 0x37,
+ 0x51, 0x45, 0x5c, 0x7a, 0x7e, 0x7c, 0x80, 0x10, 0x4d, 0x60, 0xd4, 0x7f, 0x95, 0x85, 0xe1, 0x05,
+ 0xdb, 0xf5, 0x56, 0x1c, 0xea, 0x2e, 0xe8, 0x8e, 0x7b, 0x1f, 0x77, 0xc7, 0x87, 0x60, 0x18, 0x43,
+ 0xbf, 0x34, 0xa9, 0xc5, 0xc3, 0xa3, 0xf4, 0x4a, 0x89, 0x24, 0x7c, 0x84, 0xc8, 0x19, 0x14, 0x21,
+ 0x64, 0xda, 0xcf, 0xed, 0x0b, 0x29, 0x20, 0x0f, 0x37, 0x2e, 0x38, 0x5c, 0xfd, 0xa9, 0x1c, 0x0c,
+ 0xf9, 0x52, 0x1e, 0x37, 0x8f, 0xea, 0x7d, 0xc0, 0xe1, 0x0a, 0xf9, 0x2a, 0xc0, 0x82, 0xed, 0x78,
+ 0x7a, 0x63, 0x2e, 0xd4, 0x7c, 0x3c, 0x48, 0x6b, 0x21, 0x94, 0x97, 0x91, 0x48, 0x70, 0xfd, 0x0a,
+ 0x8d, 0x37, 0x3e, 0x31, 0xf1, 0xf5, 0x2b, 0x80, 0x6a, 0x12, 0x85, 0xfa, 0x1b, 0x59, 0x38, 0xe1,
+ 0x77, 0xd2, 0xe4, 0x3d, 0x5a, 0x6f, 0xdf, 0xcf, 0x73, 0x53, 0x54, 0xda, 0xbd, 0xdb, 0x4a, 0x5b,
+ 0xfd, 0x8f, 0xd2, 0x44, 0x32, 0xd1, 0xb0, 0x8f, 0x27, 0x92, 0xbf, 0x0a, 0x1d, 0x57, 0xbf, 0x3b,
+ 0x07, 0xa7, 0x7c, 0xa9, 0x4f, 0xb5, 0x2d, 0xdc, 0x82, 0x4e, 0xe8, 0x8d, 0xc6, 0xfd, 0xbc, 0xe7,
+ 0x1b, 0xf4, 0x05, 0x31, 0x2f, 0x62, 0xa9, 0x89, 0xfc, 0x6d, 0xcb, 0x02, 0x5c, 0xb3, 0x4d, 0x43,
+ 0x93, 0x89, 0xc8, 0xcb, 0x30, 0xe4, 0xff, 0x2c, 0x39, 0x2b, 0xfe, 0x46, 0x0f, 0x0f, 0x94, 0x83,
+ 0x42, 0xba, 0x13, 0x79, 0x32, 0x1e, 0x29, 0xa0, 0xfe, 0x9b, 0x02, 0x9c, 0xbd, 0x63, 0x5a, 0x86,
+ 0xbd, 0xee, 0xfa, 0xe9, 0xff, 0x8e, 0xfc, 0x81, 0xca, 0x61, 0xa7, 0xfd, 0x7b, 0x0d, 0x1e, 0x88,
+ 0x8b, 0xd4, 0x09, 0x82, 0x32, 0x8b, 0xde, 0x59, 0xe7, 0x04, 0x35, 0x3f, 0x11, 0xa0, 0xb8, 0x95,
+ 0xd1, 0xd2, 0x4b, 0xc6, 0x33, 0x09, 0xf6, 0xed, 0x24, 0x93, 0xe0, 0xe3, 0x50, 0x28, 0xdb, 0x4d,
+ 0xdd, 0xf4, 0x83, 0x87, 0xe0, 0x28, 0x0e, 0xea, 0x45, 0x8c, 0x26, 0x28, 0x18, 0x7f, 0x51, 0x31,
+ 0x76, 0xd9, 0x40, 0xc8, 0xdf, 0x2f, 0xc0, 0xac, 0x34, 0x4d, 0x26, 0x22, 0x36, 0x0c, 0x8b, 0xea,
+ 0xc4, 0x1d, 0x0a, 0xe0, 0xe6, 0xe9, 0x19, 0x5f, 0x46, 0x9d, 0xd5, 0xea, 0x4a, 0xa4, 0x1c, 0xdf,
+ 0x46, 0xf1, 0x04, 0x87, 0xe2, 0x63, 0xf8, 0x6d, 0x8a, 0x16, 0xe5, 0x2f, 0x09, 0x01, 0x27, 0x99,
+ 0xc1, 0xa4, 0x10, 0x70, 0x96, 0x91, 0x89, 0xc8, 0x24, 0x8c, 0x61, 0xe8, 0xdc, 0x60, 0x2b, 0xc5,
+ 0x54, 0x62, 0x08, 0x8d, 0x4a, 0x3c, 0x9a, 0xe7, 0xd1, 0x76, 0xd9, 0xc7, 0xd5, 0xea, 0x02, 0xad,
+ 0x25, 0x4b, 0x9c, 0x7d, 0x05, 0x48, 0xb2, 0xcd, 0xbb, 0x3a, 0x9c, 0xff, 0x7c, 0x36, 0xdc, 0xd7,
+ 0x1d, 0x75, 0xf7, 0x8a, 0x83, 0x38, 0x8e, 0xfe, 0xc5, 0x0c, 0x8c, 0x25, 0x42, 0x31, 0x93, 0xa7,
+ 0x01, 0x38, 0x44, 0x0a, 0x79, 0x87, 0x31, 0x24, 0xc2, 0xf0, 0xcc, 0x62, 0x29, 0x09, 0xc9, 0xc8,
+ 0x55, 0xe8, 0xe7, 0xbf, 0x44, 0x98, 0x9a, 0x64, 0x91, 0x76, 0xdb, 0x34, 0xb4, 0x80, 0x28, 0xac,
+ 0x05, 0x6f, 0x79, 0x72, 0xa9, 0x45, 0xbc, 0x8d, 0x56, 0x50, 0x0b, 0x23, 0x63, 0x1d, 0x38, 0x14,
+ 0x34, 0xb8, 0x64, 0x1c, 0x56, 0xd7, 0x15, 0x44, 0x54, 0xeb, 0xdc, 0x76, 0x51, 0xad, 0x63, 0x73,
+ 0x93, 0x08, 0x63, 0x7d, 0x70, 0x4f, 0x43, 0xbe, 0x98, 0x85, 0x13, 0x41, 0xad, 0x87, 0x78, 0xa1,
+ 0xf0, 0x2e, 0x12, 0xc9, 0x17, 0x32, 0xa0, 0x8c, 0x9b, 0x8d, 0x86, 0x69, 0xad, 0x54, 0xac, 0x65,
+ 0xdb, 0x69, 0xe2, 0xe4, 0x71, 0x78, 0xc7, 0x9d, 0xea, 0xf7, 0x65, 0x60, 0x4c, 0x34, 0x68, 0x42,
+ 0x77, 0x8c, 0xc3, 0x3b, 0x4b, 0x8a, 0xb7, 0xe4, 0xf0, 0xf4, 0x45, 0xfd, 0x4a, 0x16, 0x60, 0xc6,
+ 0xae, 0xaf, 0x1d, 0xf1, 0xb7, 0x81, 0x1f, 0x86, 0x02, 0x8f, 0x15, 0x24, 0x34, 0x76, 0xec, 0x0a,
+ 0x7f, 0xf2, 0xc9, 0x3e, 0x8d, 0x23, 0xc6, 0x47, 0xc5, 0x09, 0x6d, 0x81, 0xc7, 0x1a, 0x52, 0x32,
+ 0x9a, 0x28, 0xc2, 0x2a, 0x65, 0x74, 0xc2, 0xaa, 0x09, 0x2a, 0x65, 0xb0, 0x68, 0xa5, 0x5b, 0x9b,
+ 0xc5, 0x7c, 0xc3, 0xae, 0xaf, 0x69, 0x48, 0xaf, 0xfe, 0x65, 0x86, 0xcb, 0xee, 0x88, 0xbf, 0x8f,
+ 0xf3, 0x3f, 0x3f, 0xbf, 0xcb, 0xcf, 0xff, 0xfe, 0x0c, 0x9c, 0xd2, 0x68, 0xdd, 0xbe, 0x4b, 0x9d,
+ 0x8d, 0x09, 0xdb, 0xa0, 0x37, 0xa8, 0x45, 0x9d, 0xc3, 0x1a, 0x51, 0x7f, 0x1b, 0xd3, 0x00, 0x84,
+ 0x8d, 0xb9, 0xe5, 0x52, 0xe3, 0xe8, 0xa4, 0x68, 0x50, 0xff, 0x56, 0x1f, 0x28, 0xa9, 0x16, 0xe2,
+ 0x91, 0xb5, 0x8a, 0x3a, 0x9a, 0xfd, 0xf9, 0x83, 0x32, 0xfb, 0x7b, 0x77, 0x67, 0xf6, 0x17, 0x76,
+ 0x6b, 0xf6, 0xf7, 0xed, 0xc4, 0xec, 0x6f, 0xc6, 0xcd, 0xfe, 0x7e, 0x34, 0xfb, 0x9f, 0xee, 0x6a,
+ 0xf6, 0x4f, 0x5a, 0xc6, 0x1e, 0x8d, 0xfe, 0x23, 0x9b, 0x3e, 0x74, 0x2f, 0xbb, 0x95, 0x4b, 0x6c,
+ 0x52, 0xac, 0xdb, 0x8e, 0x41, 0x0d, 0xb1, 0x49, 0xc1, 0x13, 0x72, 0x47, 0xc0, 0xb4, 0x00, 0x9b,
+ 0xc8, 0xc5, 0x3a, 0xbc, 0x93, 0x5c, 0xac, 0x07, 0xb0, 0x8d, 0xf9, 0x5c, 0x16, 0xc6, 0x26, 0xa8,
+ 0xe3, 0xf1, 0x60, 0x84, 0x07, 0xe1, 0x66, 0x54, 0x82, 0x13, 0x12, 0x43, 0xb4, 0xc8, 0xb3, 0xa1,
+ 0xeb, 0x54, 0x9d, 0x3a, 0x5e, 0xdc, 0xf3, 0x2a, 0x4e, 0xcf, 0xaa, 0xf7, 0xf3, 0x21, 0x89, 0xb1,
+ 0x1b, 0x54, 0xef, 0xc3, 0xb9, 0x20, 0x4d, 0xf1, 0x4b, 0x0b, 0xe8, 0xa5, 0x14, 0x47, 0xf9, 0xdd,
+ 0xa7, 0x38, 0x52, 0x7f, 0x21, 0x03, 0x17, 0x35, 0x6a, 0xd1, 0x75, 0x7d, 0xa9, 0x41, 0xa5, 0x66,
+ 0x89, 0x95, 0x81, 0xcd, 0x1a, 0xa6, 0xdb, 0xd4, 0xbd, 0xfa, 0xea, 0xbe, 0x64, 0x34, 0x05, 0x43,
+ 0xf2, 0xfc, 0xb5, 0x8b, 0xb9, 0x2d, 0x52, 0x4e, 0xfd, 0xef, 0x39, 0xe8, 0x1b, 0xb7, 0xbd, 0x57,
+ 0xed, 0x7d, 0xe6, 0xdc, 0x0a, 0xa7, 0xfc, 0xec, 0x2e, 0xce, 0x45, 0x3e, 0x88, 0x95, 0x4b, 0x61,
+ 0xc8, 0xd1, 0x2d, 0x6f, 0xc9, 0x4e, 0x84, 0x6b, 0xf7, 0xc9, 0x76, 0x99, 0x6d, 0xeb, 0x59, 0x18,
+ 0xc0, 0x38, 0x16, 0xd2, 0xc9, 0x25, 0x3a, 0xbd, 0x7a, 0x0c, 0x18, 0xaf, 0x23, 0x24, 0x25, 0x1f,
+ 0x8f, 0x44, 0x4f, 0x2c, 0xec, 0x3f, 0x3b, 0x97, 0x1c, 0x48, 0xf1, 0xe0, 0x92, 0x60, 0x4d, 0xc0,
+ 0xf0, 0xb8, 0xed, 0x49, 0xbe, 0x92, 0x03, 0xe1, 0x2b, 0x39, 0x26, 0xc4, 0x74, 0x47, 0xc9, 0x68,
+ 0x19, 0xf5, 0x5b, 0x79, 0x18, 0xf2, 0x7f, 0x1e, 0x92, 0x1a, 0x3c, 0x09, 0x85, 0x69, 0x5b, 0x8a,
+ 0xcb, 0x8e, 0xfe, 0x95, 0xab, 0xb6, 0x1b, 0x73, 0x1c, 0x15, 0x44, 0xe4, 0x69, 0xe8, 0x9f, 0xb3,
+ 0x0d, 0xd9, 0x3b, 0x18, 0x27, 0x06, 0xcb, 0x36, 0x12, 0xaf, 0x2b, 0x03, 0x42, 0x72, 0x11, 0xf2,
+ 0xe8, 0x58, 0x2d, 0x9d, 0x5f, 0xc7, 0x9c, 0xa9, 0x11, 0x2f, 0x29, 0x58, 0x61, 0xb7, 0x0a, 0xd6,
+ 0xb7, 0x57, 0x05, 0xeb, 0x3f, 0x58, 0x05, 0x7b, 0x1d, 0x86, 0xb0, 0x26, 0x3f, 0xad, 0xd3, 0xf6,
+ 0x6b, 0xe4, 0x83, 0x62, 0x19, 0x1b, 0xe6, 0xed, 0x16, 0xc9, 0x9d, 0x70, 0xf5, 0x8a, 0xb0, 0x8a,
+ 0xe9, 0x2e, 0xec, 0x63, 0x67, 0xfc, 0x87, 0x19, 0xe8, 0xbb, 0x65, 0xad, 0x59, 0xf6, 0xfa, 0xfe,
+ 0x34, 0xee, 0x69, 0x18, 0x14, 0x6c, 0xa4, 0x85, 0x02, 0x1f, 0xcc, 0xb6, 0x39, 0xb8, 0x86, 0x9c,
+ 0x34, 0x99, 0x8a, 0xbc, 0x18, 0x14, 0xc2, 0xb7, 0x13, 0xb9, 0x30, 0xb3, 0x81, 0x5f, 0xa8, 0x1e,
+ 0x0d, 0xc6, 0x2e, 0x93, 0x93, 0x73, 0x90, 0x2f, 0xb3, 0xa6, 0x4a, 0xa1, 0x3d, 0x59, 0x53, 0x34,
+ 0x84, 0xaa, 0xbf, 0x93, 0x85, 0x91, 0xd8, 0x19, 0xd6, 0xe3, 0x30, 0x20, 0xce, 0x90, 0x4c, 0x3f,
+ 0x3a, 0x3c, 0xbe, 0xad, 0x08, 0x80, 0x5a, 0x3f, 0xff, 0xb3, 0x62, 0x90, 0x8f, 0x40, 0x9f, 0xed,
+ 0xe2, 0xfa, 0x86, 0xdf, 0x32, 0x12, 0x0e, 0xa1, 0xf9, 0x2a, 0x6b, 0x3b, 0x1f, 0x1c, 0x82, 0x44,
+ 0xd6, 0x48, 0xdb, 0xc5, 0x4f, 0xbb, 0x0e, 0x03, 0xba, 0xeb, 0x52, 0xaf, 0xe6, 0xe9, 0x2b, 0x72,
+ 0xc0, 0xf8, 0x00, 0x28, 0x8f, 0x0e, 0x04, 0x2e, 0xea, 0x2b, 0xe4, 0x15, 0x18, 0xae, 0x3b, 0x14,
+ 0x57, 0x40, 0xbd, 0xc1, 0x5a, 0x29, 0x59, 0xa8, 0x11, 0x84, 0x7c, 0x6d, 0x10, 0x22, 0x2a, 0x06,
+ 0xb9, 0x0d, 0xc3, 0xe2, 0x73, 0xb8, 0x63, 0x33, 0x0e, 0xb4, 0x91, 0x70, 0x45, 0xe2, 0x22, 0xe1,
+ 0xae, 0xcd, 0xc2, 0xbf, 0x5d, 0x26, 0x97, 0xf9, 0x1a, 0x12, 0xa9, 0xfa, 0xf5, 0x0c, 0xb3, 0x9a,
+ 0x18, 0x00, 0x13, 0xad, 0x32, 0x5d, 0x69, 0xee, 0x52, 0x57, 0x9a, 0x61, 0x4a, 0xb4, 0x82, 0xdb,
+ 0x65, 0x76, 0xd2, 0x04, 0x96, 0x5c, 0x81, 0x82, 0x21, 0x1f, 0x20, 0x9d, 0x8e, 0x7e, 0x84, 0x5f,
+ 0x8f, 0x26, 0xa8, 0xc8, 0x25, 0xc8, 0x33, 0xab, 0x38, 0xbe, 0x7b, 0x94, 0x17, 0x5a, 0x0d, 0x29,
+ 0xd4, 0xef, 0xcc, 0xc2, 0x90, 0xf4, 0x35, 0xd7, 0xf6, 0xf5, 0x39, 0x2f, 0xec, 0xac, 0x99, 0xbe,
+ 0xaf, 0x04, 0x6e, 0x2b, 0xfc, 0x26, 0x5f, 0x0f, 0x44, 0xb1, 0xa3, 0x7b, 0x0c, 0x21, 0x98, 0x67,
+ 0xc5, 0x87, 0x16, 0x76, 0xbe, 0x93, 0x62, 0xf4, 0xaf, 0xe6, 0xfb, 0xb3, 0xa3, 0xb9, 0x57, 0xf3,
+ 0xfd, 0xf9, 0xd1, 0x5e, 0x0c, 0xae, 0x83, 0xf1, 0x6c, 0xf9, 0x36, 0xd5, 0x5a, 0x36, 0x57, 0x8e,
+ 0xb8, 0x6b, 0xfa, 0xc1, 0x06, 0x1e, 0x8a, 0xc9, 0xe6, 0x88, 0xfb, 0xa9, 0xbf, 0xa3, 0xb2, 0x39,
+ 0x4e, 0xa1, 0x26, 0x64, 0xf3, 0x47, 0x19, 0x50, 0x52, 0x65, 0x53, 0x3a, 0xa4, 0xeb, 0xf3, 0x83,
+ 0x4b, 0xa4, 0xf6, 0xcd, 0x2c, 0x8c, 0x55, 0x2c, 0x8f, 0xae, 0xf0, 0xcd, 0xd3, 0x11, 0x9f, 0x2a,
+ 0x6e, 0xc2, 0xa0, 0xf4, 0x31, 0xa2, 0xcf, 0x1f, 0x0a, 0xb6, 0xa6, 0x21, 0xaa, 0x03, 0x27, 0xb9,
+ 0xf4, 0x01, 0xe6, 0x5e, 0x8e, 0x09, 0xf9, 0x88, 0xcf, 0x39, 0x47, 0x43, 0xc8, 0x47, 0x7c, 0xf2,
+ 0x7a, 0x97, 0x0a, 0xf9, 0xdf, 0x67, 0xe0, 0x64, 0x4a, 0xe5, 0xe4, 0x22, 0xf4, 0x55, 0xdb, 0x4b,
+ 0x18, 0xd5, 0x27, 0x13, 0x3a, 0x9a, 0xba, 0xed, 0x25, 0x0c, 0xe8, 0xa3, 0xf9, 0x48, 0xb2, 0x88,
+ 0x6f, 0x77, 0xe7, 0x2b, 0xe5, 0x09, 0x21, 0x55, 0x55, 0x7a, 0x85, 0xcc, 0xc0, 0x69, 0x5f, 0x16,
+ 0xbc, 0xef, 0xb5, 0x4d, 0xa3, 0x1e, 0x7b, 0xdf, 0xcb, 0xca, 0x90, 0x4f, 0xc0, 0x40, 0xe9, 0xad,
+ 0xb6, 0x43, 0x91, 0x2f, 0x97, 0xf8, 0xfb, 0x02, 0xbe, 0x3e, 0x22, 0x8d, 0x33, 0x7f, 0xaa, 0xcc,
+ 0x28, 0xe2, 0xbc, 0x43, 0x86, 0xea, 0xe7, 0x33, 0x70, 0xb6, 0x73, 0xeb, 0xc8, 0x07, 0xa1, 0x8f,
+ 0xed, 0x6c, 0x4b, 0xda, 0x9c, 0xf8, 0x74, 0x9e, 0x74, 0xd0, 0x6e, 0xd0, 0x9a, 0xee, 0xc8, 0x86,
+ 0xb7, 0x4f, 0x46, 0x5e, 0x82, 0xc1, 0x8a, 0xeb, 0xb6, 0xa9, 0x53, 0x7d, 0xfa, 0x96, 0x56, 0x11,
+ 0x7b, 0x2a, 0xb4, 0xd9, 0x4d, 0x04, 0xd7, 0xdc, 0xa7, 0x63, 0x71, 0x7b, 0x64, 0x7a, 0xf5, 0x33,
+ 0x19, 0x38, 0xd7, 0xed, 0xab, 0xd8, 0x06, 0x7e, 0x91, 0x5a, 0xba, 0xc5, 0x76, 0xfc, 0x99, 0x70,
+ 0x8b, 0xe2, 0x21, 0x2c, 0xba, 0xc9, 0x08, 0x08, 0x59, 0x21, 0x7e, 0xc4, 0x16, 0xdc, 0xe9, 0xf3,
+ 0xe3, 0x40, 0x84, 0xc5, 0x0a, 0xf9, 0x84, 0xea, 0xef, 0xe8, 0xd0, 0x3b, 0x6f, 0xd1, 0xf9, 0x65,
+ 0xf2, 0x94, 0x94, 0x5d, 0x5e, 0x0c, 0xb4, 0x31, 0x79, 0xc0, 0x20, 0x62, 0xba, 0x47, 0x93, 0x72,
+ 0xd0, 0x5f, 0x97, 0xd3, 0x0c, 0x0b, 0x75, 0x20, 0x72, 0x19, 0x8e, 0x99, 0xee, 0xd1, 0xe4, 0x74,
+ 0xc4, 0xd7, 0xe5, 0xf4, 0xae, 0xa2, 0xb3, 0x23, 0xa5, 0x38, 0xc6, 0x2f, 0x25, 0xa6, 0x81, 0x99,
+ 0xb4, 0x1c, 0xa8, 0x71, 0x9b, 0x20, 0x49, 0x31, 0xdd, 0xa3, 0xa5, 0xe7, 0x4e, 0x1d, 0x92, 0xbd,
+ 0x6b, 0xe2, 0xb7, 0x7a, 0x32, 0x6e, 0xba, 0x47, 0x8b, 0xd0, 0x92, 0xe7, 0x60, 0x50, 0xfc, 0x7e,
+ 0xd5, 0x36, 0xad, 0xf8, 0x03, 0x7e, 0x09, 0x35, 0xdd, 0xa3, 0xc9, 0x94, 0x52, 0xa5, 0x0b, 0x8e,
+ 0x19, 0x24, 0x88, 0x8f, 0x57, 0x8a, 0x38, 0xa9, 0x52, 0xfc, 0x4d, 0x5e, 0x82, 0xe1, 0x20, 0x32,
+ 0xc2, 0x9b, 0xb4, 0xee, 0x89, 0x23, 0x91, 0x07, 0x62, 0x85, 0x39, 0x72, 0xba, 0x47, 0x8b, 0x52,
+ 0x93, 0x4b, 0x50, 0xd0, 0xa8, 0x6b, 0xbe, 0xe5, 0xdf, 0x07, 0x8c, 0x48, 0xd3, 0x99, 0xf9, 0x16,
+ 0x93, 0x92, 0xc0, 0xb3, 0xde, 0x09, 0x2f, 0x20, 0xc4, 0x01, 0x06, 0x89, 0xd5, 0x32, 0x69, 0x19,
+ 0xac, 0x77, 0xa4, 0xdb, 0xa7, 0x57, 0xc2, 0x78, 0x11, 0x22, 0xb7, 0xd3, 0x60, 0xfc, 0x61, 0x9e,
+ 0x8c, 0x9d, 0xee, 0xd1, 0x62, 0xf4, 0x92, 0x54, 0xcb, 0xa6, 0xbb, 0x26, 0x42, 0x74, 0xc5, 0xa5,
+ 0xca, 0x50, 0x92, 0x54, 0xd9, 0x4f, 0xa9, 0xea, 0x39, 0xea, 0xad, 0xdb, 0xce, 0x9a, 0x08, 0xc8,
+ 0x15, 0xaf, 0x5a, 0x60, 0xa5, 0xaa, 0x05, 0x44, 0xae, 0x9a, 0x2d, 0x32, 0x23, 0xe9, 0x55, 0xeb,
+ 0x9e, 0x2e, 0x57, 0xcd, 0xf7, 0x97, 0x7e, 0x27, 0xcd, 0x50, 0xfd, 0x2e, 0x4f, 0xb1, 0x99, 0xec,
+ 0x50, 0xc4, 0x49, 0x1d, 0x8a, 0xbf, 0x59, 0xa5, 0x52, 0x1a, 0x45, 0x91, 0x43, 0x33, 0xa8, 0x54,
+ 0x42, 0xb1, 0x4a, 0xe5, 0x84, 0x8b, 0xd7, 0xe5, 0xec, 0x82, 0xca, 0x58, 0xb4, 0x83, 0x42, 0x0c,
+ 0xeb, 0x20, 0x29, 0x0b, 0x61, 0x11, 0x33, 0x97, 0x29, 0x04, 0xc9, 0x07, 0x83, 0x16, 0x4e, 0x2c,
+ 0x4c, 0xf7, 0x68, 0x98, 0xd3, 0x4c, 0xe5, 0x39, 0xf1, 0x94, 0x93, 0x48, 0x31, 0xe4, 0x53, 0x30,
+ 0xd8, 0x74, 0x8f, 0xc6, 0xf3, 0xe5, 0x3d, 0x25, 0x65, 0x9f, 0x51, 0x4e, 0x45, 0xa7, 0x88, 0x00,
+ 0xc1, 0xa6, 0x88, 0x30, 0x47, 0xcd, 0x54, 0x32, 0x43, 0x8b, 0xf2, 0x40, 0x74, 0x45, 0x8d, 0xe3,
+ 0xa7, 0x7b, 0xb4, 0x64, 0x56, 0x97, 0xe7, 0x22, 0x49, 0x4b, 0x94, 0xd3, 0xb1, 0xa8, 0x19, 0x21,
+ 0x8a, 0x89, 0x4b, 0x4e, 0x6f, 0x32, 0x9f, 0x9a, 0x66, 0x58, 0x39, 0x13, 0x5d, 0x8e, 0x53, 0x48,
+ 0xa6, 0x7b, 0xb4, 0xd4, 0x04, 0xc5, 0x13, 0x89, 0xd4, 0x21, 0x8a, 0x12, 0xbd, 0xfc, 0x8c, 0xa1,
+ 0xa7, 0x7b, 0xb4, 0x44, 0xb2, 0x91, 0xeb, 0x72, 0xce, 0x0e, 0xe5, 0xc1, 0x68, 0x27, 0x86, 0x18,
+ 0xd6, 0x89, 0x52, 0x6e, 0x8f, 0xeb, 0x72, 0x1e, 0x07, 0xe5, 0x6c, 0xb2, 0x54, 0x38, 0x73, 0x4a,
+ 0xf9, 0x1e, 0xb4, 0xf4, 0xd0, 0xf4, 0xca, 0x43, 0x22, 0x39, 0x98, 0x28, 0x9f, 0x46, 0x33, 0xdd,
+ 0xa3, 0xa5, 0x87, 0xb5, 0xd7, 0xd2, 0x63, 0xba, 0x2b, 0xe7, 0xba, 0xf1, 0x0c, 0x5a, 0x97, 0x1e,
+ 0x0f, 0x5e, 0xef, 0x12, 0x61, 0x5b, 0x39, 0x1f, 0x0d, 0xd9, 0xd7, 0x91, 0x70, 0xba, 0x47, 0xeb,
+ 0x12, 0xa7, 0xfb, 0x56, 0x87, 0x70, 0xd7, 0xca, 0x85, 0x68, 0x6e, 0xc0, 0x54, 0xa2, 0xe9, 0x1e,
+ 0xad, 0x43, 0xb0, 0xec, 0x5b, 0x1d, 0xa2, 0x21, 0x2b, 0xc5, 0xae, 0x6c, 0x03, 0x79, 0x74, 0x88,
+ 0xa5, 0x3c, 0x9f, 0x1a, 0x48, 0x58, 0x79, 0x38, 0xaa, 0xba, 0x29, 0x24, 0x4c, 0x75, 0xd3, 0x42,
+ 0x10, 0xcf, 0xa7, 0x46, 0xbe, 0x55, 0x1e, 0xe9, 0xc2, 0x30, 0x68, 0x63, 0x6a, 0xcc, 0xdc, 0xf9,
+ 0xd4, 0xd0, 0xb3, 0x8a, 0x1a, 0x65, 0x98, 0x42, 0xc2, 0x18, 0xa6, 0x05, 0xad, 0x9d, 0x4f, 0x8d,
+ 0x95, 0xaa, 0x3c, 0xda, 0x85, 0x61, 0xd8, 0xc2, 0xb4, 0x28, 0xab, 0xcf, 0x45, 0x82, 0x95, 0x2a,
+ 0xef, 0x8b, 0xce, 0x1b, 0x12, 0x8a, 0xcd, 0x1b, 0x72, 0x58, 0xd3, 0x89, 0x44, 0x38, 0x36, 0xe5,
+ 0xb1, 0xe8, 0x30, 0x8f, 0xa1, 0xd9, 0x30, 0x8f, 0x07, 0x70, 0x9b, 0x48, 0x84, 0xa5, 0x52, 0x2e,
+ 0x76, 0x62, 0x82, 0xe8, 0x28, 0x13, 0x1e, 0xc8, 0xaa, 0x92, 0x12, 0x17, 0x49, 0x79, 0x7f, 0xd4,
+ 0x71, 0x2f, 0x41, 0x30, 0xdd, 0xa3, 0xa5, 0x44, 0x53, 0xd2, 0xd2, 0x83, 0x00, 0x28, 0x97, 0xa2,
+ 0xc3, 0x36, 0x8d, 0x86, 0x0d, 0xdb, 0xd4, 0x00, 0x02, 0x33, 0x69, 0x4e, 0xba, 0xca, 0xe5, 0xa8,
+ 0x61, 0x96, 0xa4, 0x60, 0x86, 0x59, 0x8a, 0x73, 0xaf, 0x96, 0xfe, 0xac, 0x5d, 0x79, 0xbc, 0x6b,
+ 0x0b, 0x91, 0x26, 0xa5, 0x85, 0xfc, 0x95, 0x77, 0x68, 0x3b, 0xdd, 0x6a, 0x35, 0x6c, 0xdd, 0x50,
+ 0x3e, 0x90, 0x6a, 0x3b, 0x71, 0xa4, 0x64, 0x3b, 0x71, 0x00, 0x5b, 0xe5, 0x65, 0x27, 0x56, 0xe5,
+ 0x89, 0xe8, 0x2a, 0x2f, 0xe3, 0xd8, 0x2a, 0x1f, 0x71, 0x78, 0x9d, 0x48, 0x38, 0x7c, 0x2a, 0x4f,
+ 0x46, 0x15, 0x20, 0x86, 0x66, 0x0a, 0x10, 0x77, 0x11, 0x7d, 0xa3, 0xb3, 0x8b, 0xa4, 0x72, 0x05,
+ 0xb9, 0x3d, 0xec, 0x73, 0xeb, 0x44, 0x37, 0xdd, 0xa3, 0x75, 0x76, 0xb3, 0xac, 0xa4, 0x78, 0x3c,
+ 0x2a, 0x57, 0xa3, 0x0a, 0x96, 0x20, 0x60, 0x0a, 0x96, 0xf4, 0x93, 0xac, 0xa4, 0xb8, 0x2c, 0x2a,
+ 0x1f, 0xec, 0xc8, 0x2a, 0xf8, 0xe6, 0x14, 0x47, 0xc7, 0xeb, 0xb2, 0xcf, 0xa1, 0xf2, 0x54, 0x74,
+ 0xb1, 0x0b, 0x31, 0x6c, 0xb1, 0x93, 0x7c, 0x13, 0xaf, 0xcb, 0xde, 0x76, 0xca, 0xb5, 0x64, 0xa9,
+ 0x70, 0x89, 0x94, 0xbc, 0xf2, 0xb4, 0x74, 0x27, 0x35, 0xe5, 0xe9, 0xa8, 0xd6, 0xa5, 0xd1, 0x30,
+ 0xad, 0x4b, 0x75, 0x70, 0x9b, 0x4a, 0xfa, 0x9a, 0x29, 0xd7, 0xe3, 0x67, 0x09, 0x51, 0x3c, 0xb3,
+ 0x7c, 0x12, 0xfe, 0x69, 0xaf, 0xc4, 0x23, 0xd4, 0x28, 0xcf, 0xc4, 0x2e, 0x33, 0x22, 0x58, 0x66,
+ 0xdf, 0xc6, 0x22, 0xda, 0xbc, 0x12, 0x0f, 0xea, 0xa2, 0x3c, 0x9b, 0xce, 0x21, 0xd0, 0x95, 0x78,
+ 0x10, 0x98, 0x57, 0xe2, 0x71, 0x50, 0x94, 0xe7, 0xd2, 0x39, 0x04, 0xd2, 0x8d, 0xc7, 0x4d, 0x79,
+ 0x4a, 0x8a, 0xcc, 0xaa, 0x7c, 0x28, 0x6a, 0x3a, 0x06, 0x08, 0x66, 0x3a, 0x86, 0xf1, 0x5b, 0x9f,
+ 0x92, 0x22, 0x9a, 0x2a, 0xcf, 0x27, 0x8a, 0x04, 0x8d, 0x95, 0xe2, 0x9e, 0x3e, 0x25, 0x45, 0x02,
+ 0x55, 0x5e, 0x48, 0x14, 0x09, 0x5a, 0x27, 0xc5, 0x0b, 0x35, 0xba, 0x3d, 0xe6, 0x51, 0x3e, 0x1c,
+ 0x3d, 0xe2, 0xe8, 0x4c, 0x39, 0xdd, 0xa3, 0x75, 0x7b, 0x14, 0xf4, 0x46, 0x67, 0xcf, 0x3d, 0xe5,
+ 0xc5, 0xe8, 0x10, 0xee, 0x44, 0xc7, 0x86, 0x70, 0x47, 0xef, 0xbf, 0x97, 0x62, 0x0f, 0x7b, 0x95,
+ 0x97, 0xa2, 0x53, 0x5c, 0x04, 0xc9, 0xa6, 0xb8, 0xf8, 0x33, 0xe0, 0xc8, 0x8b, 0x55, 0xe5, 0x23,
+ 0xd1, 0x29, 0x4e, 0xc6, 0xb1, 0x29, 0x2e, 0xf2, 0xba, 0x75, 0x22, 0xf1, 0x90, 0x52, 0x79, 0x39,
+ 0x3a, 0xc5, 0xc5, 0xd0, 0x6c, 0x8a, 0x8b, 0x3f, 0xbd, 0x7c, 0x29, 0xf6, 0x9e, 0x50, 0x79, 0x25,
+ 0xbd, 0xfd, 0x88, 0x94, 0xdb, 0xcf, 0x5f, 0x1f, 0x6a, 0xe9, 0x0f, 0xe3, 0x94, 0x52, 0x74, 0xfc,
+ 0xa6, 0xd1, 0xb0, 0xf1, 0x9b, 0xfa, 0xa8, 0x6e, 0x3e, 0x35, 0x33, 0xbf, 0x32, 0xde, 0x65, 0xe3,
+ 0x10, 0x9a, 0x22, 0x69, 0x39, 0xfd, 0xe5, 0x3d, 0x32, 0xdf, 0x08, 0x4d, 0x74, 0xd8, 0x23, 0xfb,
+ 0xdb, 0xa0, 0x18, 0x3d, 0x9b, 0x5d, 0x13, 0x8e, 0x64, 0x4a, 0x39, 0x3a, 0xbb, 0x26, 0x08, 0xd8,
+ 0xec, 0x9a, 0x74, 0x3f, 0x9b, 0x82, 0x51, 0xa1, 0x45, 0xdc, 0x3f, 0xce, 0xb4, 0x56, 0x94, 0xc9,
+ 0xd8, 0xbb, 0x94, 0x18, 0x9e, 0xcd, 0x4e, 0x71, 0x18, 0xae, 0xd7, 0x1c, 0x36, 0xd1, 0x30, 0x5b,
+ 0x4b, 0xb6, 0xee, 0x18, 0x55, 0x6a, 0x19, 0xca, 0x54, 0x6c, 0xbd, 0x4e, 0xa1, 0xc1, 0xf5, 0x3a,
+ 0x05, 0x8e, 0x51, 0x59, 0x62, 0x70, 0x8d, 0xd6, 0xa9, 0x79, 0x97, 0x2a, 0x37, 0x90, 0x6d, 0xb1,
+ 0x13, 0x5b, 0x41, 0x36, 0xdd, 0xa3, 0x75, 0xe2, 0xc0, 0x6c, 0xf5, 0xd9, 0x8d, 0xea, 0x6b, 0x33,
+ 0xc1, 0x5b, 0xcc, 0x05, 0x87, 0xb6, 0x74, 0x87, 0x2a, 0xd3, 0x51, 0x5b, 0x3d, 0x95, 0x88, 0xd9,
+ 0xea, 0xa9, 0x88, 0x24, 0x5b, 0x7f, 0x2c, 0x54, 0xba, 0xb1, 0x0d, 0x47, 0x44, 0x7a, 0x69, 0x36,
+ 0x3b, 0x45, 0x11, 0x4c, 0x40, 0x33, 0xb6, 0xb5, 0x82, 0x27, 0x15, 0xaf, 0x46, 0x67, 0xa7, 0xce,
+ 0x94, 0x6c, 0x76, 0xea, 0x8c, 0x65, 0xaa, 0x1e, 0xc5, 0xf2, 0x31, 0x78, 0x33, 0xaa, 0xea, 0x29,
+ 0x24, 0x4c, 0xd5, 0x53, 0xc0, 0x49, 0x86, 0x1a, 0x75, 0xa9, 0xa7, 0xcc, 0x74, 0x63, 0x88, 0x24,
+ 0x49, 0x86, 0x08, 0x4e, 0x32, 0x9c, 0xa2, 0x5e, 0x7d, 0x55, 0x99, 0xed, 0xc6, 0x10, 0x49, 0x92,
+ 0x0c, 0x11, 0xcc, 0x36, 0x9b, 0x51, 0xf0, 0x78, 0xbb, 0xb1, 0xe6, 0xf7, 0xd9, 0x5c, 0x74, 0xb3,
+ 0xd9, 0x91, 0x90, 0x6d, 0x36, 0x3b, 0x22, 0xc9, 0x67, 0x76, 0xec, 0xe8, 0xa8, 0xcc, 0x63, 0x85,
+ 0x57, 0x42, 0xbb, 0x60, 0x27, 0xa5, 0xa6, 0x7b, 0xb4, 0x9d, 0x3a, 0x52, 0x7e, 0x20, 0x70, 0x25,
+ 0x52, 0x16, 0xb0, 0xaa, 0x13, 0xc1, 0x59, 0x05, 0x07, 0x4f, 0xf7, 0x68, 0x81, 0xb3, 0xd1, 0x73,
+ 0x30, 0x88, 0x1f, 0x55, 0xb1, 0x4c, 0xaf, 0x3c, 0xae, 0xbc, 0x16, 0xdd, 0x32, 0x49, 0x28, 0xb6,
+ 0x65, 0x92, 0x7e, 0xb2, 0x49, 0x1c, 0x7f, 0xf2, 0x29, 0xa6, 0x3c, 0xae, 0x68, 0xd1, 0x49, 0x3c,
+ 0x82, 0x64, 0x93, 0x78, 0x04, 0x10, 0xd4, 0x5b, 0x76, 0xec, 0x56, 0x79, 0x5c, 0xa9, 0xa6, 0xd4,
+ 0xcb, 0x51, 0x41, 0xbd, 0xfc, 0x67, 0x50, 0x6f, 0x75, 0xb5, 0xed, 0x95, 0xd9, 0x37, 0x2e, 0xa6,
+ 0xd4, 0xeb, 0x23, 0x83, 0x7a, 0x7d, 0x00, 0x9b, 0x0a, 0x11, 0xb0, 0xe0, 0xd8, 0x6c, 0xd2, 0xbe,
+ 0x69, 0x36, 0x1a, 0xca, 0xad, 0xe8, 0x54, 0x18, 0xc7, 0xb3, 0xa9, 0x30, 0x0e, 0x63, 0xa6, 0x27,
+ 0x6f, 0x15, 0x5d, 0x6a, 0xaf, 0x28, 0xb7, 0xa3, 0xa6, 0x67, 0x88, 0x61, 0xa6, 0x67, 0xf8, 0x0b,
+ 0x77, 0x17, 0xec, 0x97, 0x46, 0x97, 0x1d, 0xea, 0xae, 0x2a, 0x77, 0x62, 0xbb, 0x0b, 0x09, 0x87,
+ 0xbb, 0x0b, 0xe9, 0x37, 0x59, 0x81, 0x87, 0x22, 0x0b, 0x8d, 0x7f, 0xf7, 0x54, 0xa5, 0xba, 0x53,
+ 0x5f, 0x55, 0x3e, 0x8a, 0xac, 0x1e, 0x4d, 0x5d, 0xaa, 0xa2, 0xa4, 0xd3, 0x3d, 0x5a, 0x37, 0x4e,
+ 0xb8, 0x2d, 0x7f, 0x6d, 0x86, 0x87, 0x4f, 0xd3, 0x16, 0x26, 0xfc, 0x4d, 0xe8, 0xeb, 0xb1, 0x6d,
+ 0x79, 0x92, 0x04, 0xb7, 0xe5, 0x49, 0x30, 0x69, 0xc1, 0x85, 0xd8, 0x56, 0x6d, 0x56, 0x6f, 0xb0,
+ 0x7d, 0x09, 0x35, 0x16, 0xf4, 0xfa, 0x1a, 0xf5, 0x94, 0x8f, 0x21, 0xef, 0x8b, 0x1d, 0x36, 0x7c,
+ 0x31, 0xea, 0xe9, 0x1e, 0x6d, 0x1b, 0x7e, 0x44, 0xe5, 0xb9, 0xdf, 0x95, 0x8f, 0x47, 0xcf, 0x37,
+ 0x19, 0x6c, 0xba, 0x47, 0xe3, 0x79, 0xe1, 0xdf, 0x00, 0xe5, 0x56, 0x6b, 0xc5, 0xd1, 0x0d, 0xca,
+ 0x0d, 0x2d, 0xb4, 0xdd, 0x84, 0x01, 0xfa, 0x89, 0xa8, 0x95, 0xd6, 0x89, 0x8e, 0x59, 0x69, 0x9d,
+ 0x70, 0x4c, 0x51, 0x23, 0x91, 0xc2, 0x95, 0x4f, 0x46, 0x15, 0x35, 0x82, 0x64, 0x8a, 0x1a, 0x8d,
+ 0x2b, 0xfe, 0x51, 0x38, 0x1d, 0xec, 0xe7, 0xc5, 0xfa, 0xcb, 0x3b, 0x4d, 0x79, 0x03, 0xf9, 0x5c,
+ 0x48, 0x5c, 0x06, 0x44, 0xa8, 0xa6, 0x7b, 0xb4, 0x0e, 0xe5, 0xd9, 0x8a, 0x9b, 0x48, 0x82, 0x21,
+ 0xcc, 0x8b, 0xef, 0x88, 0xae, 0xb8, 0x1d, 0xc8, 0xd8, 0x8a, 0xdb, 0x01, 0x95, 0xca, 0x5c, 0x08,
+ 0x55, 0xdf, 0x86, 0x79, 0x20, 0xd3, 0x4e, 0x1c, 0x52, 0x99, 0x0b, 0x4b, 0x6d, 0x69, 0x1b, 0xe6,
+ 0x81, 0xb5, 0xd6, 0x89, 0x03, 0xb9, 0x04, 0x85, 0x6a, 0x75, 0x56, 0x6b, 0x5b, 0x4a, 0x3d, 0xe6,
+ 0x03, 0x86, 0xd0, 0xe9, 0x1e, 0x4d, 0xe0, 0x99, 0x19, 0x34, 0xd9, 0xd0, 0x5d, 0xcf, 0xac, 0xbb,
+ 0x38, 0x62, 0xfc, 0x11, 0x62, 0x44, 0xcd, 0xa0, 0x34, 0x1a, 0x66, 0x06, 0xa5, 0xc1, 0x99, 0xbd,
+ 0x38, 0xa1, 0xbb, 0xae, 0x6e, 0x19, 0x8e, 0x3e, 0x8e, 0xcb, 0x04, 0x8d, 0xb9, 0xdb, 0x47, 0xb0,
+ 0xcc, 0x5e, 0x8c, 0x42, 0xf0, 0xf0, 0xdd, 0x87, 0xf8, 0x66, 0xce, 0x72, 0xec, 0xf0, 0x3d, 0x86,
+ 0xc7, 0xc3, 0xf7, 0x18, 0x0c, 0xed, 0x4e, 0x1f, 0xa6, 0xd1, 0x15, 0x93, 0x89, 0x48, 0x59, 0x89,
+ 0xd9, 0x9d, 0x71, 0x02, 0xb4, 0x3b, 0xe3, 0xc0, 0x48, 0x93, 0xfc, 0xe5, 0x76, 0xb5, 0x43, 0x93,
+ 0xc2, 0x55, 0x36, 0x51, 0x86, 0xad, 0xdf, 0xe1, 0xe0, 0x28, 0x6f, 0x58, 0x7a, 0xd3, 0x2e, 0x8f,
+ 0xfb, 0x52, 0x37, 0xa3, 0xeb, 0x77, 0x47, 0x42, 0xb6, 0x7e, 0x77, 0x44, 0xb2, 0xd9, 0xd5, 0xdf,
+ 0x68, 0xad, 0xea, 0x0e, 0x35, 0xca, 0xa6, 0x83, 0x27, 0x8b, 0x1b, 0x7c, 0x6b, 0xf8, 0x66, 0x74,
+ 0x76, 0xed, 0x42, 0xca, 0x66, 0xd7, 0x2e, 0x68, 0x66, 0xe4, 0xa5, 0xa3, 0x35, 0xaa, 0x1b, 0xca,
+ 0x5a, 0xd4, 0xc8, 0xeb, 0x4c, 0xc9, 0x8c, 0xbc, 0xce, 0xd8, 0xce, 0x9f, 0x73, 0xc7, 0x31, 0x3d,
+ 0xaa, 0x34, 0x76, 0xf2, 0x39, 0x48, 0xda, 0xf9, 0x73, 0x10, 0xcd, 0x36, 0x84, 0xf1, 0x0e, 0x69,
+ 0x46, 0x37, 0x84, 0xc9, 0x6e, 0x88, 0x97, 0x60, 0x16, 0x8b, 0x78, 0x75, 0xa1, 0x58, 0x51, 0x8b,
+ 0x45, 0x80, 0x99, 0xc5, 0x12, 0xbe, 0xcb, 0x88, 0x38, 0xe8, 0x2b, 0x76, 0x74, 0x0d, 0x95, 0x71,
+ 0x6c, 0x0d, 0x8d, 0x38, 0xf3, 0x3f, 0x17, 0xf1, 0x9e, 0x55, 0x5a, 0x51, 0xab, 0x43, 0x42, 0x31,
+ 0xab, 0x43, 0xf6, 0xb3, 0x9d, 0x80, 0x13, 0x78, 0x0b, 0xae, 0xb5, 0x83, 0x7b, 0x9c, 0x4f, 0x45,
+ 0x3f, 0x33, 0x86, 0x66, 0x9f, 0x19, 0x03, 0x45, 0x98, 0x88, 0x69, 0xcb, 0xe9, 0xc0, 0x24, 0x3c,
+ 0x1f, 0x8c, 0x81, 0xc8, 0x0c, 0x90, 0x6a, 0x69, 0x76, 0xa6, 0x62, 0x2c, 0xc8, 0x57, 0x64, 0x6e,
+ 0xf4, 0x04, 0x36, 0x49, 0x31, 0xdd, 0xa3, 0xa5, 0x94, 0x23, 0x6f, 0xc2, 0x39, 0x01, 0x15, 0x4f,
+ 0xea, 0x30, 0x43, 0xad, 0x11, 0x2c, 0x08, 0x5e, 0xd4, 0x3b, 0xa3, 0x1b, 0xed, 0x74, 0x8f, 0xd6,
+ 0x95, 0x57, 0xe7, 0xba, 0xc4, 0xfa, 0xd0, 0xde, 0x49, 0x5d, 0xc1, 0x22, 0xd1, 0x95, 0x57, 0xe7,
+ 0xba, 0x84, 0xdc, 0xef, 0xee, 0xa4, 0xae, 0xa0, 0x13, 0xba, 0xf2, 0x22, 0x2e, 0x14, 0xbb, 0xe1,
+ 0x4b, 0x8d, 0x86, 0xb2, 0x8e, 0xd5, 0xbd, 0x7f, 0x27, 0xd5, 0x95, 0xd0, 0xe0, 0xdc, 0x8e, 0x23,
+ 0x9b, 0xa5, 0xe7, 0x5b, 0xd4, 0xaa, 0x46, 0x16, 0xa0, 0x7b, 0xd1, 0x59, 0x3a, 0x41, 0xc0, 0x66,
+ 0xe9, 0x04, 0x90, 0x0d, 0x28, 0xd9, 0x09, 0x5b, 0xd9, 0x88, 0x0e, 0x28, 0x19, 0xc7, 0x06, 0x54,
+ 0xc4, 0x61, 0x7b, 0x1e, 0x4e, 0xce, 0xaf, 0x79, 0xba, 0x6f, 0x41, 0xba, 0xa2, 0x2b, 0xdf, 0x8a,
+ 0x5d, 0x32, 0x25, 0x49, 0xf0, 0x92, 0x29, 0x09, 0x66, 0x63, 0x84, 0x81, 0xab, 0x1b, 0x56, 0x7d,
+ 0x4a, 0x37, 0x1b, 0x6d, 0x87, 0x2a, 0xff, 0x53, 0x74, 0x8c, 0xc4, 0xd0, 0x6c, 0x8c, 0xc4, 0x40,
+ 0x6c, 0x81, 0x66, 0xa0, 0x92, 0xeb, 0x9a, 0x2b, 0x96, 0xd8, 0x57, 0xb6, 0x1b, 0x9e, 0xf2, 0x3f,
+ 0x47, 0x17, 0xe8, 0x34, 0x1a, 0xb6, 0x40, 0xa7, 0xc1, 0xf1, 0xd4, 0x29, 0x25, 0x7b, 0xb3, 0xf2,
+ 0xbf, 0xc4, 0x4e, 0x9d, 0x52, 0x68, 0xf0, 0xd4, 0x29, 0x2d, 0xf3, 0xf3, 0x14, 0x8c, 0x72, 0x9b,
+ 0x6c, 0xc6, 0x0c, 0xee, 0xaa, 0xff, 0xd7, 0xe8, 0xfa, 0x18, 0xc7, 0xb3, 0xf5, 0x31, 0x0e, 0x8b,
+ 0xf2, 0x11, 0x5d, 0xf0, 0xbf, 0x75, 0xe2, 0x13, 0xc8, 0x3f, 0x51, 0x86, 0xdc, 0x90, 0xf9, 0x88,
+ 0x91, 0xf2, 0x9d, 0x99, 0x4e, 0x8c, 0x82, 0xe1, 0x91, 0x28, 0x14, 0x65, 0xa4, 0xd1, 0xbb, 0x26,
+ 0x5d, 0x57, 0x3e, 0xdd, 0x91, 0x11, 0x27, 0x88, 0x32, 0xe2, 0x30, 0xf2, 0x3a, 0x9c, 0x0e, 0x61,
+ 0xb3, 0xb4, 0xb9, 0x14, 0xcc, 0x4c, 0xdf, 0x95, 0x89, 0x9a, 0xc1, 0xe9, 0x64, 0xcc, 0x0c, 0x4e,
+ 0xc7, 0xa4, 0xb1, 0x16, 0xa2, 0xfb, 0xdf, 0xb7, 0x61, 0x1d, 0x48, 0xb0, 0x03, 0x83, 0x34, 0xd6,
+ 0x42, 0x9a, 0xdf, 0xbd, 0x0d, 0xeb, 0x40, 0xa6, 0x1d, 0x18, 0x90, 0xcf, 0x66, 0xe0, 0x62, 0x3a,
+ 0xaa, 0xd4, 0x68, 0x4c, 0xd9, 0x4e, 0x88, 0x53, 0xbe, 0x27, 0x13, 0x3d, 0x68, 0xd8, 0x59, 0xb1,
+ 0xe9, 0x1e, 0x6d, 0x87, 0x15, 0x90, 0x8f, 0xc0, 0x70, 0xa9, 0x6d, 0x98, 0x1e, 0x5e, 0xbc, 0x31,
+ 0xc3, 0xf9, 0x7b, 0x33, 0xb1, 0x2d, 0x8e, 0x8c, 0xc5, 0x2d, 0x8e, 0x0c, 0x20, 0xaf, 0xc2, 0x58,
+ 0x95, 0xd6, 0xdb, 0x8e, 0xe9, 0x6d, 0x68, 0x98, 0x99, 0x9b, 0xf1, 0xf8, 0xbe, 0x4c, 0x74, 0x12,
+ 0x4b, 0x50, 0xb0, 0x49, 0x2c, 0x01, 0x24, 0xb7, 0x3b, 0xe4, 0x6f, 0x56, 0x3e, 0x93, 0xe9, 0x7a,
+ 0x2d, 0x1f, 0xf4, 0x65, 0x87, 0xf4, 0xcf, 0x0b, 0xa9, 0xf9, 0x70, 0x95, 0xcf, 0x66, 0xba, 0x5c,
+ 0xa3, 0x4b, 0x33, 0x5c, 0x4a, 0x2a, 0xdd, 0x85, 0xd4, 0x8c, 0xa7, 0xca, 0xf7, 0x67, 0xba, 0x5c,
+ 0x7b, 0x87, 0x1c, 0xd3, 0x92, 0xa5, 0x3e, 0xc3, 0x3d, 0x45, 0x04, 0xa3, 0xff, 0x23, 0x93, 0x74,
+ 0x15, 0x09, 0xca, 0x4b, 0x84, 0xac, 0xd8, 0x2d, 0x37, 0x50, 0xfa, 0xcf, 0x65, 0x92, 0xbe, 0x79,
+ 0x61, 0xb1, 0xf0, 0x17, 0xa1, 0x70, 0x76, 0xf2, 0x9e, 0x47, 0x1d, 0x4b, 0x6f, 0x60, 0x77, 0x56,
+ 0x3d, 0xdb, 0xd1, 0x57, 0xe8, 0xa4, 0xa5, 0x2f, 0x35, 0xa8, 0xf2, 0xf9, 0x4c, 0xd4, 0x82, 0xed,
+ 0x4c, 0xca, 0x2c, 0xd8, 0xce, 0x58, 0xb2, 0x0a, 0x0f, 0xa5, 0x61, 0xcb, 0xa6, 0x8b, 0xf5, 0x7c,
+ 0x21, 0x13, 0x35, 0x61, 0xbb, 0xd0, 0x32, 0x13, 0xb6, 0x0b, 0x9a, 0x5c, 0x83, 0x81, 0x71, 0xdb,
+ 0x9f, 0x7e, 0xff, 0xcf, 0x98, 0x33, 0x64, 0x80, 0x99, 0xee, 0xd1, 0x42, 0x32, 0x51, 0x46, 0x0c,
+ 0xea, 0x2f, 0x26, 0xcb, 0x84, 0x97, 0x4f, 0xc1, 0x0f, 0x51, 0x46, 0x88, 0xfb, 0xff, 0x4a, 0x96,
+ 0x09, 0xef, 0xb8, 0x82, 0x1f, 0x6c, 0x26, 0xe1, 0x35, 0xce, 0x4e, 0x95, 0x98, 0xdd, 0x36, 0xb1,
+ 0xaa, 0x37, 0x1a, 0xd4, 0x5a, 0xa1, 0xca, 0x97, 0x62, 0x33, 0x49, 0x3a, 0x19, 0x9b, 0x49, 0xd2,
+ 0x31, 0xe4, 0x13, 0x70, 0xe6, 0xb6, 0xde, 0x30, 0x8d, 0x10, 0xe7, 0x27, 0xd1, 0x54, 0x7e, 0x20,
+ 0x13, 0xdd, 0x4d, 0x77, 0xa0, 0x63, 0xbb, 0xe9, 0x0e, 0x28, 0x32, 0x0b, 0x04, 0x97, 0xd1, 0x60,
+ 0xb6, 0x60, 0xeb, 0xb3, 0xf2, 0x7f, 0x67, 0xa2, 0x76, 0x6a, 0x92, 0x84, 0xd9, 0xa9, 0x49, 0x28,
+ 0xa9, 0x75, 0x8e, 0x93, 0xae, 0xfc, 0x60, 0x26, 0x7a, 0x5a, 0xd3, 0x89, 0x70, 0xba, 0x47, 0xeb,
+ 0x1c, 0x6c, 0xfd, 0x06, 0x8c, 0x56, 0x17, 0x2a, 0x53, 0x53, 0x93, 0xd5, 0xdb, 0x95, 0x32, 0xba,
+ 0xef, 0x1a, 0xca, 0x0f, 0xc5, 0x56, 0xac, 0x38, 0x01, 0x5b, 0xb1, 0xe2, 0x30, 0x52, 0x85, 0x53,
+ 0x4c, 0x10, 0x0b, 0x0e, 0x5d, 0xa6, 0x0e, 0xb5, 0xea, 0xfe, 0xb0, 0xfc, 0x91, 0x4c, 0xd4, 0x50,
+ 0x48, 0x23, 0x62, 0x86, 0x42, 0x1a, 0x9c, 0xac, 0xc1, 0xb9, 0xf8, 0x61, 0x8e, 0xfc, 0x1e, 0x4a,
+ 0xf9, 0xd1, 0x4c, 0xcc, 0x9e, 0xed, 0x42, 0x8c, 0xf6, 0x6c, 0x17, 0x3c, 0xb1, 0xe0, 0xbc, 0x38,
+ 0x19, 0x11, 0x3e, 0x93, 0xf1, 0xda, 0x7e, 0x8c, 0xd7, 0xf6, 0x58, 0xe8, 0xd3, 0xd7, 0x85, 0x7a,
+ 0xba, 0x47, 0xeb, 0xce, 0x8e, 0xa9, 0x4a, 0x32, 0xa0, 0xb7, 0xf2, 0xe3, 0x99, 0x74, 0xa7, 0x92,
+ 0x88, 0xa7, 0x71, 0x5a, 0x24, 0xf0, 0xd7, 0x3b, 0x85, 0xa3, 0x56, 0x7e, 0x22, 0x36, 0x64, 0xd2,
+ 0xc9, 0xd8, 0x90, 0xe9, 0x10, 0xcf, 0xfa, 0x55, 0x18, 0xe3, 0x7a, 0xb9, 0xa0, 0xe3, 0x48, 0xb2,
+ 0x56, 0xa8, 0xa1, 0xfc, 0x3f, 0xb1, 0x05, 0x2b, 0x41, 0x81, 0xde, 0x39, 0x71, 0x20, 0x9b, 0x7d,
+ 0xab, 0x2d, 0xdd, 0xb2, 0xf0, 0xa4, 0x54, 0xf9, 0x7f, 0x63, 0xb3, 0x6f, 0x88, 0x42, 0xdf, 0xdb,
+ 0xe0, 0x17, 0x26, 0x06, 0x4a, 0x7b, 0x2e, 0xa8, 0x7c, 0x39, 0xb6, 0xce, 0xa5, 0x52, 0xb1, 0x75,
+ 0x2e, 0xfd, 0xb5, 0xe1, 0xed, 0x0e, 0x4f, 0xed, 0x94, 0x9f, 0xec, 0xce, 0x37, 0x5c, 0x3f, 0xd3,
+ 0x5f, 0xea, 0xdd, 0xee, 0xf0, 0x4c, 0x4d, 0xf9, 0xa9, 0xee, 0x7c, 0x43, 0x77, 0xb9, 0xf4, 0x57,
+ 0x6e, 0xb5, 0xce, 0x4f, 0xbc, 0x94, 0x9f, 0x8e, 0x4f, 0x08, 0x1d, 0x08, 0x71, 0x42, 0xe8, 0xf4,
+ 0x4e, 0xec, 0xd5, 0x94, 0x87, 0x56, 0xca, 0xcf, 0xc4, 0xfa, 0x3a, 0x41, 0xc1, 0xfa, 0x3a, 0xf9,
+ 0x3e, 0xeb, 0xd5, 0x94, 0xf7, 0x44, 0xca, 0xff, 0xdf, 0x99, 0x57, 0x20, 0xd4, 0x94, 0x67, 0x48,
+ 0xaf, 0xa6, 0x3c, 0x9b, 0x51, 0xfe, 0x5a, 0x67, 0x5e, 0xa1, 0xd7, 0x4d, 0xf2, 0xb5, 0xcd, 0xeb,
+ 0x70, 0x9a, 0xcf, 0x5f, 0x53, 0xd4, 0xa0, 0x91, 0x0f, 0xfd, 0xd9, 0xd8, 0x50, 0x49, 0x27, 0xc3,
+ 0x43, 0xe6, 0x54, 0x4c, 0x1a, 0x6b, 0xd1, 0xd6, 0x9f, 0xdb, 0x86, 0x75, 0x68, 0x02, 0xa7, 0x63,
+ 0xc6, 0xfb, 0xa0, 0x17, 0x77, 0x9f, 0xea, 0x97, 0x33, 0x30, 0x54, 0xf5, 0x1c, 0xaa, 0x37, 0x45,
+ 0xe4, 0x84, 0xb3, 0xd0, 0xcf, 0xdd, 0xb8, 0xfc, 0x97, 0x14, 0x5a, 0xf0, 0x9b, 0x5c, 0x84, 0x91,
+ 0x19, 0xdd, 0xf5, 0xb0, 0x64, 0xc5, 0x32, 0xe8, 0x3d, 0x7c, 0xc2, 0x90, 0xd3, 0x62, 0x50, 0x32,
+ 0xc3, 0xe9, 0x78, 0x39, 0x8c, 0x7b, 0x93, 0xdb, 0x36, 0x60, 0x40, 0xff, 0xdb, 0x9b, 0xc5, 0x1e,
+ 0x8c, 0x0f, 0x10, 0x2b, 0xab, 0x7e, 0x3d, 0x03, 0x09, 0x07, 0xb3, 0xbd, 0xbf, 0x70, 0x9a, 0x87,
+ 0x13, 0xb1, 0x58, 0x4b, 0xe2, 0x1d, 0xc6, 0x0e, 0x43, 0x31, 0xc5, 0x4b, 0x93, 0xf7, 0x07, 0xfe,
+ 0xff, 0xb7, 0xb4, 0x19, 0x11, 0x0c, 0xa2, 0x6f, 0x6b, 0xb3, 0x98, 0x6b, 0x3b, 0x0d, 0x4d, 0x42,
+ 0x89, 0xc7, 0xca, 0xdf, 0x1e, 0x0d, 0x03, 0xc9, 0x90, 0x8b, 0xe2, 0xb9, 0x55, 0x26, 0x0c, 0x21,
+ 0x11, 0xcb, 0x29, 0xc7, 0x9f, 0x57, 0x7d, 0x04, 0x86, 0x2a, 0xcd, 0x16, 0x75, 0x5c, 0xdb, 0xd2,
+ 0x3d, 0xdb, 0xcf, 0x5d, 0x8d, 0xe1, 0x05, 0x4c, 0x09, 0x2e, 0x3f, 0x79, 0x97, 0xe9, 0xc9, 0x65,
+ 0x3f, 0x01, 0x41, 0x0e, 0x43, 0xf8, 0x60, 0x1c, 0xca, 0x78, 0x9e, 0x32, 0x4e, 0xc1, 0x48, 0x6f,
+ 0xb9, 0x3a, 0xbe, 0x14, 0x09, 0x48, 0xdb, 0x0c, 0x20, 0x93, 0x22, 0x05, 0x79, 0x02, 0x0a, 0x78,
+ 0xb2, 0xe6, 0x62, 0x62, 0x11, 0x11, 0xd8, 0xa2, 0x81, 0x10, 0x39, 0x8c, 0x00, 0xa7, 0x21, 0x37,
+ 0x61, 0x34, 0xbc, 0x36, 0xc0, 0x6c, 0xeb, 0x7e, 0x28, 0x61, 0xcc, 0xef, 0xb6, 0x16, 0xe0, 0x78,
+ 0x9a, 0x76, 0x99, 0x45, 0xa2, 0x20, 0x99, 0x86, 0x13, 0x21, 0x8c, 0x89, 0xc8, 0x0f, 0x61, 0x8e,
+ 0xf9, 0x0d, 0x25, 0x5e, 0x4c, 0x9c, 0x32, 0xab, 0x78, 0x31, 0x52, 0x81, 0x3e, 0x3f, 0xaa, 0x45,
+ 0xff, 0xb6, 0x4a, 0x7a, 0x52, 0x44, 0xb5, 0xe8, 0x93, 0xe3, 0x59, 0xf8, 0xe5, 0xc9, 0x14, 0x8c,
+ 0x68, 0x76, 0xdb, 0xa3, 0x8b, 0xb6, 0x58, 0xac, 0x45, 0xf4, 0x14, 0x6c, 0x93, 0xc3, 0x30, 0x35,
+ 0xcf, 0xf6, 0xd3, 0xe3, 0xc9, 0x69, 0xda, 0xa2, 0xa5, 0xc8, 0x1c, 0x8c, 0x25, 0x2e, 0x58, 0xe4,
+ 0xa4, 0x75, 0xd2, 0xe7, 0x25, 0x99, 0x25, 0x8b, 0x92, 0xef, 0xcd, 0x40, 0x61, 0xd1, 0xd1, 0x4d,
+ 0xcf, 0x15, 0x8f, 0x4c, 0x1e, 0xb8, 0xb2, 0xee, 0xe8, 0x2d, 0xa6, 0x1f, 0x57, 0x30, 0x46, 0xd3,
+ 0x6d, 0xbd, 0xd1, 0xa6, 0xee, 0xf8, 0x1d, 0xf6, 0x75, 0xff, 0x6c, 0xb3, 0xf8, 0xe1, 0x15, 0xdc,
+ 0xc6, 0x5d, 0xa9, 0xdb, 0xcd, 0xab, 0x2b, 0x8e, 0x7e, 0xd7, 0xf4, 0x70, 0xea, 0xd0, 0x1b, 0x57,
+ 0x3d, 0xda, 0xc0, 0xdd, 0xe2, 0x55, 0xbd, 0x65, 0x5e, 0xc5, 0x58, 0x80, 0x57, 0x03, 0x4e, 0xbc,
+ 0x06, 0xa6, 0x02, 0x1e, 0xfe, 0x25, 0xab, 0x00, 0xc7, 0x91, 0x39, 0xb6, 0xc9, 0xc2, 0x4f, 0x2d,
+ 0xb5, 0x5a, 0xe2, 0xc5, 0x8a, 0xb4, 0xc7, 0xf2, 0x31, 0x5c, 0xb1, 0x03, 0x81, 0xe9, 0x2d, 0x39,
+ 0x67, 0xbf, 0xc4, 0x81, 0x69, 0xc1, 0xa2, 0x68, 0x91, 0x2f, 0xa6, 0xe1, 0x50, 0xe2, 0x7e, 0x63,
+ 0x53, 0x84, 0x14, 0x2f, 0x46, 0x96, 0xe0, 0x84, 0xe0, 0x1b, 0x04, 0x9d, 0x1d, 0x89, 0xce, 0x0a,
+ 0x31, 0x34, 0x57, 0xda, 0xa0, 0x8d, 0x86, 0x00, 0xcb, 0x75, 0xc4, 0x4a, 0x90, 0xf1, 0x30, 0xdf,
+ 0xd2, 0x9c, 0xde, 0xa4, 0xae, 0x72, 0x02, 0x35, 0xf6, 0xdc, 0xd6, 0x66, 0x51, 0xf1, 0xcb, 0x63,
+ 0x80, 0x97, 0xd4, 0xec, 0x81, 0x58, 0x44, 0xe6, 0xc1, 0xb5, 0x7e, 0x34, 0x85, 0x47, 0x5c, 0xe7,
+ 0xa3, 0x45, 0xc8, 0x04, 0x0c, 0x07, 0x0e, 0xb3, 0xb7, 0x6e, 0x55, 0xca, 0xf8, 0x24, 0x46, 0xc4,
+ 0xf8, 0x89, 0xc5, 0xb3, 0x95, 0x99, 0x44, 0xca, 0x48, 0x6f, 0xe7, 0xf8, 0x1b, 0x99, 0xd8, 0xdb,
+ 0xb9, 0x56, 0xca, 0xdb, 0xb9, 0x05, 0xf2, 0x12, 0x0c, 0x96, 0xee, 0x54, 0xc5, 0x9b, 0x40, 0x57,
+ 0x39, 0x19, 0x06, 0x12, 0xc7, 0x04, 0x92, 0xe2, 0xfd, 0xa0, 0xdc, 0x74, 0x99, 0x9e, 0x4c, 0xc2,
+ 0x48, 0xe4, 0xce, 0xdd, 0x55, 0x4e, 0x21, 0x07, 0x9e, 0xc3, 0x1f, 0x31, 0x35, 0x47, 0xa0, 0x22,
+ 0x29, 0x4d, 0x23, 0x85, 0x98, 0xd6, 0xb0, 0x6d, 0x6b, 0xa3, 0x61, 0xaf, 0x6b, 0x14, 0x9f, 0x1f,
+ 0xe2, 0x03, 0x9b, 0x7e, 0xae, 0x35, 0x86, 0x40, 0xd5, 0x1c, 0x8e, 0x8b, 0xe4, 0x30, 0x8d, 0x16,
+ 0x23, 0x6f, 0x02, 0xc1, 0x30, 0xce, 0xd4, 0xf0, 0x8f, 0x60, 0x2b, 0x65, 0x57, 0x39, 0x8d, 0xb1,
+ 0xea, 0x48, 0xfc, 0xfd, 0x6b, 0xa5, 0x3c, 0x7e, 0x51, 0x4c, 0x1f, 0x17, 0x74, 0x5e, 0xaa, 0xe6,
+ 0x08, 0x5c, 0xcd, 0x34, 0xe4, 0x16, 0xa7, 0x70, 0x25, 0xeb, 0x70, 0x66, 0xc1, 0xa1, 0x77, 0x4d,
+ 0xbb, 0xed, 0xfa, 0xcb, 0x87, 0x3f, 0x6f, 0x9d, 0xd9, 0x76, 0xde, 0x7a, 0x44, 0x54, 0xfc, 0x40,
+ 0xcb, 0xa1, 0x77, 0x6b, 0x7e, 0x84, 0xb2, 0x48, 0x54, 0x9e, 0x4e, 0xdc, 0x99, 0xb8, 0xf0, 0xe9,
+ 0xa5, 0x80, 0x9b, 0xd4, 0x55, 0x94, 0x70, 0xaa, 0xe5, 0x2f, 0x49, 0xcd, 0x00, 0x27, 0x8b, 0x2b,
+ 0x56, 0x8c, 0x68, 0x40, 0x6e, 0x4c, 0xf8, 0xc7, 0xf1, 0xa5, 0x3a, 0xcf, 0x67, 0xa4, 0x3c, 0x88,
+ 0xcc, 0x54, 0x26, 0x96, 0x95, 0x7a, 0x10, 0xad, 0xb0, 0xa6, 0x0b, 0xbc, 0x2c, 0x96, 0x64, 0x69,
+ 0x32, 0x03, 0xa3, 0x0b, 0x0e, 0xee, 0x2c, 0x6e, 0xd2, 0x8d, 0x05, 0xbb, 0x61, 0xd6, 0x37, 0xf0,
+ 0x9d, 0x8f, 0x98, 0x2a, 0x5b, 0x1c, 0x57, 0x5b, 0xa3, 0x1b, 0xb5, 0x16, 0x62, 0xe5, 0x65, 0x25,
+ 0x5e, 0x52, 0x8e, 0x1e, 0xf6, 0xd0, 0xce, 0xa2, 0x87, 0x51, 0x18, 0x15, 0x87, 0xf9, 0xf7, 0x3c,
+ 0x6a, 0xb1, 0xa5, 0xde, 0x15, 0x6f, 0x7a, 0x94, 0xd8, 0xe1, 0x7f, 0x80, 0x17, 0xf9, 0x4c, 0xf9,
+ 0x28, 0xa3, 0x01, 0x58, 0x6e, 0x58, 0xbc, 0x48, 0x32, 0x2e, 0xd7, 0xf9, 0x3d, 0xc4, 0xe5, 0xfa,
+ 0x42, 0x4e, 0x9e, 0x7f, 0xc9, 0x39, 0xc8, 0x4b, 0x11, 0xb0, 0x31, 0xe8, 0x10, 0x46, 0x0b, 0xcc,
+ 0x8b, 0xb0, 0x68, 0x03, 0xc2, 0x76, 0x09, 0x5e, 0xc7, 0x62, 0x7a, 0x10, 0x3f, 0x2c, 0xa1, 0x69,
+ 0x68, 0x21, 0x01, 0xa6, 0x66, 0x08, 0x73, 0xc7, 0xe7, 0xa4, 0xd4, 0x0c, 0x61, 0xee, 0xf8, 0x48,
+ 0xe6, 0xf8, 0x6b, 0x30, 0xe8, 0xef, 0x68, 0xc3, 0xa0, 0x5b, 0x18, 0x5a, 0xd0, 0x4f, 0x1f, 0xcb,
+ 0x23, 0x17, 0x4a, 0x44, 0xe4, 0x05, 0x4c, 0xa0, 0xec, 0xbf, 0x3c, 0xee, 0x0d, 0x6d, 0x20, 0x79,
+ 0xf6, 0x88, 0x65, 0x50, 0xf6, 0x1f, 0x20, 0x8f, 0xc3, 0xb0, 0xac, 0x8e, 0x7e, 0x32, 0x1a, 0x9c,
+ 0x38, 0x23, 0x3a, 0x2c, 0x2b, 0x48, 0xb4, 0x08, 0x99, 0x87, 0xb1, 0x84, 0x06, 0x8a, 0x10, 0x5d,
+ 0x98, 0xf6, 0x2e, 0x45, 0x7d, 0xe5, 0x85, 0x39, 0x51, 0x56, 0xfd, 0xae, 0x6c, 0x62, 0xd9, 0x61,
+ 0x82, 0x11, 0x54, 0x52, 0xe7, 0xa0, 0x60, 0x7c, 0xd6, 0x5c, 0x30, 0x12, 0x11, 0xb9, 0x04, 0xfd,
+ 0xb1, 0x1c, 0xca, 0xf8, 0x16, 0x3d, 0x48, 0xa0, 0x1c, 0x60, 0xc9, 0x35, 0x29, 0x3d, 0x92, 0x14,
+ 0x1f, 0xcf, 0x4f, 0x8f, 0x24, 0xcf, 0xda, 0x41, 0xa2, 0xa4, 0x6b, 0xb1, 0x48, 0xec, 0x7e, 0xaa,
+ 0xdb, 0xe4, 0x92, 0x17, 0xe6, 0x99, 0x08, 0x0c, 0xce, 0xde, 0xed, 0x0c, 0x4e, 0xf5, 0x37, 0x33,
+ 0xc9, 0x21, 0x44, 0xae, 0x27, 0xe3, 0x5b, 0xf1, 0x2c, 0xb7, 0x3e, 0x50, 0xae, 0x35, 0x88, 0x74,
+ 0x15, 0x89, 0x54, 0x95, 0xdd, 0x73, 0xa4, 0xaa, 0xdc, 0x2e, 0x23, 0x55, 0xa9, 0xff, 0x25, 0xdf,
+ 0xd5, 0xaf, 0xec, 0x50, 0x22, 0x32, 0x3c, 0xcf, 0x36, 0x4d, 0xac, 0xf6, 0x92, 0x9b, 0x30, 0xfd,
+ 0xb9, 0xdb, 0x4c, 0x4d, 0xe7, 0xa3, 0xc6, 0xd5, 0xa2, 0x94, 0xe4, 0x65, 0x18, 0xf2, 0x3f, 0x00,
+ 0x23, 0xa0, 0x49, 0x91, 0xbb, 0x82, 0x05, 0x2b, 0x9e, 0xa8, 0x58, 0x2e, 0x40, 0x9e, 0x81, 0x01,
+ 0x34, 0x57, 0x5a, 0x7a, 0xdd, 0x0f, 0x8f, 0xc7, 0xe3, 0xe9, 0xf9, 0x40, 0x39, 0xea, 0x40, 0x40,
+ 0x49, 0x3e, 0x09, 0x85, 0x48, 0xa6, 0xec, 0xab, 0x3b, 0x70, 0xc4, 0xbb, 0x22, 0x87, 0x7a, 0xe5,
+ 0x1b, 0x90, 0x78, 0x96, 0x6c, 0xc1, 0x94, 0x2c, 0xc2, 0xc9, 0x05, 0x87, 0x1a, 0xe8, 0xf2, 0x39,
+ 0x79, 0xaf, 0xe5, 0x88, 0x40, 0xbc, 0x7c, 0x00, 0xe3, 0xfa, 0xd3, 0xf2, 0xd1, 0x6c, 0x65, 0x14,
+ 0x78, 0x89, 0x51, 0x5a, 0x71, 0x66, 0x94, 0xf0, 0x96, 0xdc, 0xa4, 0x1b, 0xeb, 0xb6, 0x63, 0xf0,
+ 0x58, 0xb5, 0x62, 0x6a, 0x16, 0x82, 0x5e, 0x13, 0x28, 0xd9, 0x28, 0x89, 0x16, 0x3a, 0xfb, 0x3c,
+ 0x0c, 0xee, 0x35, 0x5c, 0xea, 0x2f, 0x67, 0x3b, 0x78, 0x68, 0xdf, 0xbf, 0x69, 0x6e, 0x82, 0x94,
+ 0x63, 0xbd, 0x1d, 0x52, 0x8e, 0x7d, 0x2b, 0xdb, 0xc1, 0xfd, 0xfc, 0xbe, 0x4e, 0x0d, 0x14, 0x08,
+ 0x23, 0x9a, 0x1a, 0x28, 0xcc, 0xca, 0x64, 0x1a, 0x9a, 0x4c, 0x14, 0x4b, 0x22, 0x56, 0xd8, 0x36,
+ 0x89, 0xd8, 0xcf, 0xe6, 0xba, 0xb9, 0xe7, 0x1f, 0xcb, 0x7e, 0x37, 0xb2, 0xbf, 0x06, 0x83, 0x81,
+ 0x64, 0x2b, 0x65, 0xb4, 0x67, 0x86, 0x83, 0xe0, 0xcc, 0x1c, 0x8c, 0x65, 0x24, 0x22, 0x72, 0x99,
+ 0xb7, 0xb5, 0x6a, 0xbe, 0xc5, 0x63, 0x8b, 0x0e, 0x8b, 0xa8, 0x91, 0xba, 0xa7, 0xd7, 0x5c, 0xf3,
+ 0x2d, 0xaa, 0x05, 0x68, 0xf5, 0xef, 0x66, 0x53, 0xdf, 0x38, 0x1c, 0xf7, 0xd1, 0x2e, 0xfa, 0x28,
+ 0x45, 0x88, 0xfc, 0x75, 0xc6, 0xb1, 0x10, 0x77, 0x21, 0xc4, 0x3f, 0xcb, 0xa6, 0xbe, 0x65, 0x39,
+ 0x16, 0xe2, 0x6e, 0x66, 0x8b, 0x27, 0x60, 0x40, 0xb3, 0xd7, 0x5d, 0xcc, 0x18, 0x2c, 0xe6, 0x0a,
+ 0x9c, 0xa8, 0x1d, 0x7b, 0xdd, 0xe5, 0xd9, 0x94, 0xb5, 0x90, 0x40, 0xfd, 0x76, 0xb6, 0xcb, 0x6b,
+ 0x9f, 0x63, 0xc1, 0xbf, 0x93, 0x4b, 0xe4, 0xaf, 0x66, 0x23, 0xaf, 0x89, 0xee, 0xeb, 0x1c, 0x9b,
+ 0xd5, 0xfa, 0x2a, 0x6d, 0xea, 0xf1, 0x1c, 0x9b, 0x2e, 0x42, 0x45, 0x8a, 0xae, 0x90, 0x44, 0xfd,
+ 0x4a, 0x36, 0xf6, 0x9c, 0xea, 0x58, 0x76, 0x3b, 0x96, 0x5d, 0xa0, 0x75, 0xe2, 0x85, 0xd8, 0xb1,
+ 0xe4, 0x76, 0x2a, 0xb9, 0xcf, 0x64, 0x63, 0x8f, 0xe9, 0xee, 0xdf, 0x74, 0x7b, 0x5f, 0xc9, 0x26,
+ 0x1f, 0x06, 0xde, 0xbf, 0x9a, 0xf4, 0x04, 0x0c, 0x08, 0x39, 0x04, 0x4b, 0x05, 0x9f, 0xf7, 0x39,
+ 0x10, 0x0f, 0x50, 0x03, 0x02, 0xf5, 0x7b, 0xb2, 0x10, 0x7d, 0xe4, 0x78, 0x9f, 0xea, 0xd0, 0xaf,
+ 0x66, 0xa3, 0xcf, 0x3b, 0xef, 0x5f, 0xfd, 0xb9, 0x02, 0x50, 0x6d, 0x2f, 0xd5, 0x45, 0x74, 0xc0,
+ 0x5e, 0xe9, 0x04, 0x3e, 0x80, 0x6a, 0x12, 0x85, 0xfa, 0x5f, 0xb3, 0xa9, 0x6f, 0x4e, 0xef, 0x5f,
+ 0x01, 0x3e, 0x8d, 0xa7, 0xe2, 0x75, 0x2b, 0x9c, 0xc8, 0xf1, 0x10, 0x92, 0x8d, 0xbf, 0x44, 0x52,
+ 0x0f, 0x9f, 0x90, 0x7c, 0x28, 0xc5, 0x5c, 0xc3, 0x90, 0xa9, 0xa1, 0xb9, 0x26, 0xdf, 0x30, 0x48,
+ 0x86, 0xdb, 0x3f, 0xcc, 0x6e, 0xf7, 0x44, 0xf7, 0x7e, 0x5e, 0x55, 0xfb, 0x16, 0xf4, 0x0d, 0x0c,
+ 0x25, 0xc5, 0x7a, 0x62, 0x88, 0xa7, 0x9c, 0x68, 0x71, 0x90, 0x7c, 0xad, 0x26, 0xa8, 0xd4, 0x3f,
+ 0xed, 0x4d, 0x7f, 0x1f, 0x7a, 0xff, 0x8a, 0xf0, 0x1c, 0xe4, 0x17, 0x74, 0x6f, 0x55, 0x68, 0x32,
+ 0xde, 0xd6, 0xb5, 0x74, 0x6f, 0x55, 0x43, 0x28, 0xb9, 0x0c, 0xfd, 0x9a, 0xbe, 0xce, 0xcf, 0x3c,
+ 0x0b, 0x61, 0x3a, 0x10, 0x47, 0x5f, 0xaf, 0xf1, 0x73, 0xcf, 0x00, 0x4d, 0xd4, 0x20, 0x1d, 0x0d,
+ 0x3f, 0xf9, 0xc6, 0x5c, 0x0e, 0x3c, 0x1d, 0x4d, 0x90, 0x84, 0xe6, 0x1c, 0xe4, 0xc7, 0x6d, 0x63,
+ 0x03, 0x3d, 0x62, 0x86, 0x78, 0x65, 0x4b, 0xb6, 0xb1, 0xa1, 0x21, 0x94, 0x7c, 0x36, 0x03, 0x7d,
+ 0xd3, 0x54, 0x37, 0xd8, 0x08, 0x19, 0xe8, 0xe6, 0x50, 0xf2, 0xd1, 0x83, 0x71, 0x28, 0x19, 0x5b,
+ 0xe5, 0x95, 0xc9, 0x8a, 0x22, 0xea, 0x27, 0x37, 0xa0, 0x7f, 0x42, 0xf7, 0xe8, 0x8a, 0xed, 0x6c,
+ 0xa0, 0x8b, 0xcc, 0x48, 0xe8, 0x0d, 0x19, 0xd1, 0x1f, 0x9f, 0x88, 0xdf, 0x8c, 0xd5, 0xc5, 0x2f,
+ 0x2d, 0x28, 0xcc, 0xc4, 0x22, 0x72, 0x5d, 0x0e, 0x86, 0x62, 0xe1, 0x49, 0x2d, 0x83, 0x94, 0x96,
+ 0xc1, 0xb1, 0xf2, 0x50, 0xfa, 0xb1, 0x32, 0x5a, 0x8f, 0xe8, 0x46, 0x87, 0x49, 0x60, 0x86, 0x71,
+ 0xd1, 0xe7, 0xd6, 0x23, 0x42, 0x31, 0x07, 0x8c, 0x26, 0x91, 0xa8, 0xdf, 0xe8, 0x85, 0xd4, 0xd7,
+ 0x64, 0xc7, 0x4a, 0x7e, 0xac, 0xe4, 0xa1, 0x92, 0x97, 0x13, 0x4a, 0x7e, 0x36, 0xf9, 0x3e, 0xf1,
+ 0x5d, 0xaa, 0xe1, 0x3f, 0x9c, 0x4f, 0xbc, 0x6e, 0xbe, 0xbf, 0x77, 0x97, 0xa1, 0xf4, 0x7a, 0xb7,
+ 0x95, 0x5e, 0x30, 0x20, 0x0a, 0xdb, 0x0e, 0x88, 0xbe, 0x9d, 0x0e, 0x88, 0xfe, 0x8e, 0x03, 0x22,
+ 0x54, 0x90, 0x81, 0x8e, 0x0a, 0x52, 0x11, 0x83, 0x06, 0xba, 0x27, 0x18, 0x3b, 0xb7, 0xb5, 0x59,
+ 0x1c, 0x61, 0xa3, 0x29, 0x35, 0xb5, 0x18, 0xb2, 0x50, 0xbf, 0x9e, 0xef, 0x12, 0x92, 0xe0, 0x50,
+ 0x74, 0xe4, 0x69, 0xc8, 0x95, 0x5a, 0x2d, 0xa1, 0x1f, 0x27, 0xa5, 0x68, 0x08, 0x1d, 0x4a, 0x31,
+ 0x6a, 0xf2, 0x02, 0xe4, 0x4a, 0x77, 0xaa, 0xf1, 0xc0, 0xea, 0xa5, 0x3b, 0x55, 0xf1, 0x25, 0x1d,
+ 0xcb, 0xde, 0xa9, 0x92, 0x17, 0xc3, 0x08, 0x67, 0xab, 0x6d, 0x6b, 0x4d, 0x6c, 0x14, 0x85, 0x27,
+ 0xad, 0xef, 0x69, 0x53, 0x67, 0x28, 0xb6, 0x5d, 0x8c, 0xd1, 0xc6, 0xb4, 0xa9, 0xb0, 0x73, 0x6d,
+ 0xea, 0xdb, 0x56, 0x9b, 0xfa, 0x77, 0xaa, 0x4d, 0x03, 0x3b, 0xd0, 0x26, 0xd8, 0x56, 0x9b, 0x06,
+ 0xf7, 0xaf, 0x4d, 0x2d, 0x38, 0x9b, 0x0c, 0x23, 0x13, 0x68, 0x84, 0x06, 0x24, 0x89, 0x15, 0x8e,
+ 0x25, 0x78, 0xf5, 0xdf, 0xe6, 0xd8, 0x1a, 0xcf, 0x49, 0x1b, 0xcf, 0xe8, 0xaa, 0xa5, 0x94, 0x56,
+ 0x7f, 0x39, 0xdb, 0x39, 0xfa, 0xcd, 0xd1, 0x9c, 0xe2, 0xbe, 0x23, 0x55, 0x4a, 0xf9, 0xe8, 0x6b,
+ 0xc4, 0xce, 0x52, 0x8e, 0xb1, 0x4d, 0x93, 0xd9, 0xd7, 0x32, 0x9d, 0x42, 0xf2, 0xec, 0x4b, 0x62,
+ 0x8f, 0x25, 0x9d, 0xd5, 0xd0, 0x05, 0xdf, 0x8d, 0x7a, 0xa9, 0xc5, 0x53, 0x9c, 0xe6, 0xf6, 0x98,
+ 0xe2, 0xf4, 0x37, 0x33, 0x70, 0xf2, 0x66, 0x7b, 0x89, 0x0a, 0xe7, 0xb4, 0xa0, 0x19, 0x6f, 0x02,
+ 0x30, 0xb0, 0x70, 0x62, 0xc9, 0xa0, 0x13, 0xcb, 0x07, 0xe4, 0x70, 0x3a, 0xb1, 0x02, 0x57, 0x42,
+ 0x6a, 0xee, 0xc0, 0x72, 0xde, 0xf7, 0xd3, 0x5c, 0x6b, 0x2f, 0xd1, 0x5a, 0xc2, 0x93, 0x45, 0xe2,
+ 0x7e, 0xf6, 0x25, 0xee, 0x01, 0xbf, 0x57, 0xa7, 0x91, 0x5f, 0xcc, 0x76, 0x8c, 0x60, 0x74, 0x64,
+ 0x13, 0xc8, 0x7c, 0x3c, 0xb5, 0x57, 0xe2, 0x89, 0x64, 0x52, 0x48, 0x62, 0x1c, 0xd3, 0xb8, 0xa4,
+ 0x0b, 0xec, 0x88, 0xa7, 0x35, 0x7a, 0x47, 0x05, 0xf6, 0xfb, 0x99, 0x8e, 0x91, 0xa6, 0x8e, 0xaa,
+ 0xc0, 0xd4, 0x7f, 0x9d, 0xf3, 0x03, 0x5c, 0xed, 0xeb, 0x13, 0x9e, 0x80, 0x01, 0x91, 0xc5, 0x23,
+ 0xea, 0x5b, 0x2b, 0x8e, 0xf2, 0xf0, 0x68, 0x38, 0x20, 0x60, 0xcb, 0xbc, 0xe4, 0xf8, 0x2b, 0xf9,
+ 0xd6, 0x4a, 0x4e, 0xbf, 0x9a, 0x44, 0xc2, 0x16, 0xf2, 0xc9, 0x7b, 0xa6, 0x87, 0x56, 0x01, 0xeb,
+ 0xcb, 0x1c, 0x5f, 0xc8, 0xe9, 0x3d, 0xd3, 0xe3, 0x36, 0x41, 0x80, 0x66, 0x8b, 0x74, 0x35, 0x4c,
+ 0xda, 0x28, 0x16, 0x69, 0x57, 0xe4, 0xae, 0x14, 0x2f, 0xc2, 0x9e, 0x80, 0x01, 0xe1, 0xb0, 0x2a,
+ 0xdc, 0x4c, 0x44, 0x6b, 0x85, 0x8b, 0x2b, 0xb6, 0x36, 0x20, 0x60, 0x1c, 0x35, 0xba, 0x12, 0x3a,
+ 0xd6, 0x21, 0x47, 0x07, 0x21, 0x9a, 0xc0, 0x90, 0x6b, 0x30, 0x52, 0xf5, 0x74, 0xcb, 0xd0, 0x1d,
+ 0x63, 0xbe, 0xed, 0xb5, 0xda, 0x9e, 0x6c, 0x94, 0xba, 0x9e, 0x61, 0xb7, 0x3d, 0x2d, 0x46, 0x41,
+ 0x3e, 0x08, 0xc3, 0x3e, 0x64, 0xd2, 0x71, 0x6c, 0x47, 0xb6, 0x3c, 0x5c, 0xcf, 0xa0, 0x8e, 0xa3,
+ 0x45, 0x09, 0xc8, 0x87, 0x60, 0xb8, 0x62, 0xdd, 0xb5, 0xeb, 0xfc, 0xe5, 0x9f, 0x36, 0x23, 0xec,
+ 0x10, 0x7c, 0x65, 0x65, 0x06, 0x88, 0x5a, 0xdb, 0x69, 0x68, 0x51, 0x42, 0x75, 0x2b, 0x9b, 0x8c,
+ 0x03, 0x76, 0xff, 0x6e, 0x5a, 0x2e, 0x47, 0x9d, 0xe9, 0xd0, 0x83, 0x14, 0x0d, 0x42, 0xd9, 0x97,
+ 0x97, 0xdb, 0x85, 0xd7, 0xa0, 0xff, 0x26, 0xdd, 0xe0, 0x7e, 0x9f, 0x85, 0xd0, 0x55, 0x78, 0x4d,
+ 0xc0, 0xe4, 0x13, 0x57, 0x9f, 0x4e, 0xfd, 0x6a, 0x36, 0x19, 0xe1, 0xec, 0xfe, 0x15, 0xf6, 0x07,
+ 0xa1, 0x0f, 0x45, 0x59, 0xf1, 0x8f, 0xfc, 0x51, 0x80, 0x28, 0xee, 0xa8, 0x07, 0xb2, 0x4f, 0xa6,
+ 0xfe, 0x64, 0x21, 0x1e, 0xf6, 0xee, 0xfe, 0x95, 0xde, 0x87, 0x61, 0x70, 0xc2, 0xb6, 0x5c, 0xd3,
+ 0xf5, 0xa8, 0x55, 0xf7, 0x15, 0xf6, 0x41, 0x66, 0x50, 0xd5, 0x43, 0xb0, 0xfc, 0xbc, 0x48, 0xa2,
+ 0xde, 0x8b, 0xf2, 0x92, 0x67, 0x61, 0x00, 0x45, 0x8e, 0x7e, 0xd2, 0x52, 0xb6, 0xee, 0x25, 0x06,
+ 0x8c, 0x3b, 0x49, 0x87, 0xa4, 0xe4, 0x16, 0xf4, 0x4f, 0xac, 0x9a, 0x0d, 0xc3, 0xa1, 0x16, 0xfa,
+ 0x0b, 0x4b, 0xc1, 0xf7, 0xa2, 0x7d, 0x79, 0x05, 0xff, 0x45, 0x5a, 0xde, 0x9c, 0xba, 0x28, 0x16,
+ 0x79, 0x60, 0x25, 0x60, 0x67, 0x7f, 0x30, 0x0b, 0x10, 0x16, 0x20, 0x0f, 0x43, 0x36, 0xc8, 0x87,
+ 0x86, 0x6e, 0x2a, 0x11, 0x0d, 0xca, 0xe2, 0x52, 0x21, 0xc6, 0x76, 0x76, 0xdb, 0xb1, 0x7d, 0x0b,
+ 0x0a, 0xfc, 0xc4, 0x0b, 0x3d, 0xc9, 0xa5, 0x48, 0x5c, 0x1d, 0x1b, 0x7c, 0x05, 0xe9, 0xf9, 0x66,
+ 0x16, 0x2d, 0xcf, 0x88, 0x57, 0x36, 0x67, 0x76, 0xb6, 0x0e, 0xbd, 0xf8, 0x17, 0xb9, 0x08, 0x79,
+ 0x94, 0x62, 0x06, 0xf7, 0xb1, 0x38, 0x4b, 0xc7, 0xe4, 0x87, 0x78, 0xd6, 0x4d, 0x13, 0xb6, 0xe5,
+ 0xb1, 0xaa, 0xb1, 0xd5, 0x43, 0x42, 0x2e, 0x02, 0x16, 0x91, 0x8b, 0x80, 0xa9, 0xff, 0x20, 0x9b,
+ 0x12, 0x90, 0xf1, 0xfe, 0x1d, 0x26, 0xcf, 0x03, 0xe0, 0x6b, 0x6d, 0x26, 0x4f, 0xff, 0x89, 0x06,
+ 0x8e, 0x12, 0x64, 0x84, 0x6a, 0x1b, 0xd9, 0x76, 0x84, 0xc4, 0xea, 0x6f, 0x67, 0x12, 0x51, 0xfc,
+ 0xf6, 0x25, 0x47, 0xd9, 0x2a, 0xcb, 0xee, 0xd1, 0x8c, 0xf5, 0xfb, 0x22, 0xb7, 0xbb, 0xbe, 0x88,
+ 0x7e, 0xcb, 0x01, 0x58, 0xa6, 0x87, 0xf9, 0x2d, 0xdf, 0xc8, 0xa6, 0xc5, 0x34, 0x3c, 0x9a, 0x2a,
+ 0x7e, 0x3d, 0x30, 0x4a, 0xf3, 0x3b, 0xc9, 0x24, 0x2e, 0xcc, 0xd4, 0x37, 0xe0, 0x44, 0x2c, 0xd2,
+ 0x9f, 0x48, 0x52, 0x78, 0xb1, 0x7b, 0xc8, 0xc0, 0xce, 0xef, 0xfc, 0x23, 0x64, 0xea, 0x7f, 0xcb,
+ 0x74, 0x8f, 0xf3, 0x78, 0xe8, 0xaa, 0x93, 0x22, 0x80, 0xdc, 0x5f, 0x8d, 0x00, 0x0e, 0x60, 0x1b,
+ 0x7c, 0xb4, 0x05, 0xf0, 0x2e, 0x99, 0x3c, 0xde, 0x69, 0x01, 0xfc, 0x64, 0x66, 0xdb, 0x30, 0x9d,
+ 0x87, 0x2d, 0x03, 0xf5, 0x5f, 0x64, 0x52, 0xc3, 0x69, 0xee, 0xab, 0x5d, 0x2f, 0x42, 0x81, 0xbb,
+ 0xd5, 0x88, 0x56, 0x49, 0x09, 0x48, 0x18, 0xb4, 0x43, 0x79, 0x51, 0x86, 0xcc, 0x40, 0x1f, 0x6f,
+ 0x83, 0x11, 0x4f, 0xd4, 0x9b, 0xd2, 0x4e, 0xa3, 0xd3, 0xe4, 0x28, 0xd0, 0xea, 0x6f, 0x65, 0x12,
+ 0xd1, 0x3d, 0x0f, 0xf1, 0xdb, 0xc2, 0xa9, 0x3a, 0xb7, 0xf3, 0xa9, 0x5a, 0xfd, 0x93, 0x6c, 0x7a,
+ 0x70, 0xd1, 0x43, 0xfc, 0x90, 0x83, 0x38, 0x4e, 0xdb, 0xdb, 0xba, 0xb5, 0x08, 0x23, 0x51, 0x59,
+ 0x88, 0x65, 0xeb, 0x42, 0x7a, 0x88, 0xd5, 0x0e, 0xad, 0x88, 0xf1, 0x50, 0xdf, 0xce, 0x24, 0xe3,
+ 0xa2, 0x1e, 0xfa, 0xfc, 0xb4, 0x37, 0x6d, 0x89, 0x7e, 0xca, 0xbb, 0x64, 0xad, 0x39, 0x88, 0x4f,
+ 0x79, 0x97, 0xac, 0x1a, 0x7b, 0xfb, 0x94, 0x9f, 0xcf, 0x76, 0x0a, 0x2b, 0x7b, 0xe8, 0x1f, 0xf4,
+ 0x31, 0x59, 0xc8, 0xbc, 0x65, 0xe2, 0xd3, 0x1e, 0xee, 0x14, 0xc7, 0xb5, 0x03, 0xcf, 0x04, 0x9f,
+ 0xbd, 0x8d, 0xf1, 0x54, 0x61, 0xbd, 0x4b, 0x14, 0xf9, 0x68, 0x08, 0xeb, 0x5d, 0x32, 0x54, 0xde,
+ 0x7d, 0xc2, 0xfa, 0xf5, 0xec, 0x4e, 0x63, 0x19, 0x1f, 0x0b, 0x2f, 0x21, 0xbc, 0x2f, 0x66, 0x93,
+ 0x31, 0xb6, 0x0f, 0x5d, 0x4c, 0x53, 0x50, 0x10, 0xd1, 0xbe, 0x3b, 0x0a, 0x87, 0xe3, 0x3b, 0x59,
+ 0x34, 0xe2, 0x3b, 0xae, 0x83, 0xb8, 0xc8, 0xd9, 0x99, 0x48, 0x38, 0xad, 0xfa, 0xed, 0x4c, 0x2c,
+ 0x20, 0xf5, 0xa1, 0x1c, 0x21, 0xec, 0x69, 0x49, 0x22, 0x2f, 0xf9, 0x87, 0x99, 0xf9, 0x58, 0x34,
+ 0xd1, 0xe0, 0x7b, 0xca, 0xd4, 0xd3, 0xcd, 0x46, 0xbc, 0xbc, 0x88, 0x09, 0xf0, 0xd5, 0x2c, 0x8c,
+ 0x25, 0x48, 0xc9, 0xc5, 0x48, 0x94, 0x1c, 0x3c, 0x96, 0x8c, 0x39, 0x8f, 0xf3, 0x78, 0x39, 0xbb,
+ 0x38, 0x49, 0xbd, 0x08, 0xf9, 0xb2, 0xbe, 0xc1, 0xbf, 0xad, 0x97, 0xb3, 0x34, 0xf4, 0x0d, 0xf9,
+ 0xc4, 0x0d, 0xf1, 0x64, 0x09, 0x1e, 0xe0, 0xf7, 0x21, 0xa6, 0x6d, 0x2d, 0x9a, 0x4d, 0x5a, 0xb1,
+ 0x66, 0xcd, 0x46, 0xc3, 0x74, 0xc5, 0xa5, 0xde, 0x13, 0x5b, 0x9b, 0xc5, 0x4b, 0x9e, 0xed, 0xe9,
+ 0x8d, 0x1a, 0xf5, 0xc9, 0x6a, 0x9e, 0xd9, 0xa4, 0x35, 0xd3, 0xaa, 0x35, 0x91, 0x52, 0x62, 0x99,
+ 0xce, 0x8a, 0x54, 0x78, 0xe0, 0xd8, 0x6a, 0x5d, 0xb7, 0x2c, 0x6a, 0x54, 0xac, 0xf1, 0x0d, 0x8f,
+ 0xf2, 0xcb, 0xc0, 0x1c, 0x3f, 0x12, 0xe4, 0x6f, 0xc3, 0x39, 0x9a, 0x31, 0x5e, 0x62, 0x04, 0x5a,
+ 0x4a, 0x21, 0xf5, 0x37, 0xf2, 0x29, 0xb1, 0xc8, 0x8f, 0x90, 0xfa, 0xf8, 0x3d, 0x9d, 0xdf, 0xa6,
+ 0xa7, 0xaf, 0x42, 0xdf, 0x6d, 0xea, 0xe0, 0xf9, 0x16, 0xbf, 0x60, 0x40, 0x67, 0xf6, 0xbb, 0x1c,
+ 0x24, 0xdf, 0xd0, 0x08, 0x2a, 0xd2, 0x80, 0xb3, 0x8b, 0xac, 0x9b, 0xd2, 0x3b, 0xb3, 0xb0, 0x87,
+ 0xce, 0xec, 0xc2, 0x8f, 0xbc, 0x0e, 0x67, 0x10, 0x9b, 0xd2, 0xad, 0x7d, 0x58, 0x15, 0x86, 0x9f,
+ 0xe2, 0x55, 0xa5, 0x77, 0x6e, 0xa7, 0xf2, 0xe4, 0x63, 0x30, 0x14, 0x0c, 0x10, 0x93, 0xba, 0xe2,
+ 0xe6, 0xa2, 0xcb, 0x38, 0xe3, 0xb1, 0xdd, 0x18, 0x18, 0x5d, 0xc8, 0xa2, 0xf1, 0xc1, 0x22, 0xbc,
+ 0xd4, 0x7f, 0x9e, 0xe9, 0x16, 0x13, 0xfd, 0xd0, 0x67, 0xe5, 0x97, 0xa0, 0xcf, 0xe0, 0x1f, 0x25,
+ 0x74, 0xaa, 0x7b, 0xd4, 0x74, 0x4e, 0xaa, 0xf9, 0x65, 0xd4, 0x3f, 0xce, 0x74, 0x0d, 0xc5, 0x7e,
+ 0xd4, 0x3f, 0xef, 0x8b, 0xb9, 0x0e, 0x9f, 0x27, 0x26, 0xd1, 0xcb, 0x30, 0x6a, 0x86, 0x91, 0x73,
+ 0x6b, 0x61, 0xf8, 0x29, 0xed, 0x84, 0x04, 0xc7, 0xd1, 0x75, 0x1d, 0x4e, 0xfb, 0x8e, 0x8f, 0x8e,
+ 0xef, 0x21, 0xe6, 0xd6, 0xda, 0x8e, 0xc9, 0xc7, 0xa5, 0x76, 0xca, 0x8d, 0xb9, 0x8f, 0xb9, 0xb7,
+ 0x1c, 0x93, 0x55, 0xa0, 0x7b, 0xab, 0xd4, 0xd2, 0x6b, 0xeb, 0xb6, 0xb3, 0x86, 0x01, 0x44, 0xf9,
+ 0xe0, 0xd4, 0x4e, 0x70, 0xf8, 0x1d, 0x1f, 0x4c, 0x1e, 0x85, 0xe1, 0x95, 0x46, 0x9b, 0x06, 0x21,
+ 0x1b, 0xf9, 0x5d, 0x9f, 0x36, 0xc4, 0x80, 0xc1, 0x0d, 0xc9, 0x79, 0x00, 0x24, 0xf2, 0x30, 0x50,
+ 0x3e, 0x5e, 0xec, 0x69, 0x03, 0x0c, 0xb2, 0x28, 0xba, 0xeb, 0x2c, 0xd7, 0x6a, 0x2e, 0xa4, 0x5a,
+ 0xc3, 0xb6, 0x56, 0x6a, 0x1e, 0x75, 0x9a, 0xd8, 0x50, 0x74, 0x66, 0xd0, 0x4e, 0x23, 0x05, 0x5e,
+ 0x9d, 0xb8, 0x33, 0xb6, 0xb5, 0xb2, 0x48, 0x9d, 0x26, 0x6b, 0xea, 0x13, 0x40, 0x44, 0x53, 0x1d,
+ 0x3c, 0xf4, 0xe0, 0x1f, 0x87, 0xde, 0x0c, 0x9a, 0xf8, 0x08, 0x7e, 0x1a, 0x82, 0x1f, 0x56, 0x84,
+ 0x41, 0x1e, 0xb7, 0x8e, 0x0b, 0x0d, 0x5d, 0x18, 0x34, 0xe0, 0x20, 0x94, 0xd7, 0x69, 0x10, 0xde,
+ 0x15, 0xdc, 0xab, 0x5b, 0x13, 0xbf, 0xd4, 0xcf, 0xe5, 0xd2, 0xa2, 0xc7, 0xef, 0x4b, 0xd1, 0xc2,
+ 0x69, 0x35, 0xbb, 0xab, 0x69, 0xf5, 0x84, 0xd5, 0x6e, 0xd6, 0xf4, 0x56, 0xab, 0xb6, 0x6c, 0x36,
+ 0xf0, 0x59, 0x15, 0x2e, 0x7c, 0xda, 0xb0, 0xd5, 0x6e, 0x96, 0x5a, 0xad, 0x29, 0x0e, 0x24, 0x8f,
+ 0xc3, 0x18, 0xa3, 0xc3, 0x4e, 0x0a, 0x28, 0xf3, 0x48, 0xc9, 0x18, 0x60, 0xe0, 0x57, 0x9f, 0xf6,
+ 0x41, 0xe8, 0x17, 0x3c, 0xf9, 0x5a, 0xd5, 0xab, 0xf5, 0x71, 0x66, 0x2e, 0xeb, 0xb9, 0x80, 0x0d,
+ 0x9f, 0x5c, 0x7b, 0xb5, 0x01, 0xbf, 0x3c, 0x86, 0x37, 0xb6, 0xda, 0x4d, 0x1e, 0x11, 0xab, 0x0f,
+ 0x91, 0xc1, 0x6f, 0x72, 0x11, 0x46, 0x18, 0x97, 0x40, 0x60, 0x3c, 0x22, 0x6c, 0xaf, 0x16, 0x83,
+ 0x92, 0x6b, 0x70, 0x2a, 0x02, 0xe1, 0x36, 0x28, 0x7f, 0x26, 0xd0, 0xab, 0xa5, 0xe2, 0xd4, 0xb7,
+ 0x73, 0xc9, 0xe0, 0xf8, 0x87, 0xb2, 0x36, 0x4e, 0x03, 0x88, 0xdc, 0x17, 0xe1, 0x05, 0x4d, 0xe0,
+ 0xb5, 0x1c, 0x62, 0x3a, 0xf0, 0x90, 0xca, 0x92, 0xcb, 0xd0, 0xcf, 0xbf, 0xa8, 0x52, 0x16, 0x6b,
+ 0x26, 0xba, 0x19, 0xb9, 0x2d, 0x73, 0x79, 0x19, 0x7d, 0x92, 0x02, 0x34, 0xb9, 0x08, 0x7d, 0xe5,
+ 0xb9, 0x6a, 0xb5, 0x34, 0xe7, 0xdf, 0x36, 0xe2, 0x1b, 0x05, 0xc3, 0x72, 0x6b, 0xae, 0x6e, 0xb9,
+ 0x9a, 0x8f, 0x24, 0x8f, 0x42, 0xa1, 0xb2, 0x80, 0x64, 0xfc, 0xe5, 0xdd, 0xe0, 0xd6, 0x66, 0xb1,
+ 0xcf, 0x6c, 0x71, 0x2a, 0x81, 0xc2, 0x7a, 0x6f, 0x57, 0xca, 0xd2, 0x95, 0x3b, 0xaf, 0xf7, 0xae,
+ 0x69, 0xe0, 0xd5, 0xa5, 0x16, 0xa0, 0xc9, 0x33, 0x30, 0x54, 0xa5, 0x8e, 0xa9, 0x37, 0xe6, 0xda,
+ 0xb8, 0xdd, 0xe0, 0x6e, 0x46, 0x63, 0x5b, 0x9b, 0xc5, 0x61, 0x17, 0xe1, 0x35, 0x0b, 0x11, 0x5a,
+ 0x84, 0x8c, 0x9c, 0x83, 0xfc, 0xb4, 0x69, 0xf9, 0x6e, 0xf0, 0xe8, 0x27, 0xbd, 0x6a, 0x5a, 0x9e,
+ 0x86, 0x50, 0xf5, 0x3f, 0x64, 0xd3, 0xd3, 0x13, 0x1c, 0xc2, 0xd8, 0xda, 0xe3, 0x6d, 0x61, 0x4c,
+ 0x09, 0xf2, 0xfb, 0x50, 0x82, 0x65, 0x38, 0x51, 0x32, 0x9a, 0xa6, 0x55, 0xc2, 0x9f, 0xee, 0xec,
+ 0x54, 0x09, 0x07, 0xa4, 0xf4, 0x0c, 0x2b, 0x86, 0x16, 0xdf, 0xc3, 0x63, 0xb6, 0x32, 0x54, 0x4d,
+ 0xe7, 0xb8, 0x5a, 0x73, 0x59, 0xaf, 0xd5, 0x79, 0x64, 0x7f, 0x2d, 0xce, 0x54, 0xfd, 0x81, 0xec,
+ 0x36, 0x19, 0x15, 0xee, 0x47, 0xe9, 0xab, 0x5f, 0xca, 0x76, 0x4f, 0x6a, 0x71, 0x5f, 0x0a, 0xe5,
+ 0xcf, 0xb2, 0x29, 0x29, 0x26, 0xf6, 0x25, 0x89, 0xcb, 0xd0, 0xcf, 0xd9, 0x04, 0xee, 0x9a, 0x38,
+ 0xe3, 0x70, 0x65, 0xc5, 0x99, 0xce, 0x47, 0x93, 0x39, 0x38, 0x55, 0x5a, 0x5e, 0xa6, 0x75, 0x2f,
+ 0x8c, 0xde, 0x3b, 0x17, 0x06, 0xdb, 0xe4, 0xd1, 0x4a, 0x05, 0x3e, 0x8c, 0xfe, 0x8b, 0x41, 0x25,
+ 0x52, 0xcb, 0x91, 0x45, 0x38, 0x1d, 0x87, 0x57, 0xb9, 0xa9, 0x97, 0x97, 0x02, 0x98, 0x26, 0x38,
+ 0xf2, 0xff, 0xb4, 0x0e, 0x65, 0xd3, 0x5a, 0x89, 0xd3, 0x69, 0x6f, 0xb7, 0x56, 0xe2, 0xdc, 0x9a,
+ 0x5a, 0x4e, 0xfd, 0x6a, 0x4e, 0xce, 0xc4, 0x71, 0xff, 0x3a, 0xd6, 0x5c, 0x8f, 0xb8, 0xd3, 0xee,
+ 0x74, 0xc8, 0x3c, 0x23, 0x22, 0x45, 0x18, 0x6d, 0xc7, 0xf7, 0x3c, 0x0b, 0x5e, 0xaa, 0x23, 0x50,
+ 0xf6, 0x21, 0x0b, 0x28, 0x49, 0x05, 0xf2, 0x25, 0x67, 0x85, 0x9b, 0x31, 0xdb, 0x3d, 0x9e, 0xd1,
+ 0x9d, 0x15, 0x37, 0xfd, 0xf1, 0x0c, 0x63, 0xa1, 0xfe, 0x58, 0xb6, 0x53, 0x16, 0x8b, 0xa3, 0xea,
+ 0x10, 0x73, 0x80, 0xf3, 0x49, 0x9a, 0x70, 0x8e, 0xb6, 0xb7, 0xd0, 0xc1, 0x09, 0xe7, 0xf1, 0x59,
+ 0x1e, 0x50, 0xf8, 0xa6, 0x69, 0x19, 0xe4, 0x41, 0x78, 0xe0, 0x56, 0x75, 0x52, 0xab, 0xdd, 0xac,
+ 0xcc, 0x95, 0x6b, 0xb7, 0xe6, 0xaa, 0x0b, 0x93, 0x13, 0x95, 0xa9, 0xca, 0x64, 0x79, 0xb4, 0x87,
+ 0x9c, 0x84, 0x13, 0x21, 0x6a, 0xfa, 0xd6, 0x6c, 0x69, 0x6e, 0x34, 0x43, 0xc6, 0x60, 0x38, 0x04,
+ 0x8e, 0xcf, 0x2f, 0x8e, 0x66, 0x1f, 0x7f, 0x3f, 0x0c, 0xe2, 0x8e, 0x89, 0xaf, 0xfc, 0x64, 0x08,
+ 0xfa, 0xe7, 0xc7, 0xab, 0x93, 0xda, 0x6d, 0x64, 0x02, 0x50, 0x28, 0x4f, 0xce, 0x31, 0x86, 0x99,
+ 0xc7, 0xff, 0x73, 0x06, 0xa0, 0x3a, 0xb5, 0xb8, 0x20, 0x08, 0x07, 0xa1, 0xaf, 0x32, 0x77, 0xbb,
+ 0x34, 0x53, 0x61, 0x74, 0xfd, 0x90, 0x9f, 0x5f, 0x98, 0x64, 0x35, 0x0c, 0x40, 0xef, 0xc4, 0xcc,
+ 0x7c, 0x75, 0x72, 0x34, 0xcb, 0x80, 0xda, 0x64, 0xa9, 0x3c, 0x9a, 0x63, 0xc0, 0x3b, 0x5a, 0x65,
+ 0x71, 0x72, 0x34, 0xcf, 0xfe, 0x9c, 0xa9, 0x2e, 0x96, 0x16, 0x47, 0x7b, 0xd9, 0x9f, 0x53, 0xf8,
+ 0x67, 0x81, 0x31, 0xab, 0x4e, 0x2e, 0xe2, 0x8f, 0x3e, 0xd6, 0x84, 0x29, 0xff, 0x57, 0x3f, 0x43,
+ 0x31, 0xd6, 0xe5, 0x8a, 0x36, 0x3a, 0xc0, 0x7e, 0x30, 0x96, 0xec, 0x07, 0xb0, 0xc6, 0x69, 0x93,
+ 0xb3, 0xf3, 0xb7, 0x27, 0x47, 0x07, 0x19, 0xaf, 0xd9, 0x9b, 0x0c, 0x3c, 0xc4, 0xfe, 0xd4, 0x66,
+ 0xd9, 0x9f, 0xc3, 0x8c, 0x93, 0x36, 0x59, 0x9a, 0x59, 0x28, 0x2d, 0x4e, 0x8f, 0x8e, 0xb0, 0xf6,
+ 0x20, 0xcf, 0x13, 0xbc, 0xe4, 0x5c, 0x69, 0x76, 0x72, 0x74, 0x54, 0xd0, 0x94, 0x67, 0x2a, 0x73,
+ 0x37, 0x47, 0xc7, 0xb0, 0x21, 0xaf, 0xcf, 0xe2, 0x0f, 0xc2, 0x0a, 0xe0, 0x5f, 0x27, 0x1f, 0xff,
+ 0x04, 0x14, 0xe6, 0xab, 0x68, 0xdf, 0x9e, 0x81, 0x93, 0xf3, 0xd5, 0xda, 0xe2, 0xeb, 0x0b, 0x93,
+ 0x31, 0x79, 0x8f, 0xc1, 0xb0, 0x8f, 0x98, 0xa9, 0xcc, 0xdd, 0xfa, 0x28, 0x97, 0xb6, 0x0f, 0x9a,
+ 0x2d, 0x4d, 0xcc, 0x57, 0x47, 0xb3, 0xac, 0x57, 0x7c, 0xd0, 0x9d, 0xca, 0x5c, 0x79, 0xfe, 0x4e,
+ 0x75, 0x34, 0xf7, 0xf8, 0x5d, 0x3f, 0x95, 0xe9, 0xbc, 0x63, 0xae, 0x98, 0x16, 0x39, 0x0f, 0x0f,
+ 0x96, 0x27, 0x6f, 0x57, 0x26, 0x26, 0x6b, 0xf3, 0x5a, 0xe5, 0x46, 0x65, 0x2e, 0x56, 0xd3, 0x03,
+ 0x30, 0x16, 0x45, 0x97, 0x16, 0x2a, 0xa3, 0x19, 0x72, 0x1a, 0x48, 0x14, 0xfc, 0x6a, 0x69, 0x76,
+ 0x6a, 0x34, 0x4b, 0x14, 0x38, 0x15, 0x85, 0x57, 0xe6, 0x16, 0x6f, 0xcd, 0x4d, 0x8e, 0xe6, 0x1e,
+ 0xff, 0xe9, 0x0c, 0x3c, 0x90, 0xfa, 0x64, 0x9f, 0xa8, 0x70, 0x61, 0x72, 0xa6, 0x54, 0x5d, 0xac,
+ 0x4c, 0x54, 0x27, 0x4b, 0xda, 0xc4, 0x74, 0x6d, 0xa2, 0xb4, 0x38, 0x79, 0x63, 0x5e, 0x7b, 0xbd,
+ 0x76, 0x63, 0x72, 0x6e, 0x52, 0x2b, 0xcd, 0x8c, 0xf6, 0x90, 0x47, 0xa1, 0xd8, 0x81, 0xa6, 0x3a,
+ 0x39, 0x71, 0x4b, 0xab, 0x2c, 0xbe, 0x3e, 0x9a, 0x21, 0x8f, 0xc0, 0xf9, 0x8e, 0x44, 0xec, 0xf7,
+ 0x68, 0x96, 0x5c, 0x80, 0xb3, 0x9d, 0x48, 0x5e, 0x9b, 0x19, 0xcd, 0x3d, 0xfe, 0x23, 0x19, 0x20,
+ 0xc9, 0x37, 0xd7, 0xe4, 0x61, 0x38, 0xc7, 0xf4, 0xa2, 0xd6, 0xb9, 0x81, 0x8f, 0xc0, 0xf9, 0x54,
+ 0x0a, 0xa9, 0x79, 0x45, 0x78, 0xa8, 0x03, 0x89, 0x68, 0xdc, 0x39, 0x50, 0xd2, 0x09, 0xb0, 0x69,
+ 0xbf, 0x92, 0x81, 0x07, 0x52, 0x8d, 0x6d, 0x72, 0x09, 0xde, 0x57, 0x2a, 0xcf, 0xb2, 0xbe, 0x99,
+ 0x58, 0xac, 0xcc, 0xcf, 0x55, 0x6b, 0xb3, 0x53, 0xa5, 0x1a, 0xd3, 0xbe, 0x5b, 0xd5, 0x58, 0x6f,
+ 0x5e, 0x04, 0xb5, 0x0b, 0xe5, 0xc4, 0x74, 0x69, 0xee, 0x06, 0x1b, 0x7e, 0xe4, 0x7d, 0xf0, 0x70,
+ 0x47, 0xba, 0xc9, 0xb9, 0xd2, 0xf8, 0xcc, 0x64, 0x79, 0x34, 0x4b, 0x1e, 0x83, 0x47, 0x3a, 0x52,
+ 0x95, 0x2b, 0x55, 0x4e, 0x96, 0x1b, 0x2f, 0xbf, 0xfd, 0x2f, 0x2f, 0xf4, 0xbc, 0xfd, 0xcd, 0x0b,
+ 0x99, 0xdf, 0xfb, 0xe6, 0x85, 0xcc, 0x9f, 0x7c, 0xf3, 0x42, 0xe6, 0x63, 0xd7, 0x76, 0xf3, 0x96,
+ 0x9e, 0x4f, 0x5b, 0x4b, 0x05, 0x5c, 0xf8, 0x9e, 0xfe, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x47,
+ 0x8b, 0xb0, 0xe1, 0x46, 0x53, 0x01, 0x00,
}
func (m *Metadata) Marshal() (dAtA []byte, err error) {
@@ -14610,6 +14624,20 @@ func (m *UserMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if len(m.BotInstanceID) > 0 {
+ i -= len(m.BotInstanceID)
+ copy(dAtA[i:], m.BotInstanceID)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.BotInstanceID)))
+ i--
+ dAtA[i] = 0x62
+ }
+ if len(m.BotName) > 0 {
+ i -= len(m.BotName)
+ copy(dAtA[i:], m.BotName)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.BotName)))
+ i--
+ dAtA[i] = 0x5a
+ }
if m.UserKind != 0 {
i = encodeVarintEvents(dAtA, i, uint64(m.UserKind))
i--
@@ -23435,6 +23463,13 @@ func (m *BotJoin) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if len(m.BotInstanceID) > 0 {
+ i -= len(m.BotInstanceID)
+ copy(dAtA[i:], m.BotInstanceID)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.BotInstanceID)))
+ i--
+ dAtA[i] = 0x4a
+ }
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -28426,6 +28461,15 @@ func (m *Identity) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if len(m.BotInstanceID) > 0 {
+ i -= len(m.BotInstanceID)
+ copy(dAtA[i:], m.BotInstanceID)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.BotInstanceID)))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xea
+ }
if m.DeviceExtensions != nil {
{
size, err := m.DeviceExtensions.MarshalToSizedBuffer(dAtA[:i])
@@ -33933,6 +33977,14 @@ func (m *UserMetadata) Size() (n int) {
if m.UserKind != 0 {
n += 1 + sovEvents(uint64(m.UserKind))
}
+ l = len(m.BotName)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.BotInstanceID)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -37115,6 +37167,10 @@ func (m *BotJoin) Size() (n int) {
}
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = len(m.BotInstanceID)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -39648,6 +39704,10 @@ func (m *Identity) Size() (n int) {
l = m.DeviceExtensions.Size()
n += 2 + l + sovEvents(uint64(l))
}
+ l = len(m.BotInstanceID)
+ if l > 0 {
+ n += 2 + l + sovEvents(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -42219,6 +42279,70 @@ func (m *UserMetadata) Unmarshal(dAtA []byte) error {
break
}
}
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BotName = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotInstanceID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BotInstanceID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -68802,6 +68926,38 @@ func (m *BotJoin) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotInstanceID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BotInstanceID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -78718,6 +78874,38 @@ func (m *Identity) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 29:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotInstanceID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BotInstanceID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
diff --git a/api/types/types.pb.go b/api/types/types.pb.go
index 6ebe51e4ca35e..81f11a97f9b7e 100644
--- a/api/types/types.pb.go
+++ b/api/types/types.pb.go
@@ -13144,10 +13144,20 @@ type RegisterUsingTokenRequest struct {
// Expires is a desired time of the expiry of user certificates returned by
// registration. This only applies to bot joining, and will be ignored by
// node joining.
- Expires *time.Time `protobuf:"bytes,12,opt,name=Expires,proto3,stdtime" json:"expires,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Expires *time.Time `protobuf:"bytes,12,opt,name=Expires,proto3,stdtime" json:"expires,omitempty"`
+ // BotInstanceID is a trusted instance identifier for a Machine ID bot,
+ // provided when rejoining. This parameters may only be provided by the join
+ // service and is ignored otherwise; bots should otherwise rejoin with their
+ // existing client certificate to prove their instance identity.
+ BotInstanceID string `protobuf:"bytes,13,opt,name=BotInstanceID,proto3" json:"bot_instance_id"`
+ // BotGeneration is a trusted generation counter value for Machine ID bots,
+ // provided to Auth by the Join Service when bots rejoin via a streamed/gRPC
+ // join method. Rejoining bots supply this value via a client certificate
+ // extension; it is ignored from other sources.
+ BotGeneration int32 `protobuf:"varint,14,opt,name=BotGeneration,proto3" json:"bot_generation"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *RegisterUsingTokenRequest) Reset() { *m = RegisterUsingTokenRequest{} }
@@ -19160,1639 +19170,1643 @@ func init() {
func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) }
var fileDescriptor_9198ee693835762e = []byte{
- // 26104 bytes of a gzipped FileDescriptorProto
+ // 26162 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6d, 0x70, 0x5c, 0x59,
0x76, 0x18, 0x36, 0xfd, 0x01, 0xa0, 0x71, 0xf0, 0xd5, 0xb8, 0x00, 0x49, 0x10, 0x33, 0x1c, 0x70,
0x1e, 0x67, 0x38, 0xe4, 0x7c, 0x90, 0x4b, 0x70, 0x87, 0xbb, 0xb3, 0xf3, 0xd9, 0xe8, 0x06, 0x89,
0x26, 0x41, 0xa0, 0xf7, 0x35, 0x48, 0xec, 0x68, 0x76, 0xf7, 0xed, 0x43, 0xf7, 0x05, 0xf0, 0x06,
0xdd, 0xfd, 0x7a, 0xdf, 0x7b, 0x4d, 0x12, 0x2b, 0x3b, 0x5e, 0xc9, 0x96, 0x37, 0x8a, 0xad, 0x2f,
0x7b, 0x65, 0xad, 0x53, 0xb6, 0x4a, 0xa5, 0xb2, 0x1c, 0x25, 0xb1, 0x55, 0x29, 0xc9, 0x2e, 0x3b,
- 0xa5, 0x58, 0xb1, 0x52, 0x2a, 0x95, 0x22, 0x97, 0x13, 0xa5, 0xe2, 0x54, 0x92, 0x8d, 0x0a, 0x8a,
- 0x2c, 0x97, 0x2b, 0xc5, 0x4a, 0x52, 0x72, 0x94, 0x72, 0x25, 0x9b, 0x52, 0x92, 0xba, 0xe7, 0xde,
+ 0xa5, 0x58, 0xb1, 0x52, 0x2a, 0x95, 0x22, 0x97, 0x13, 0xa5, 0x92, 0x54, 0x92, 0x8d, 0x0a, 0x8a,
+ 0x2c, 0x97, 0x2b, 0xc5, 0x4a, 0x52, 0x72, 0x94, 0x72, 0x25, 0x9b, 0x92, 0x93, 0xba, 0xe7, 0xde,
0xfb, 0xde, 0xbd, 0xef, 0xbd, 0x6e, 0x34, 0x66, 0x38, 0x96, 0xb8, 0xc9, 0x1f, 0x12, 0x7d, 0xee,
- 0x39, 0xe7, 0xde, 0x77, 0x3f, 0xcf, 0x3d, 0xf7, 0x7c, 0xc0, 0x0b, 0x01, 0x6d, 0xd1, 0xae, 0xeb,
- 0x05, 0x57, 0x5b, 0x74, 0xcf, 0x6e, 0x1c, 0x5e, 0x0d, 0x0e, 0xbb, 0xd4, 0xe7, 0xff, 0x5e, 0xe9,
- 0x7a, 0x6e, 0xe0, 0x92, 0x11, 0xfc, 0xb1, 0x38, 0xbf, 0xe7, 0xee, 0xb9, 0x08, 0xb9, 0xca, 0xfe,
- 0xe2, 0x85, 0x8b, 0x4b, 0x7b, 0xae, 0xbb, 0xd7, 0xa2, 0x57, 0xf1, 0xd7, 0x4e, 0x6f, 0xf7, 0x6a,
- 0xe0, 0xb4, 0xa9, 0x1f, 0xd8, 0xed, 0xae, 0x40, 0xb8, 0x1c, 0x56, 0x60, 0x07, 0x01, 0x2b, 0x09,
- 0x1c, 0xb7, 0x73, 0xf5, 0xc1, 0x35, 0xf5, 0xa7, 0x40, 0x7d, 0x3d, 0xbd, 0x2d, 0x0f, 0x3d, 0xbb,
- 0xdb, 0xa5, 0x5e, 0xf4, 0x07, 0x47, 0x37, 0xfe, 0x41, 0x0e, 0xc6, 0xef, 0x50, 0xda, 0x2d, 0xb5,
- 0x9c, 0x07, 0x94, 0x5c, 0x80, 0xfc, 0x86, 0xdd, 0xa6, 0x0b, 0x99, 0xf3, 0x99, 0x4b, 0xe3, 0x2b,
- 0x33, 0x8f, 0x8f, 0x96, 0x26, 0x7c, 0xea, 0x3d, 0xa0, 0x9e, 0xd5, 0xb1, 0xdb, 0xd4, 0xc4, 0x42,
- 0xf2, 0x2a, 0x8c, 0xb3, 0xff, 0xfd, 0xae, 0xdd, 0xa0, 0x0b, 0x59, 0xc4, 0x9c, 0x7a, 0x7c, 0xb4,
- 0x34, 0xde, 0x91, 0x40, 0x33, 0x2a, 0x27, 0x17, 0x61, 0x6c, 0x9d, 0xda, 0x3e, 0xad, 0x56, 0x16,
- 0x72, 0xe7, 0x33, 0x97, 0x72, 0x2b, 0x93, 0x8f, 0x8f, 0x96, 0x0a, 0x2d, 0x06, 0xb2, 0x9c, 0xa6,
- 0x29, 0x0b, 0x49, 0x15, 0xc6, 0x56, 0x1f, 0x75, 0x1d, 0x8f, 0xfa, 0x0b, 0xf9, 0xf3, 0x99, 0x4b,
- 0x13, 0xcb, 0x8b, 0x57, 0x78, 0xa7, 0x5c, 0x91, 0x9d, 0x72, 0x65, 0x4b, 0x76, 0xca, 0xca, 0xdc,
- 0x6f, 0x1d, 0x2d, 0x3d, 0xf3, 0xf8, 0x68, 0x69, 0x8c, 0x72, 0x92, 0x9f, 0xfc, 0xbd, 0xa5, 0x8c,
- 0x29, 0xe9, 0xc9, 0xdb, 0x90, 0xdf, 0x3a, 0xec, 0xd2, 0x85, 0xf1, 0xf3, 0x99, 0x4b, 0xd3, 0xcb,
- 0xcf, 0x5f, 0xe1, 0xc3, 0x10, 0x7e, 0x64, 0xf4, 0x17, 0xc3, 0x5a, 0x29, 0x3c, 0x3e, 0x5a, 0xca,
- 0x33, 0x14, 0x13, 0xa9, 0xc8, 0xeb, 0x30, 0xba, 0xe6, 0xfa, 0x41, 0xb5, 0xb2, 0x00, 0xf8, 0x69,
- 0xa7, 0x1e, 0x1f, 0x2d, 0xcd, 0xee, 0xbb, 0x7e, 0x60, 0x39, 0xcd, 0xd7, 0xdc, 0xb6, 0x13, 0xd0,
- 0x76, 0x37, 0x38, 0x34, 0x05, 0x92, 0xf1, 0x08, 0xa6, 0x34, 0x7e, 0x64, 0x02, 0xc6, 0xee, 0x6d,
- 0xdc, 0xd9, 0xd8, 0xdc, 0xde, 0x28, 0x3e, 0x43, 0x0a, 0x90, 0xdf, 0xd8, 0xac, 0xac, 0x16, 0x33,
- 0x64, 0x0c, 0x72, 0xa5, 0x5a, 0xad, 0x98, 0x25, 0x93, 0x50, 0xa8, 0x94, 0xb6, 0x4a, 0x2b, 0xa5,
- 0xfa, 0x6a, 0x31, 0x47, 0xe6, 0x60, 0x66, 0xbb, 0xba, 0x51, 0xd9, 0xdc, 0xae, 0x5b, 0x95, 0xd5,
- 0xfa, 0x9d, 0xad, 0xcd, 0x5a, 0x31, 0x4f, 0xa6, 0x01, 0xee, 0xdc, 0x5b, 0x59, 0x35, 0x37, 0x56,
- 0xb7, 0x56, 0xeb, 0xc5, 0x11, 0x32, 0x0f, 0x45, 0x49, 0x62, 0xd5, 0x57, 0xcd, 0xfb, 0xd5, 0xf2,
- 0x6a, 0x71, 0xd4, 0xf8, 0x47, 0x39, 0x28, 0xdc, 0xa5, 0x81, 0xdd, 0xb4, 0x03, 0x9b, 0x3c, 0xa7,
- 0x0d, 0x1c, 0x7e, 0x93, 0x32, 0x62, 0x17, 0x92, 0x23, 0x36, 0xf2, 0xf8, 0x68, 0x29, 0xf3, 0xba,
- 0x3a, 0x52, 0x6f, 0xc1, 0x44, 0x85, 0xfa, 0x0d, 0xcf, 0xe9, 0xb2, 0xd9, 0x84, 0xa3, 0x35, 0xbe,
- 0x72, 0xf6, 0xf1, 0xd1, 0xd2, 0xa9, 0x66, 0x04, 0x56, 0x7a, 0x40, 0xc5, 0x26, 0x55, 0x18, 0x5d,
- 0xb7, 0x77, 0x68, 0xcb, 0x5f, 0x18, 0x39, 0x9f, 0xbb, 0x34, 0xb1, 0xfc, 0xac, 0xe8, 0x75, 0xd9,
- 0xc0, 0x2b, 0xbc, 0x74, 0xb5, 0x13, 0x78, 0x87, 0x2b, 0xf3, 0x8f, 0x8f, 0x96, 0x8a, 0x2d, 0x04,
- 0xa8, 0x3d, 0xca, 0x51, 0x48, 0x3d, 0x9a, 0x09, 0xa3, 0xc7, 0xce, 0x84, 0x73, 0xbf, 0x75, 0xb4,
- 0x94, 0x61, 0x23, 0x24, 0x66, 0x42, 0xc4, 0x4f, 0x9f, 0x13, 0x06, 0x64, 0xab, 0x95, 0x85, 0x31,
- 0x9c, 0x81, 0xe4, 0xf1, 0xd1, 0xd2, 0xa4, 0x3a, 0x98, 0x0b, 0x19, 0x33, 0x5b, 0xad, 0x90, 0x65,
- 0x28, 0x98, 0xf4, 0x81, 0xe3, 0xb3, 0xaf, 0x2f, 0xe0, 0xd7, 0x9f, 0x7e, 0x7c, 0xb4, 0x44, 0x3c,
- 0x01, 0x53, 0x9a, 0x1a, 0xe2, 0x2d, 0xbe, 0x09, 0x13, 0xca, 0x97, 0x91, 0x22, 0xe4, 0x0e, 0xe8,
- 0x21, 0x1f, 0x05, 0x93, 0xfd, 0x49, 0xe6, 0x61, 0xe4, 0x81, 0xdd, 0xea, 0x89, 0x6e, 0x37, 0xf9,
- 0x8f, 0x2f, 0x64, 0x3f, 0x9f, 0x31, 0xfe, 0x4a, 0x1e, 0x0a, 0xa6, 0xcb, 0xd7, 0x2e, 0xb9, 0x0c,
- 0x23, 0xf5, 0xc0, 0x0e, 0xe4, 0x00, 0xce, 0x3d, 0x3e, 0x5a, 0x9a, 0x61, 0xeb, 0x9a, 0x2a, 0xb5,
- 0x72, 0x0c, 0x86, 0x5a, 0xdb, 0xb7, 0x7d, 0x39, 0x90, 0x88, 0xda, 0x65, 0x00, 0x15, 0x15, 0x31,
- 0xc8, 0x45, 0xc8, 0xdf, 0x75, 0x9b, 0x54, 0x8c, 0x25, 0xfb, 0xee, 0xe9, 0xb6, 0xdb, 0x54, 0x11,
- 0xb1, 0x9c, 0xbc, 0x06, 0xe3, 0xe5, 0x9e, 0xe7, 0xd1, 0x0e, 0x9b, 0xf6, 0x79, 0x44, 0x9e, 0x7e,
- 0x7c, 0xb4, 0x04, 0x0d, 0x0e, 0x64, 0x0b, 0x35, 0x42, 0x60, 0x03, 0x54, 0x0f, 0x6c, 0x2f, 0xa0,
- 0xcd, 0x85, 0x91, 0xa1, 0x06, 0x88, 0x2d, 0xd5, 0x59, 0x9f, 0x93, 0xc4, 0x07, 0x48, 0x70, 0x22,
- 0x6b, 0x30, 0x71, 0xcb, 0xb3, 0x1b, 0xb4, 0x46, 0x3d, 0xc7, 0x6d, 0xe2, 0xc8, 0xe7, 0x56, 0x2e,
- 0x3e, 0x3e, 0x5a, 0x3a, 0xbd, 0xc7, 0xc0, 0x56, 0x17, 0xe1, 0x11, 0xf5, 0xf7, 0x8e, 0x96, 0x0a,
- 0x95, 0x9e, 0x87, 0xbd, 0x67, 0xaa, 0xa4, 0xe4, 0x6b, 0x6c, 0x48, 0xfc, 0x00, 0xbb, 0x96, 0x36,
- 0x71, 0xcc, 0x07, 0x37, 0xd1, 0x10, 0x4d, 0x3c, 0xdd, 0xb2, 0xfd, 0xc0, 0xf2, 0x38, 0x5d, 0xac,
- 0x9d, 0x2a, 0x4b, 0xb2, 0x09, 0x85, 0x7a, 0x63, 0x9f, 0x36, 0x7b, 0x2d, 0x8a, 0x13, 0x65, 0x62,
- 0xf9, 0x8c, 0x98, 0xee, 0x72, 0x3c, 0x65, 0xf1, 0xca, 0xa2, 0xe0, 0x4d, 0x7c, 0x01, 0x51, 0x67,
- 0x91, 0xc4, 0xfa, 0x42, 0xe1, 0x3b, 0x3f, 0xb7, 0xf4, 0xcc, 0x37, 0x7f, 0xf7, 0xfc, 0x33, 0xc6,
- 0x3f, 0xc8, 0x42, 0x31, 0xce, 0x84, 0xec, 0xc2, 0xd4, 0xbd, 0x6e, 0xd3, 0x0e, 0x68, 0xb9, 0xe5,
- 0xd0, 0x4e, 0xe0, 0xe3, 0x24, 0x19, 0xfc, 0x4d, 0x2f, 0x8a, 0x7a, 0x17, 0x7a, 0x48, 0x68, 0x35,
- 0x38, 0x65, 0xec, 0xab, 0x74, 0xb6, 0x51, 0x3d, 0x75, 0xdc, 0xf3, 0x7d, 0x9c, 0x61, 0x27, 0xab,
- 0x87, 0x9f, 0x16, 0x7d, 0xea, 0x11, 0x6c, 0xc5, 0x04, 0xea, 0x34, 0x77, 0x0e, 0x71, 0x66, 0x0e,
- 0x3f, 0x81, 0x18, 0x49, 0xca, 0x04, 0x62, 0x60, 0xe3, 0x5f, 0x64, 0x60, 0xda, 0xa4, 0xbe, 0xdb,
- 0xf3, 0x1a, 0x74, 0x8d, 0xda, 0x4d, 0xea, 0xb1, 0xe9, 0x7f, 0xc7, 0xe9, 0x34, 0xc5, 0x9a, 0xc2,
- 0xe9, 0x7f, 0xe0, 0x74, 0xd4, 0x5d, 0x1c, 0xcb, 0xc9, 0x67, 0x60, 0xac, 0xde, 0xdb, 0x41, 0xd4,
- 0x6c, 0xb4, 0xee, 0xfd, 0xde, 0x8e, 0x15, 0x43, 0x97, 0x68, 0xe4, 0x2a, 0x8c, 0xdd, 0xa7, 0x9e,
- 0x1f, 0xed, 0x93, 0x78, 0x4a, 0x3c, 0xe0, 0x20, 0x95, 0x40, 0x60, 0x91, 0x5b, 0xd1, 0x5e, 0x2d,
- 0xce, 0xb7, 0x99, 0xd8, 0x0e, 0x19, 0x4d, 0x95, 0xb6, 0x80, 0xa8, 0x53, 0x45, 0x62, 0x19, 0x3f,
- 0x95, 0x85, 0x62, 0xc5, 0x0e, 0xec, 0x1d, 0xdb, 0x17, 0xfd, 0x79, 0xff, 0x3a, 0xdb, 0xfd, 0x95,
- 0x0f, 0xc5, 0xdd, 0x9f, 0xb5, 0xfc, 0x63, 0x7f, 0xde, 0x4b, 0xf1, 0xcf, 0x9b, 0x60, 0x87, 0xad,
- 0xf8, 0xbc, 0xe8, 0xa3, 0xde, 0x39, 0xfe, 0xa3, 0x8a, 0xe2, 0xa3, 0x0a, 0xf2, 0xa3, 0xa2, 0x4f,
- 0x21, 0xef, 0x40, 0xbe, 0xde, 0xa5, 0x0d, 0xb1, 0x89, 0xc8, 0x13, 0x43, 0xff, 0x38, 0x86, 0x70,
- 0xff, 0xfa, 0xca, 0xa4, 0x60, 0x93, 0xf7, 0xbb, 0xb4, 0x61, 0x22, 0x99, 0xb2, 0x68, 0xfe, 0x61,
- 0x0e, 0xe6, 0xd3, 0xc8, 0xd4, 0xef, 0x18, 0x1d, 0xf0, 0x1d, 0x97, 0xa0, 0xc0, 0x4e, 0x73, 0x76,
- 0x60, 0xe2, 0x76, 0x31, 0xce, 0x85, 0x94, 0x7d, 0x01, 0x33, 0xc3, 0x52, 0x72, 0x21, 0x14, 0x0e,
- 0x0a, 0x11, 0x3f, 0x21, 0x1c, 0x48, 0x91, 0x80, 0x8d, 0xb5, 0x5c, 0xc2, 0x28, 0x43, 0x44, 0xdd,
- 0x22, 0xc1, 0xd1, 0x58, 0x7b, 0x02, 0xa2, 0x1d, 0x2e, 0xf2, 0x50, 0x58, 0x85, 0x82, 0xfc, 0xac,
- 0x85, 0x49, 0x64, 0x34, 0x1b, 0xeb, 0xa4, 0xfb, 0xd7, 0xf9, 0x60, 0x36, 0xc5, 0x6f, 0x95, 0x8d,
- 0xc4, 0x21, 0xd7, 0xa1, 0x50, 0xf3, 0xdc, 0x47, 0x87, 0xd5, 0x8a, 0xbf, 0x30, 0x75, 0x3e, 0x77,
- 0x69, 0x7c, 0xe5, 0xcc, 0xe3, 0xa3, 0xa5, 0xb9, 0x2e, 0x83, 0x59, 0x4e, 0x53, 0x3d, 0x83, 0x43,
- 0xc4, 0xdb, 0xf9, 0x42, 0xa6, 0x98, 0xbd, 0x9d, 0x2f, 0x64, 0x8b, 0xb9, 0xdb, 0xf9, 0x42, 0xae,
- 0x98, 0xbf, 0x9d, 0x2f, 0xe4, 0x8b, 0x23, 0xb7, 0xf3, 0x85, 0x91, 0xe2, 0xe8, 0xed, 0x7c, 0x61,
- 0xbc, 0x08, 0xb7, 0xf3, 0x85, 0x89, 0xe2, 0xa4, 0x26, 0x07, 0x20, 0x83, 0xc0, 0x6d, 0xb8, 0x2d,
- 0x33, 0x77, 0xcf, 0xac, 0x9a, 0xa3, 0xe5, 0x52, 0x99, 0x7a, 0x81, 0x99, 0x2b, 0x6d, 0xd7, 0xcd,
- 0xa9, 0xca, 0x61, 0xc7, 0x6e, 0x3b, 0x0d, 0x7e, 0x60, 0x9a, 0xb9, 0x5b, 0xe5, 0x9a, 0x51, 0x82,
- 0xe9, 0xe8, 0x5b, 0xd6, 0x1d, 0x3f, 0x20, 0x57, 0x61, 0x5c, 0x42, 0xd8, 0x46, 0x97, 0x4b, 0xfd,
- 0x6a, 0x33, 0xc2, 0x31, 0x7e, 0x33, 0x0b, 0x10, 0x95, 0x3c, 0xa5, 0x6b, 0xe1, 0x73, 0xda, 0x5a,
- 0x38, 0x15, 0x5f, 0x0b, 0x7d, 0x57, 0x01, 0x79, 0x0f, 0x46, 0x99, 0x58, 0xd0, 0x93, 0xc2, 0xd2,
- 0x99, 0x38, 0x29, 0x16, 0xde, 0xbf, 0xbe, 0x32, 0x2d, 0x88, 0x47, 0x7d, 0x84, 0x98, 0x82, 0x4c,
- 0x59, 0x46, 0x3f, 0x3b, 0x16, 0x0d, 0x86, 0x58, 0x40, 0x97, 0x20, 0x1c, 0x50, 0xd1, 0xa1, 0xb8,
- 0x32, 0xba, 0x72, 0x90, 0xc3, 0x52, 0x72, 0x16, 0xd8, 0x80, 0x8b, 0x4e, 0x1d, 0x7b, 0x7c, 0xb4,
- 0x94, 0xeb, 0x79, 0x0e, 0x4e, 0x02, 0x72, 0x15, 0xc4, 0x34, 0x10, 0x1d, 0xc8, 0x66, 0xdf, 0x6c,
- 0xc3, 0xb6, 0x1a, 0xd4, 0x0b, 0x34, 0x21, 0x4c, 0xa0, 0x91, 0x2e, 0xe8, 0x53, 0x65, 0x21, 0x8f,
- 0xd3, 0xe0, 0x52, 0x6a, 0xaf, 0x5c, 0xd1, 0x50, 0xb9, 0x80, 0x79, 0x5e, 0x9e, 0x4a, 0x4d, 0x5e,
- 0x66, 0x25, 0x84, 0x4d, 0xbd, 0x02, 0x72, 0x1d, 0xd8, 0x0c, 0x15, 0xbd, 0x0f, 0xa2, 0x9e, 0xd2,
- 0x76, 0x7d, 0xe5, 0x94, 0xe0, 0x34, 0x65, 0x3f, 0x54, 0xc9, 0x19, 0x36, 0x79, 0x0b, 0xd8, 0x14,
- 0x16, 0xfd, 0x4e, 0x04, 0xd1, 0xad, 0x72, 0xad, 0xdc, 0x72, 0x7b, 0xcd, 0xfa, 0x17, 0xd7, 0x23,
- 0xe2, 0xbd, 0x46, 0x57, 0x25, 0xbe, 0x55, 0xae, 0x91, 0xb7, 0x60, 0xa4, 0xf4, 0x8d, 0x9e, 0x47,
- 0x85, 0x7c, 0x32, 0x29, 0xeb, 0x64, 0xb0, 0x95, 0x33, 0x82, 0x70, 0xc6, 0x66, 0x3f, 0x55, 0xb9,
- 0x0e, 0xcb, 0x59, 0xcd, 0x5b, 0xeb, 0x75, 0x21, 0x7b, 0x90, 0x58, 0xb7, 0x6c, 0xad, 0x2b, 0xcd,
- 0x0e, 0xb4, 0xaf, 0x66, 0x54, 0xe4, 0x2a, 0x64, 0x4b, 0x15, 0xbc, 0x1c, 0x4d, 0x2c, 0x8f, 0xcb,
- 0x6a, 0x2b, 0x2b, 0xf3, 0x82, 0x64, 0xd2, 0x56, 0x97, 0x41, 0xb6, 0x54, 0x21, 0x2b, 0x30, 0x72,
- 0xf7, 0xb0, 0xfe, 0xc5, 0x75, 0xb1, 0x99, 0xcd, 0xc9, 0x79, 0xcd, 0x60, 0x9b, 0xb8, 0xec, 0xfd,
- 0xa8, 0xc5, 0xed, 0x43, 0xff, 0xeb, 0x2d, 0xb5, 0xc5, 0x88, 0x46, 0x6a, 0x30, 0x5e, 0x6a, 0xb6,
- 0x9d, 0xce, 0x3d, 0x9f, 0x7a, 0x0b, 0x13, 0xc8, 0x67, 0x21, 0xd6, 0xee, 0xb0, 0x7c, 0x65, 0xe1,
- 0xf1, 0xd1, 0xd2, 0xbc, 0xcd, 0x7e, 0x5a, 0x3d, 0x9f, 0x7a, 0x0a, 0xb7, 0x88, 0x09, 0xa9, 0x01,
- 0xdc, 0x75, 0x3b, 0x7b, 0x6e, 0x29, 0x68, 0xd9, 0x7e, 0x6c, 0x7b, 0x8c, 0x0a, 0x42, 0xf1, 0xe1,
- 0x54, 0x9b, 0xc1, 0x2c, 0x9b, 0x01, 0x15, 0x86, 0x0a, 0x0f, 0x72, 0x13, 0x46, 0x37, 0x3d, 0xbb,
- 0xd1, 0xa2, 0x0b, 0x53, 0xc8, 0x6d, 0x5e, 0x70, 0xe3, 0x40, 0xf9, 0xa5, 0x0b, 0x82, 0x61, 0xd1,
- 0x45, 0xb0, 0x7a, 0x81, 0xe1, 0x88, 0x8b, 0xdb, 0x40, 0x92, 0x73, 0x32, 0xe5, 0x6a, 0xf0, 0xaa,
- 0x7a, 0x35, 0x88, 0x16, 0x7d, 0xd9, 0x6d, 0xb7, 0xed, 0x4e, 0x13, 0x69, 0xef, 0x2f, 0xab, 0x37,
- 0x86, 0xaf, 0xc3, 0x6c, 0xa2, 0xb3, 0x8e, 0xb9, 0xf9, 0xbd, 0x0b, 0x33, 0x15, 0xba, 0x6b, 0xf7,
- 0x5a, 0x41, 0x78, 0x92, 0xf0, 0x25, 0x8a, 0x77, 0xb0, 0x26, 0x2f, 0xb2, 0xe4, 0xf1, 0x61, 0xc6,
- 0x91, 0x8d, 0x77, 0x60, 0x4a, 0xfb, 0x7c, 0x76, 0x55, 0x28, 0xf5, 0x9a, 0x4e, 0x80, 0x03, 0x99,
- 0x89, 0xae, 0x0a, 0x36, 0x03, 0xe2, 0x70, 0x99, 0x11, 0x82, 0xf1, 0xb7, 0x54, 0x69, 0x45, 0xec,
- 0x44, 0xec, 0x86, 0x2d, 0xf6, 0x83, 0x4c, 0x24, 0x3b, 0x25, 0xf6, 0x83, 0x70, 0x37, 0xb8, 0xcc,
- 0xd7, 0x66, 0x36, 0xb1, 0x36, 0x27, 0xc4, 0x48, 0xe4, 0xec, 0x87, 0x3e, 0x5f, 0x91, 0xe1, 0x4c,
- 0xcd, 0x7d, 0xfc, 0x99, 0xfa, 0x1e, 0x4c, 0xde, 0xb5, 0x3b, 0xf6, 0x1e, 0x6d, 0xb2, 0x2f, 0xe0,
- 0x7b, 0xcf, 0xf8, 0xca, 0xb3, 0x8f, 0x8f, 0x96, 0xce, 0xb4, 0x39, 0x1c, 0xbf, 0x52, 0x9d, 0x44,
- 0x1a, 0x01, 0xb9, 0x26, 0x57, 0xf6, 0x48, 0xca, 0xca, 0x9e, 0x12, 0xb5, 0x8f, 0xe0, 0xca, 0x16,
- 0xeb, 0xd9, 0xf8, 0xdf, 0x0b, 0xf8, 0x8d, 0xe4, 0x35, 0x18, 0x35, 0xe9, 0x1e, 0x3b, 0x6a, 0x32,
- 0xd1, 0x20, 0x79, 0x08, 0x51, 0x3b, 0x86, 0xe3, 0xa0, 0x9c, 0x41, 0x9b, 0xfe, 0xbe, 0xb3, 0x1b,
- 0x88, 0xde, 0x09, 0xe5, 0x0c, 0x01, 0x56, 0xe4, 0x0c, 0x01, 0xd1, 0x2f, 0xb1, 0x1c, 0xc6, 0x76,
- 0x3f, 0xb3, 0x52, 0x17, 0x9d, 0x26, 0x7b, 0xd8, 0xac, 0x28, 0xdb, 0x88, 0xa7, 0x49, 0x09, 0x0c,
- 0x9b, 0xdc, 0x80, 0xf1, 0x52, 0xa3, 0xe1, 0xf6, 0x94, 0x3b, 0x23, 0x5f, 0xb7, 0x1c, 0xa8, 0x6b,
- 0x4b, 0x22, 0x54, 0x52, 0x87, 0x89, 0x55, 0x76, 0xd1, 0x72, 0xca, 0x76, 0x63, 0x5f, 0x76, 0x92,
- 0xdc, 0xc3, 0x94, 0x92, 0x68, 0xe5, 0x52, 0x04, 0x36, 0x18, 0x50, 0x55, 0x3f, 0x28, 0xb8, 0x64,
- 0x0b, 0x26, 0xea, 0xb4, 0xe1, 0xd1, 0xa0, 0x1e, 0xb8, 0x1e, 0x8d, 0x6d, 0xc9, 0x4a, 0xc9, 0xca,
- 0xf3, 0xf2, 0xae, 0xe7, 0x23, 0xd0, 0xf2, 0x19, 0x54, 0xe5, 0xaa, 0x20, 0x73, 0xa1, 0xbd, 0xed,
- 0x7a, 0x87, 0x95, 0x15, 0xb1, 0x4d, 0x47, 0x67, 0x3a, 0x07, 0xab, 0x42, 0x3b, 0x83, 0x34, 0x77,
- 0x74, 0xa1, 0x9d, 0x63, 0xe1, 0x48, 0x55, 0xea, 0x28, 0x5b, 0x89, 0x4d, 0x7b, 0x26, 0xea, 0x65,
- 0x04, 0x2b, 0x23, 0xd5, 0xf4, 0x51, 0x32, 0xd3, 0x46, 0x4a, 0x60, 0x91, 0x2e, 0x10, 0x39, 0x6a,
- 0x5c, 0xd0, 0x6d, 0x51, 0xdf, 0x17, 0x7b, 0xf9, 0xd9, 0xd8, 0xe0, 0x47, 0x08, 0x2b, 0x2f, 0x09,
- 0xe6, 0xe7, 0xe4, 0x34, 0x10, 0xf7, 0x34, 0x56, 0xa8, 0xd4, 0x93, 0xc2, 0x9b, 0xbc, 0x09, 0xb0,
- 0xfa, 0x28, 0xa0, 0x5e, 0xc7, 0x6e, 0x85, 0x2a, 0x31, 0x54, 0x0a, 0x51, 0x01, 0xd5, 0x07, 0x5a,
- 0x41, 0x26, 0x65, 0x98, 0x2a, 0xf9, 0x7e, 0xaf, 0x4d, 0x4d, 0xb7, 0x45, 0x4b, 0xe6, 0x06, 0xee,
- 0xfb, 0xe3, 0x2b, 0xe7, 0x1e, 0x1f, 0x2d, 0x9d, 0xb5, 0xb1, 0xc0, 0xf2, 0xdc, 0x16, 0xb5, 0x6c,
- 0x4f, 0x9d, 0xdd, 0x3a, 0x0d, 0xd9, 0x04, 0xd8, 0xec, 0xd2, 0x4e, 0x9d, 0xda, 0x5e, 0x63, 0x3f,
- 0xb6, 0xcd, 0x47, 0x05, 0x2b, 0xcf, 0x89, 0x2f, 0x9c, 0x77, 0xbb, 0xb4, 0xe3, 0x23, 0x4c, 0x6d,
- 0x55, 0x84, 0x49, 0xb6, 0x61, 0xa6, 0x5a, 0xba, 0x5b, 0x73, 0x5b, 0x4e, 0xe3, 0x50, 0x48, 0x4e,
- 0xd3, 0xa8, 0x28, 0x3c, 0x2d, 0xb8, 0xc6, 0x4a, 0xf9, 0xf6, 0xe4, 0xd8, 0x6d, 0xab, 0x8b, 0x50,
- 0x4b, 0xc8, 0x4f, 0x71, 0x2e, 0xe4, 0x03, 0x36, 0x07, 0x7d, 0x26, 0x0c, 0x6e, 0xd9, 0x7b, 0xfe,
- 0xc2, 0x8c, 0xa6, 0x07, 0x2b, 0x6d, 0xd7, 0xaf, 0x28, 0xa5, 0x5c, 0x4c, 0x59, 0xe4, 0x13, 0x11,
- 0xa1, 0x56, 0x60, 0xef, 0xf9, 0xfa, 0x44, 0x0c, 0xb1, 0x17, 0xdf, 0x85, 0x62, 0x9c, 0xf8, 0x24,
- 0xaa, 0xa6, 0xdb, 0xf9, 0xc2, 0x54, 0x71, 0x5a, 0x69, 0xf1, 0xea, 0x23, 0xc7, 0x0f, 0x7c, 0xe3,
- 0x07, 0xb5, 0x55, 0xc3, 0x56, 0xf4, 0x1d, 0x7a, 0x58, 0xf3, 0xe8, 0xae, 0xf3, 0x48, 0x6c, 0x40,
- 0xb8, 0xa2, 0x0f, 0xe8, 0xa1, 0xd5, 0x45, 0xa8, 0xba, 0xa2, 0x43, 0x54, 0xf2, 0x59, 0x28, 0xdc,
- 0xb9, 0x5b, 0xbf, 0x43, 0x0f, 0xab, 0x15, 0x71, 0xb8, 0x70, 0xb2, 0xb6, 0x6f, 0x31, 0x52, 0x6d,
- 0x7e, 0x84, 0x98, 0xc6, 0x4a, 0xb4, 0x7b, 0xb1, 0x9a, 0xcb, 0xad, 0x9e, 0x1f, 0x50, 0xaf, 0x5a,
- 0x51, 0x6b, 0x6e, 0x70, 0x60, 0x6c, 0x2f, 0x09, 0x51, 0x8d, 0x7f, 0x98, 0xc5, 0x9d, 0x8b, 0x4d,
- 0xd2, 0x6a, 0xc7, 0x0f, 0xec, 0x4e, 0x83, 0x86, 0x0c, 0x70, 0x92, 0x3a, 0x02, 0x1a, 0x9b, 0xa4,
- 0x11, 0xb2, 0x5e, 0x75, 0x76, 0xe8, 0xaa, 0x59, 0x95, 0x52, 0xdb, 0x20, 0x54, 0xdb, 0xa2, 0x4a,
- 0x4f, 0x40, 0x63, 0x55, 0x46, 0xc8, 0xe4, 0x22, 0x8c, 0x55, 0x4b, 0x77, 0x4b, 0xbd, 0x60, 0x1f,
- 0xf7, 0xcd, 0x02, 0x97, 0xa9, 0xd9, 0x0c, 0xb3, 0x7b, 0xc1, 0xbe, 0x29, 0x0b, 0xc9, 0x55, 0xbc,
- 0xab, 0x74, 0x68, 0xc0, 0x95, 0xaa, 0xe2, 0xa0, 0xf4, 0x39, 0x28, 0x76, 0x55, 0x61, 0x20, 0xf2,
- 0x0a, 0x8c, 0xdc, 0xaf, 0x95, 0xab, 0x15, 0x71, 0xd9, 0xc5, 0xd3, 0xe3, 0x41, 0xb7, 0xa1, 0xb7,
- 0x84, 0xa3, 0x18, 0xbf, 0x9e, 0x89, 0xf6, 0x24, 0x72, 0x51, 0x93, 0x21, 0x50, 0x51, 0xc2, 0x64,
- 0x08, 0x55, 0x51, 0x82, 0xd2, 0x84, 0x09, 0xa4, 0xdc, 0xf3, 0x03, 0xb7, 0xbd, 0xda, 0x69, 0x76,
- 0x5d, 0xa7, 0x13, 0x20, 0x15, 0xef, 0x35, 0xe3, 0xf1, 0xd1, 0xd2, 0xf3, 0x0d, 0x2c, 0xb5, 0xa8,
- 0x28, 0xb6, 0x62, 0x5c, 0x52, 0xa8, 0x3f, 0x41, 0x47, 0x1a, 0xbf, 0x9d, 0xd5, 0xce, 0x12, 0xd6,
- 0x3c, 0x93, 0x76, 0x5b, 0x4e, 0x03, 0xaf, 0xcf, 0xb7, 0x3c, 0xb7, 0xd7, 0x0d, 0xa7, 0x03, 0x36,
- 0xcf, 0x8b, 0x4a, 0xad, 0x3d, 0x56, 0xac, 0xf3, 0x4e, 0xa1, 0x26, 0xef, 0xc3, 0x24, 0x3b, 0xd6,
- 0xc5, 0x4f, 0x7f, 0x21, 0x8b, 0x23, 0xf1, 0x1c, 0xaa, 0xbc, 0x7c, 0xea, 0x85, 0x6c, 0x34, 0x79,
- 0x40, 0xa5, 0x20, 0x4d, 0x58, 0xd8, 0xf2, 0xec, 0x8e, 0xef, 0x04, 0xab, 0x9d, 0x86, 0x77, 0x88,
- 0x62, 0xc8, 0x6a, 0xc7, 0xde, 0x69, 0xd1, 0x26, 0x7e, 0x6e, 0x61, 0xe5, 0xd2, 0xe3, 0xa3, 0xa5,
- 0x17, 0x03, 0x8e, 0x63, 0xd1, 0x10, 0xc9, 0xa2, 0x1c, 0x4b, 0xe1, 0xdc, 0x97, 0x13, 0x13, 0x5b,
- 0x64, 0xb7, 0xe2, 0xe3, 0x07, 0x3f, 0x91, 0x51, 0x6c, 0x09, 0x47, 0x83, 0x6d, 0x45, 0x6a, 0x33,
- 0x55, 0x02, 0xe3, 0x5f, 0x67, 0xa2, 0xd3, 0x8e, 0xbc, 0x0d, 0x13, 0x62, 0xaa, 0x2b, 0xf3, 0x02,
- 0xb7, 0x2b, 0xb9, 0x2e, 0x62, 0x23, 0xab, 0xa2, 0xb3, 0x4b, 0x76, 0xa9, 0xbc, 0xae, 0xcc, 0x0d,
- 0xbc, 0x64, 0xdb, 0x8d, 0x56, 0x9c, 0x4a, 0xa2, 0xb1, 0x49, 0xb0, 0xb5, 0x5e, 0xd7, 0x7b, 0x05,
- 0x27, 0x41, 0xd0, 0xf2, 0x53, 0xba, 0x41, 0x41, 0xfe, 0xe4, 0x1f, 0xfe, 0xdf, 0x66, 0xd2, 0x0e,
- 0x55, 0xb2, 0x02, 0x53, 0xdb, 0xae, 0x77, 0x80, 0xe3, 0xab, 0x74, 0x02, 0x8e, 0xfc, 0x43, 0x59,
- 0x10, 0xff, 0x20, 0x9d, 0x44, 0x6d, 0x9b, 0xd2, 0x1b, 0x7a, 0xdb, 0x62, 0x1c, 0x34, 0x02, 0x36,
- 0x0e, 0x21, 0xc7, 0x70, 0x75, 0xe0, 0x38, 0x44, 0x4d, 0xd0, 0xa6, 0xb0, 0x8a, 0x6e, 0xfc, 0xa3,
- 0x8c, 0x7a, 0x78, 0xb2, 0x4e, 0xae, 0xb8, 0x6d, 0xdb, 0xe9, 0x28, 0x9f, 0xc3, 0xdf, 0x77, 0x10,
- 0x1a, 0x6f, 0x89, 0x82, 0x4c, 0xae, 0x43, 0x81, 0xff, 0x0a, 0x37, 0x49, 0x54, 0x21, 0x09, 0x42,
- 0x7d, 0x87, 0x97, 0x88, 0x89, 0x91, 0xc9, 0x9d, 0x74, 0x64, 0xbe, 0x99, 0x81, 0x09, 0xe5, 0x3e,
- 0xcd, 0xf6, 0xea, 0x9a, 0xe7, 0x7e, 0x44, 0x1b, 0x81, 0x7e, 0x4c, 0x74, 0x39, 0x30, 0xb6, 0x57,
- 0x87, 0xa8, 0xb1, 0xe3, 0x21, 0x7b, 0x82, 0xe3, 0xc1, 0xf8, 0x57, 0x19, 0x21, 0xcd, 0x0f, 0xbd,
- 0x47, 0xea, 0xfb, 0x59, 0xf6, 0x24, 0x07, 0xc3, 0xfb, 0x30, 0x62, 0xd2, 0xa6, 0xe3, 0x0b, 0x49,
- 0x7c, 0x56, 0xbd, 0x39, 0x60, 0x41, 0x74, 0x79, 0xf1, 0xd8, 0x4f, 0x75, 0x57, 0xc7, 0x72, 0x26,
- 0x72, 0x55, 0xfd, 0x9b, 0x2d, 0xfa, 0xc8, 0xe1, 0x33, 0x59, 0x1c, 0x30, 0x28, 0x72, 0x39, 0xbe,
- 0xb5, 0xcb, 0x4a, 0x84, 0xec, 0xa7, 0xce, 0x5a, 0x8d, 0xc6, 0xf8, 0x00, 0x20, 0xaa, 0x92, 0xdc,
- 0x81, 0xa2, 0x58, 0xdb, 0x4e, 0x67, 0x8f, 0x8b, 0x0f, 0xa2, 0x0f, 0x96, 0x1e, 0x1f, 0x2d, 0x3d,
- 0xdb, 0x08, 0xcb, 0x84, 0x7c, 0xa4, 0xf0, 0x4d, 0x10, 0x1a, 0xff, 0x5e, 0x16, 0xb2, 0x25, 0x1c,
- 0x90, 0x3b, 0xf4, 0x30, 0xb0, 0x77, 0x6e, 0x3a, 0x2d, 0x6d, 0x26, 0x1e, 0x20, 0xd4, 0xda, 0x75,
- 0xb4, 0x8b, 0xb5, 0x82, 0xcc, 0x66, 0xe2, 0x1d, 0x6f, 0xe7, 0x0d, 0x24, 0x54, 0x66, 0xe2, 0x81,
- 0xb7, 0xf3, 0x46, 0x9c, 0x2c, 0x44, 0x24, 0x06, 0x8c, 0xf2, 0x59, 0x29, 0xe6, 0x20, 0x3c, 0x3e,
- 0x5a, 0x1a, 0xe5, 0x93, 0xd7, 0x14, 0x25, 0xe4, 0x2c, 0xe4, 0xea, 0xb5, 0x0d, 0xb1, 0x7d, 0xa0,
- 0x02, 0xcb, 0xef, 0x76, 0x4c, 0x06, 0x63, 0x75, 0xae, 0x57, 0x4a, 0x35, 0xbc, 0xb2, 0x8e, 0x44,
- 0x75, 0xb6, 0x9a, 0x76, 0x37, 0x7e, 0x69, 0x0d, 0x11, 0xc9, 0x3b, 0x30, 0x71, 0xa7, 0x52, 0x5e,
- 0x73, 0x7d, 0xbe, 0xf4, 0x47, 0xa3, 0xc9, 0x7f, 0xd0, 0x6c, 0x58, 0xa8, 0x33, 0x8e, 0xef, 0xa1,
- 0x0a, 0xbe, 0xf1, 0x23, 0x59, 0x98, 0x50, 0x34, 0x3a, 0xe4, 0xb3, 0xe2, 0x29, 0x2f, 0xa3, 0xc9,
- 0xaa, 0x0a, 0x06, 0x2b, 0xe5, 0xd7, 0xff, 0xb6, 0xdb, 0xa4, 0xe2, 0x61, 0x2f, 0xba, 0x6a, 0x67,
- 0x87, 0xb9, 0x6a, 0xbf, 0x09, 0xc0, 0xe7, 0x00, 0x36, 0x59, 0x39, 0x8b, 0x15, 0x23, 0x00, 0x75,
- 0x5c, 0x22, 0x64, 0x72, 0x1f, 0xe6, 0xb6, 0xbc, 0x9e, 0x1f, 0xd4, 0x0f, 0xfd, 0x80, 0xb6, 0x19,
- 0xb7, 0x9a, 0xeb, 0xb6, 0xc4, 0xfc, 0x7b, 0xf1, 0xf1, 0xd1, 0xd2, 0xf9, 0x80, 0x15, 0x5b, 0x3e,
- 0x96, 0x63, 0x03, 0xac, 0xae, 0xeb, 0xaa, 0x17, 0xf0, 0x34, 0x06, 0x86, 0x09, 0x93, 0xea, 0xf5,
- 0x9d, 0x6d, 0xcb, 0xe2, 0xd9, 0x43, 0x28, 0x65, 0x95, 0x6d, 0x59, 0xb4, 0x32, 0xf9, 0x0c, 0xa3,
- 0x93, 0x18, 0x9f, 0x55, 0x55, 0x47, 0xc3, 0x2e, 0x6c, 0xe3, 0x87, 0x33, 0xd1, 0x36, 0x72, 0xff,
- 0x1a, 0x79, 0x0b, 0x46, 0xf9, 0x33, 0x93, 0x78, 0x8d, 0x3b, 0x15, 0x5e, 0xbf, 0xd4, 0x37, 0x28,
- 0xae, 0xb3, 0xfd, 0x1d, 0xfe, 0x48, 0xfd, 0x8c, 0x29, 0x48, 0x42, 0x75, 0xaf, 0xae, 0xf9, 0x91,
- 0xdc, 0x51, 0xb1, 0x79, 0x2d, 0x4d, 0xdd, 0x6b, 0xfc, 0x46, 0x1e, 0xa6, 0x75, 0x34, 0xf5, 0x2d,
- 0x2a, 0x33, 0xd4, 0x5b, 0xd4, 0xfb, 0x50, 0x60, 0xfd, 0xe1, 0x34, 0xa8, 0x14, 0x67, 0x5e, 0x44,
- 0x25, 0xb8, 0x80, 0x69, 0x6f, 0xac, 0xc0, 0x87, 0x83, 0xdd, 0xc6, 0xcc, 0x90, 0x8a, 0x2c, 0x2b,
- 0x0f, 0x26, 0xb9, 0xe8, 0x84, 0x97, 0x0f, 0x26, 0xea, 0x7a, 0x08, 0x9f, 0x4e, 0x5e, 0x87, 0x51,
- 0x26, 0xd5, 0x86, 0xca, 0x02, 0x6c, 0x25, 0x13, 0x78, 0x63, 0x76, 0x15, 0x1c, 0x89, 0x6c, 0x43,
- 0x61, 0xdd, 0xf6, 0x83, 0x3a, 0xa5, 0x9d, 0x21, 0x5e, 0x99, 0x97, 0x44, 0x57, 0xcd, 0xe1, 0x13,
- 0xae, 0x4f, 0x69, 0x27, 0xf6, 0x4c, 0x18, 0x32, 0x23, 0x5f, 0x01, 0x28, 0xbb, 0x9d, 0xc0, 0x73,
- 0x5b, 0xeb, 0xee, 0xde, 0xc2, 0x28, 0xde, 0xd2, 0x9e, 0x8f, 0x0d, 0x40, 0x84, 0xc0, 0x2f, 0x6a,
- 0xa1, 0x2a, 0xa2, 0xc1, 0x0b, 0xac, 0x96, 0xbb, 0xa7, 0xae, 0x83, 0x08, 0x9f, 0xdc, 0x84, 0xa2,
- 0xbc, 0x02, 0xdf, 0xeb, 0xee, 0x79, 0x38, 0x41, 0xc6, 0xa2, 0x63, 0x9b, 0x3e, 0x0a, 0xac, 0x9e,
- 0x80, 0xab, 0x3b, 0x65, 0x9c, 0x86, 0x7c, 0x19, 0xce, 0xc4, 0x61, 0x72, 0x94, 0x0b, 0x91, 0x40,
- 0xab, 0xb2, 0x4b, 0x99, 0xf7, 0xfd, 0x58, 0x18, 0xdf, 0xcb, 0xc2, 0x99, 0x3e, 0x1f, 0xcb, 0xd6,
- 0x03, 0x1e, 0xd7, 0xca, 0x7a, 0x88, 0x9d, 0xd2, 0xdc, 0x50, 0xe6, 0x3c, 0x9a, 0x54, 0xb0, 0x19,
- 0x9c, 0x5f, 0x29, 0xc6, 0x4d, 0x2a, 0xd0, 0xa0, 0xe2, 0x36, 0xe4, 0xd9, 0x10, 0x0d, 0xf1, 0xc8,
- 0x2b, 0xb5, 0x1f, 0xd3, 0x81, 0xa3, 0x4e, 0x1f, 0x1c, 0x3a, 0xe4, 0x41, 0x3e, 0x0b, 0xb9, 0xad,
- 0xad, 0x75, 0x9c, 0x3b, 0x39, 0xfc, 0xf6, 0xa9, 0x20, 0x68, 0x69, 0x53, 0x75, 0x8a, 0xd1, 0x5e,
- 0x09, 0x6d, 0x02, 0x18, 0x3a, 0xf9, 0x52, 0xcc, 0x2c, 0xe5, 0x95, 0xc1, 0x03, 0x3d, 0xbc, 0x95,
- 0xca, 0x27, 0x31, 0xfc, 0xf8, 0x1b, 0xd9, 0x68, 0x0d, 0xdf, 0x74, 0x5a, 0x01, 0xf5, 0xc8, 0x22,
- 0x5f, 0x92, 0xd1, 0xfd, 0xd7, 0x0c, 0x7f, 0x93, 0x85, 0x68, 0x7d, 0x73, 0x56, 0xe1, 0x42, 0x7e,
- 0x45, 0x59, 0xc8, 0x39, 0x5c, 0xc8, 0xd3, 0x7d, 0x97, 0xec, 0x2b, 0x29, 0xf3, 0x12, 0x17, 0x62,
- 0xca, 0xdc, 0x7b, 0x11, 0xa6, 0x36, 0xdc, 0xd5, 0x47, 0x41, 0x88, 0xc8, 0x16, 0x60, 0xc1, 0xd4,
- 0x81, 0x8c, 0xe3, 0x66, 0xab, 0x49, 0xbd, 0xad, 0x7d, 0xbb, 0xa3, 0xbd, 0xb2, 0x9a, 0x09, 0x38,
- 0xc3, 0xdd, 0xa0, 0x0f, 0x75, 0xdc, 0x31, 0x8e, 0x1b, 0x87, 0x1b, 0x3f, 0x94, 0x95, 0x9d, 0x71,
- 0x7f, 0xf9, 0x29, 0x7d, 0xcd, 0x7b, 0x43, 0x7b, 0xcd, 0x9b, 0x0b, 0xf5, 0x90, 0xe1, 0xd3, 0xf4,
- 0xf2, 0x31, 0x2f, 0xda, 0xff, 0xdd, 0x08, 0x4c, 0xaa, 0xe8, 0xac, 0x1f, 0x4a, 0xcd, 0xa6, 0xa7,
- 0xf6, 0x83, 0xdd, 0x6c, 0x7a, 0x26, 0x42, 0xb5, 0x07, 0xec, 0xdc, 0xc0, 0x07, 0xec, 0xaf, 0xc2,
- 0x78, 0xb9, 0xdd, 0xd4, 0x9e, 0xd5, 0x8c, 0x94, 0xe6, 0x5d, 0x09, 0x91, 0xf8, 0x5a, 0x08, 0xd5,
- 0x6b, 0x8d, 0x76, 0x33, 0xf9, 0x98, 0x16, 0xb1, 0xd4, 0xde, 0xbe, 0x47, 0x3e, 0xc9, 0xdb, 0xf7,
- 0x0d, 0x18, 0xbf, 0xe7, 0xd3, 0xad, 0x5e, 0xa7, 0x43, 0x5b, 0x38, 0xad, 0x0a, 0x5c, 0xd6, 0xef,
- 0xf9, 0xd4, 0x0a, 0x10, 0xaa, 0x36, 0x20, 0x44, 0x55, 0x07, 0x78, 0x6c, 0xc0, 0x00, 0x5f, 0x87,
- 0x42, 0x8d, 0x52, 0x0f, 0xfb, 0x74, 0x22, 0x12, 0xe9, 0xba, 0x94, 0x7a, 0x16, 0xeb, 0x58, 0xed,
- 0x4d, 0x5c, 0x20, 0x6a, 0x0f, 0xe9, 0x93, 0x43, 0x3e, 0xa4, 0x93, 0x17, 0x60, 0xb2, 0xdb, 0xdb,
- 0x69, 0x39, 0x0d, 0xe4, 0x2b, 0x5e, 0xe0, 0xcd, 0x09, 0x0e, 0x63, 0x6c, 0x7d, 0xf2, 0x25, 0x98,
- 0xc2, 0x3b, 0x4e, 0x38, 0xe5, 0xa6, 0xb5, 0xf7, 0x27, 0xad, 0x8c, 0x4b, 0x3a, 0x0d, 0x06, 0xb2,
- 0x52, 0x0c, 0x45, 0x74, 0x46, 0x8b, 0x75, 0x98, 0xd6, 0x47, 0xf2, 0x09, 0x3c, 0x43, 0x85, 0x46,
- 0x01, 0x85, 0xe2, 0xf8, 0xed, 0x7c, 0x01, 0x8a, 0x13, 0xdc, 0x1c, 0xc0, 0x84, 0x5a, 0xf8, 0x4d,
- 0x26, 0xb9, 0xd3, 0xdb, 0xa1, 0x5e, 0x87, 0x06, 0xd4, 0x17, 0x97, 0x00, 0xdf, 0xcc, 0x97, 0xba,
- 0x5d, 0xdf, 0xf8, 0x7b, 0x59, 0x18, 0x2b, 0x6d, 0xd7, 0xab, 0x9d, 0x5d, 0x17, 0x1f, 0x93, 0xc2,
- 0x37, 0x04, 0xf5, 0x31, 0x29, 0x7c, 0x43, 0x50, 0x5f, 0x0e, 0xae, 0xa6, 0x5c, 0xe3, 0xd0, 0x44,
- 0x55, 0xb9, 0xc6, 0x69, 0xba, 0xbd, 0xe8, 0x39, 0x25, 0x37, 0xc4, 0x73, 0x4a, 0xa8, 0x3d, 0xcb,
- 0x1f, 0xab, 0x3d, 0x23, 0x6f, 0xc1, 0x44, 0xb5, 0x13, 0xd0, 0x3d, 0x2f, 0x9a, 0xe9, 0xe1, 0x95,
- 0x32, 0x04, 0xab, 0xa2, 0xbd, 0x82, 0xcd, 0xa6, 0x11, 0xd7, 0xd8, 0x85, 0x9a, 0x3a, 0x9c, 0x46,
- 0x5c, 0xb1, 0x17, 0xbb, 0x4c, 0x4b, 0x44, 0xa3, 0x12, 0x9b, 0x23, 0xf2, 0xc9, 0x9a, 0x0b, 0x9f,
- 0xd3, 0x91, 0x9a, 0x99, 0x75, 0xec, 0xca, 0x6c, 0xfa, 0x93, 0xb5, 0xf1, 0xad, 0x2c, 0x4c, 0x94,
- 0xba, 0xdd, 0xa7, 0xdc, 0x70, 0xe8, 0xf3, 0xda, 0xf6, 0x2a, 0xef, 0x42, 0xe1, 0x77, 0x0d, 0x65,
- 0x33, 0xf4, 0x4b, 0x59, 0x98, 0x89, 0x51, 0xa8, 0xad, 0xcf, 0x0c, 0x69, 0x2e, 0x94, 0x1d, 0xd2,
- 0x5c, 0x28, 0x37, 0x9c, 0xb9, 0x50, 0xfe, 0x93, 0x6c, 0x99, 0x2f, 0x43, 0xae, 0xd4, 0xed, 0xc6,
- 0x9f, 0x1d, 0xbb, 0xdd, 0xfb, 0xd7, 0xf9, 0x7d, 0xd6, 0xee, 0x76, 0x4d, 0x86, 0xa1, 0xed, 0x63,
- 0xa3, 0x43, 0xee, 0x63, 0xc6, 0xeb, 0x30, 0x8e, 0xbc, 0xd0, 0x48, 0xe7, 0x3c, 0xe0, 0x62, 0x16,
- 0xf6, 0x39, 0x5a, 0x5d, 0x62, 0x99, 0xff, 0x5f, 0x19, 0x18, 0xc1, 0xdf, 0x4f, 0xe9, 0x1c, 0x5b,
- 0xd6, 0xe6, 0x58, 0x51, 0x99, 0x63, 0xc3, 0xcc, 0xae, 0xff, 0x35, 0x8f, 0xbd, 0x25, 0xe6, 0x95,
- 0xb0, 0x8d, 0xc9, 0xa4, 0xd8, 0xc6, 0xbc, 0x09, 0xca, 0xae, 0xa9, 0x6a, 0x8b, 0x94, 0x33, 0x43,
- 0xbd, 0x69, 0x44, 0xc8, 0xe4, 0x20, 0x6e, 0x25, 0x93, 0xc3, 0xc1, 0xb8, 0x10, 0x6f, 0xea, 0x13,
- 0x31, 0x90, 0x59, 0x03, 0x52, 0xed, 0xf8, 0xb4, 0xd1, 0xf3, 0x68, 0xfd, 0xc0, 0xe9, 0xde, 0xa7,
- 0x9e, 0xb3, 0x7b, 0x28, 0x6e, 0xf7, 0x78, 0x2e, 0x3b, 0xa2, 0xd4, 0xf2, 0x0f, 0x9c, 0x2e, 0xbb,
- 0x8a, 0x38, 0xbb, 0x87, 0x66, 0x0a, 0x0d, 0x79, 0x0f, 0xc6, 0x4c, 0xfa, 0xd0, 0x73, 0x02, 0xf9,
- 0xf6, 0x3b, 0x1d, 0x5e, 0x9c, 0x11, 0xca, 0x2f, 0x86, 0x1e, 0xff, 0xa1, 0x8e, 0xbf, 0x28, 0x27,
- 0xcb, 0x7c, 0xe3, 0xe3, 0x6f, 0xbc, 0x53, 0xd1, 0xd7, 0x96, 0xb6, 0xeb, 0xfd, 0xf6, 0x3d, 0x72,
- 0x19, 0x46, 0x70, 0xf7, 0x14, 0x32, 0x01, 0xda, 0x4c, 0xe3, 0x19, 0xaa, 0x6e, 0xed, 0x88, 0x41,
- 0x9e, 0x07, 0x08, 0xd5, 0xf7, 0xfe, 0x42, 0x01, 0x4f, 0x6b, 0x05, 0x12, 0xdf, 0xfa, 0xc7, 0x4f,
- 0xb2, 0xf5, 0x7f, 0x7a, 0xa6, 0x21, 0x7f, 0x27, 0x0b, 0x17, 0xc2, 0xed, 0x6c, 0xd3, 0xab, 0x97,
- 0xee, 0xae, 0x57, 0x9b, 0x35, 0x21, 0xfd, 0xd7, 0x3c, 0xf7, 0x81, 0xc3, 0x6e, 0x7f, 0xd7, 0x8e,
- 0x59, 0x8c, 0xeb, 0x7c, 0xd6, 0x72, 0xd5, 0x61, 0x56, 0x7b, 0x44, 0x57, 0x4e, 0x0d, 0xf1, 0xce,
- 0xdf, 0xed, 0x26, 0x34, 0x89, 0x6b, 0xcf, 0x98, 0x11, 0x03, 0xf2, 0xc3, 0x19, 0x38, 0x9d, 0xde,
- 0x10, 0x71, 0x23, 0x5c, 0x92, 0x92, 0x67, 0x9f, 0xd6, 0xae, 0xbc, 0xfc, 0xf8, 0x68, 0xe9, 0x82,
- 0x6f, 0xb7, 0x5b, 0x96, 0xd3, 0xe4, 0xb5, 0x39, 0x0d, 0x6a, 0x75, 0x05, 0x82, 0x56, 0x6f, 0x9f,
- 0x9a, 0xa2, 0x35, 0xb9, 0x02, 0x50, 0x90, 0xba, 0x19, 0xe3, 0xef, 0x67, 0x40, 0x99, 0x4f, 0x05,
- 0x93, 0x36, 0x1d, 0x8f, 0x36, 0x02, 0xdc, 0xcf, 0x42, 0xb3, 0x7f, 0x0e, 0x8b, 0x59, 0x4c, 0x20,
- 0x8c, 0xbc, 0x0b, 0x63, 0x5c, 0x93, 0xc3, 0x35, 0x28, 0xd1, 0x3c, 0x14, 0x5a, 0x1f, 0xee, 0x34,
- 0xc2, 0x31, 0xd4, 0x39, 0x2c, 0x88, 0x98, 0x74, 0x7b, 0x7b, 0x7b, 0xab, 0xdc, 0xb2, 0x9d, 0xb6,
- 0x2f, 0x76, 0x31, 0xec, 0xd4, 0x8f, 0x1e, 0x06, 0x56, 0x03, 0xa1, 0xaa, 0x74, 0x1b, 0xa2, 0x1a,
- 0xb7, 0xa4, 0xd2, 0xe9, 0x18, 0xb3, 0x9f, 0x25, 0x18, 0xb9, 0x1f, 0x5d, 0x3e, 0x57, 0xc6, 0x1f,
- 0x1f, 0x2d, 0xf1, 0xc9, 0x62, 0x72, 0xb8, 0xf1, 0x97, 0x32, 0x30, 0xad, 0xcf, 0x26, 0x72, 0x05,
- 0x46, 0x85, 0xf1, 0x7d, 0x06, 0x2f, 0xd9, 0xac, 0x17, 0x46, 0xb9, 0xd9, 0xbd, 0x66, 0x6c, 0x2f,
- 0xb0, 0xd8, 0x3e, 0x2c, 0x38, 0x08, 0x2d, 0x12, 0xee, 0xc3, 0x0d, 0x0e, 0x32, 0x65, 0x19, 0x31,
- 0x98, 0x10, 0xe6, 0xf7, 0x5a, 0x81, 0xaa, 0x7b, 0xf5, 0x10, 0x62, 0x8a, 0x12, 0xa3, 0x0c, 0xa3,
- 0x7c, 0x01, 0xc7, 0xcc, 0x0d, 0x32, 0x27, 0x30, 0x37, 0x30, 0x8e, 0x32, 0x00, 0xf5, 0xfa, 0xda,
- 0x1d, 0x7a, 0x58, 0xb3, 0x1d, 0x0f, 0x1f, 0x0b, 0x70, 0xb3, 0xbc, 0x23, 0x96, 0xd6, 0xa4, 0x78,
- 0x2c, 0xe0, 0x1b, 0xeb, 0x01, 0x3d, 0xd4, 0x1e, 0x0b, 0x24, 0x2a, 0xee, 0xc8, 0x9e, 0xf3, 0xc0,
- 0x0e, 0x28, 0x23, 0xcc, 0x22, 0x21, 0xdf, 0x91, 0x39, 0x34, 0x46, 0xa9, 0x20, 0x93, 0xaf, 0xc0,
- 0x74, 0xf4, 0x2b, 0x7c, 0xf2, 0x98, 0x0e, 0x97, 0xaf, 0x5e, 0xb8, 0xf2, 0xfc, 0xe3, 0xa3, 0xa5,
- 0x45, 0x85, 0x6b, 0xfc, 0x31, 0x24, 0xc6, 0xcc, 0xf8, 0xf9, 0x0c, 0xbe, 0x92, 0xc9, 0x0f, 0xbc,
- 0x08, 0xf9, 0xd0, 0x88, 0x6a, 0x92, 0xeb, 0x69, 0x62, 0x6a, 0x5d, 0x2c, 0x27, 0x17, 0x20, 0x17,
- 0x7d, 0x09, 0x6e, 0x90, 0xfa, 0x17, 0xb0, 0x52, 0x72, 0x0b, 0xc6, 0x86, 0x6a, 0x33, 0x2e, 0x8d,
- 0x94, 0xb6, 0x4a, 0x6a, 0x1c, 0x85, 0xdb, 0xdb, 0x5b, 0xdf, 0xbf, 0xa3, 0xf0, 0x13, 0x59, 0x98,
- 0x61, 0xfd, 0x5a, 0xea, 0x05, 0xfb, 0xae, 0xe7, 0x04, 0x87, 0x4f, 0xad, 0x96, 0xe2, 0x6d, 0x4d,
- 0xc4, 0x59, 0x94, 0x67, 0x8c, 0xfa, 0x6d, 0x43, 0x29, 0x2b, 0x7e, 0x73, 0x04, 0xe6, 0x52, 0xa8,
- 0xc8, 0x6b, 0x9a, 0x22, 0x71, 0x41, 0xfa, 0xd9, 0x7d, 0xef, 0x68, 0x69, 0x52, 0xa2, 0x6f, 0x45,
- 0x7e, 0x77, 0xcb, 0xfa, 0x93, 0x33, 0xef, 0x29, 0xd4, 0x2b, 0xaa, 0x4f, 0xce, 0xfa, 0x43, 0xf3,
- 0x65, 0x18, 0x31, 0xdd, 0x16, 0x95, 0xf6, 0x11, 0x78, 0xac, 0x7b, 0x0c, 0xa0, 0xbd, 0x8c, 0x31,
- 0x00, 0x59, 0x83, 0x31, 0xf6, 0xc7, 0x5d, 0xbb, 0x2b, 0x74, 0xbe, 0x24, 0x14, 0xb2, 0x11, 0xda,
- 0x75, 0x3a, 0x7b, 0xaa, 0x9c, 0xdd, 0xa2, 0x56, 0xdb, 0xee, 0x6a, 0xf2, 0x07, 0x47, 0xd4, 0xe4,
- 0xf5, 0x42, 0x7f, 0x79, 0x3d, 0x73, 0xac, 0xbc, 0xde, 0x04, 0xa8, 0x3b, 0x7b, 0x1d, 0xa7, 0xb3,
- 0x57, 0x6a, 0xed, 0x09, 0x6f, 0xc5, 0xcb, 0xfd, 0x47, 0xe1, 0x4a, 0x84, 0x8c, 0x13, 0x97, 0x3f,
- 0xcc, 0x70, 0x98, 0x65, 0xb7, 0x34, 0x85, 0x74, 0x84, 0x4a, 0x36, 0x00, 0x4a, 0x8d, 0xc0, 0x79,
- 0xc0, 0x26, 0xb0, 0x2f, 0x4c, 0x6f, 0x65, 0x83, 0xcb, 0xa5, 0x3b, 0xf4, 0xb0, 0x4e, 0x83, 0x48,
- 0xc1, 0x6d, 0x23, 0x2a, 0x5b, 0x07, 0x9a, 0x95, 0x6c, 0xc4, 0x81, 0x74, 0xe1, 0x54, 0xa9, 0xd9,
- 0x74, 0xd8, 0x17, 0xd8, 0x2d, 0x7c, 0xb1, 0xa1, 0x4d, 0x64, 0x3d, 0x99, 0xce, 0xfa, 0xb2, 0x60,
- 0xfd, 0x82, 0x1d, 0x52, 0x59, 0x01, 0x27, 0x8b, 0x57, 0x93, 0xce, 0xd8, 0xd8, 0x84, 0x69, 0xfd,
- 0xd3, 0x75, 0x1f, 0xcb, 0x49, 0x28, 0x98, 0xf5, 0x92, 0x55, 0x5f, 0x2b, 0x5d, 0x2b, 0x66, 0x48,
- 0x11, 0x26, 0xc5, 0xaf, 0x65, 0x6b, 0xf9, 0x8d, 0x1b, 0xc5, 0xac, 0x06, 0x79, 0xe3, 0xda, 0x72,
- 0xc2, 0x9f, 0x61, 0xac, 0x58, 0xe0, 0x6a, 0x0c, 0xe3, 0x97, 0x33, 0x50, 0x90, 0xed, 0x26, 0x37,
- 0x20, 0x57, 0xaf, 0xaf, 0xc5, 0x3c, 0x10, 0xa2, 0xf3, 0x85, 0xef, 0xa4, 0xbe, 0xaf, 0x9a, 0x99,
- 0x31, 0x02, 0x46, 0xb7, 0xb5, 0x5e, 0x17, 0x62, 0x81, 0xa4, 0x8b, 0xb6, 0x6d, 0x4e, 0x97, 0x62,
- 0x96, 0x7d, 0x03, 0x72, 0xb7, 0xb7, 0xb7, 0x84, 0x10, 0x2f, 0xe9, 0xa2, 0x9d, 0x94, 0xd3, 0x7d,
- 0xf4, 0x50, 0xdd, 0xdf, 0x19, 0x81, 0x61, 0xc2, 0x84, 0x32, 0x85, 0xf9, 0x71, 0xdb, 0x76, 0x43,
- 0x4f, 0x42, 0x71, 0xdc, 0x32, 0x88, 0x29, 0x4a, 0x98, 0x74, 0xb0, 0xee, 0x36, 0xec, 0x96, 0x38,
- 0xb7, 0x51, 0x3a, 0x68, 0x31, 0x80, 0xc9, 0xe1, 0xc6, 0xaf, 0x67, 0xa0, 0x88, 0x12, 0x14, 0x9a,
- 0x9c, 0xb9, 0x07, 0xb4, 0x73, 0xff, 0x1a, 0x79, 0x5d, 0x2e, 0xb6, 0x4c, 0x78, 0x65, 0x1c, 0xc1,
- 0xc5, 0x16, 0xd3, 0x39, 0x8b, 0x05, 0xa7, 0xb8, 0x71, 0x66, 0x87, 0x77, 0xf2, 0x3a, 0xc6, 0x8d,
- 0x73, 0x09, 0x46, 0xb0, 0x39, 0x62, 0x5b, 0xc4, 0x96, 0x07, 0x0c, 0x60, 0x72, 0xb8, 0xb2, 0x2b,
- 0xfd, 0x54, 0x36, 0xf1, 0x0d, 0xcb, 0xdf, 0x57, 0x8e, 0x52, 0xfa, 0xc7, 0x0d, 0xb5, 0x53, 0x7f,
- 0x00, 0xf3, 0xf1, 0x2e, 0xc1, 0xeb, 0x7c, 0x09, 0x66, 0x74, 0xb8, 0xbc, 0xd9, 0x9f, 0x49, 0xad,
- 0xeb, 0xfe, 0xb2, 0x19, 0xc7, 0x37, 0xfe, 0x79, 0x06, 0xc6, 0xf1, 0x4f, 0xb3, 0xd7, 0x42, 0x23,
- 0x88, 0xd2, 0x76, 0x5d, 0xa8, 0xee, 0x54, 0x31, 0xce, 0x7e, 0xe8, 0x5b, 0x42, 0xbb, 0xa7, 0xed,
- 0x2f, 0x21, 0xb2, 0x20, 0xe5, 0x3a, 0x39, 0xf9, 0x3e, 0x19, 0x92, 0x72, 0xe5, 0x9d, 0x1f, 0x23,
- 0x15, 0xc8, 0x68, 0x77, 0xb4, 0x5d, 0x67, 0xd3, 0x4f, 0x7d, 0x95, 0x44, 0x3a, 0xb7, 0xa5, 0xdb,
- 0x1d, 0x71, 0x34, 0x7c, 0x94, 0xdc, 0xae, 0x97, 0xcc, 0x0d, 0xed, 0x51, 0x92, 0xb5, 0x51, 0xb3,
- 0x49, 0x15, 0x48, 0xc6, 0x3f, 0x1d, 0x8f, 0x77, 0xa0, 0x38, 0xea, 0x4e, 0xb8, 0x36, 0xde, 0x82,
- 0x91, 0x52, 0xab, 0xe5, 0x3e, 0x14, 0xbb, 0x84, 0xd4, 0x2e, 0x84, 0xfd, 0xc7, 0x4f, 0x32, 0x9b,
- 0xa1, 0x68, 0xce, 0x1f, 0x0c, 0x40, 0xca, 0x30, 0x5e, 0xda, 0xae, 0x57, 0xab, 0x95, 0xad, 0xad,
- 0x75, 0xe1, 0x53, 0xff, 0x92, 0xec, 0x1f, 0xc7, 0x69, 0x5a, 0xf1, 0x77, 0xb1, 0x48, 0x72, 0x8f,
- 0xe8, 0xc8, 0x3b, 0x00, 0xb7, 0x5d, 0xa7, 0x73, 0x97, 0x06, 0xfb, 0x6e, 0x53, 0x7c, 0xfc, 0xb9,
- 0xc7, 0x47, 0x4b, 0x13, 0x1f, 0xb9, 0x4e, 0xc7, 0x6a, 0x23, 0x98, 0xb5, 0x3d, 0x42, 0x32, 0x95,
- 0xbf, 0x59, 0x4f, 0xaf, 0xb8, 0xdc, 0xb0, 0x61, 0x24, 0xea, 0xe9, 0x1d, 0x37, 0x61, 0xd3, 0x20,
- 0xd1, 0x48, 0x1b, 0x66, 0xea, 0xbd, 0xbd, 0x3d, 0xca, 0x76, 0x75, 0xa1, 0xaf, 0x18, 0x15, 0x77,
- 0xdb, 0x30, 0x22, 0x01, 0xbf, 0x89, 0xb0, 0xfb, 0x89, 0xbf, 0xf2, 0x1a, 0x9b, 0xc8, 0xdf, 0x3d,
- 0x5a, 0x12, 0xef, 0x6d, 0x4c, 0x48, 0xf3, 0x25, 0x7d, 0x52, 0x5b, 0x11, 0xe7, 0x4d, 0x36, 0x61,
- 0xf4, 0x96, 0x13, 0xac, 0xf5, 0x76, 0x84, 0xe1, 0xf6, 0x0b, 0x03, 0x16, 0x0d, 0x47, 0xe4, 0x0a,
- 0xdf, 0x3d, 0x27, 0xd8, 0xef, 0xa9, 0x46, 0xdc, 0x82, 0x0d, 0xd9, 0x86, 0x42, 0xd9, 0xf1, 0x1a,
- 0x2d, 0x5a, 0xae, 0x8a, 0x53, 0xff, 0xc2, 0x00, 0x96, 0x12, 0x95, 0xf7, 0x4b, 0x03, 0x7f, 0x35,
- 0x1c, 0x55, 0x0a, 0x90, 0x18, 0xe4, 0xaf, 0x66, 0xe0, 0xd9, 0xb0, 0xf5, 0xa5, 0x3d, 0xda, 0x09,
- 0xee, 0xda, 0x41, 0x63, 0x9f, 0x7a, 0xa2, 0x97, 0xc6, 0x07, 0xf5, 0xd2, 0x17, 0x12, 0xbd, 0x74,
- 0x29, 0xea, 0x25, 0x9b, 0x31, 0xb3, 0xda, 0x9c, 0x5b, 0xb2, 0xcf, 0x06, 0xd5, 0x4a, 0x2c, 0x80,
- 0x48, 0x83, 0x2f, 0x1c, 0x7f, 0x5e, 0x1a, 0xf0, 0xc1, 0x11, 0xb2, 0x30, 0xfe, 0x0d, 0x7f, 0x6b,
- 0x76, 0x3c, 0x21, 0x94, 0xdc, 0x91, 0x5e, 0x12, 0x5c, 0x22, 0x39, 0x3f, 0x80, 0x37, 0xf7, 0x9c,
- 0x98, 0x1b, 0xe0, 0x0f, 0xc5, 0x47, 0x7b, 0xdd, 0xde, 0x11, 0x42, 0xc8, 0x31, 0xa3, 0xbd, 0x6e,
- 0x47, 0xa3, 0xdd, 0xb2, 0xe3, 0xa3, 0xbd, 0x6e, 0xef, 0x90, 0x32, 0x77, 0xed, 0xe2, 0x7e, 0x40,
- 0xcf, 0x0f, 0xe2, 0x56, 0xae, 0xf1, 0x93, 0x39, 0xc5, 0xc5, 0xeb, 0x43, 0x18, 0xaf, 0x77, 0xed,
- 0x06, 0x6d, 0x39, 0xbb, 0x81, 0x78, 0xd2, 0x79, 0x71, 0x00, 0xab, 0x10, 0x57, 0x3c, 0x07, 0xc8,
- 0x9f, 0xea, 0x05, 0x29, 0xc4, 0x61, 0x2d, 0xdc, 0xaa, 0xdd, 0x5d, 0x98, 0x39, 0xb6, 0x85, 0x5b,
- 0xb5, 0xbb, 0x42, 0xe6, 0xe8, 0xb6, 0x35, 0x99, 0xa3, 0x76, 0xd7, 0xf8, 0xd5, 0x1c, 0x9c, 0xe9,
- 0x43, 0x43, 0x36, 0xe4, 0x1e, 0x95, 0xd1, 0xd4, 0x8a, 0x7d, 0xd0, 0xaf, 0x1c, 0xbb, 0x6d, 0xad,
- 0x43, 0x71, 0xf5, 0x0e, 0x8a, 0xb5, 0xec, 0x27, 0x6d, 0x96, 0x4b, 0x72, 0x77, 0x3f, 0xff, 0xf8,
- 0x68, 0xe9, 0x39, 0x7a, 0x80, 0x26, 0x41, 0x36, 0x2f, 0xb4, 0x1a, 0x9a, 0x97, 0x56, 0x82, 0x72,
- 0xf1, 0x87, 0xb2, 0x90, 0xc7, 0x93, 0x26, 0x16, 0xb5, 0x22, 0x73, 0xa2, 0xa8, 0x15, 0xef, 0xc3,
- 0xe4, 0xea, 0x1d, 0x7e, 0xe9, 0x5c, 0xb3, 0xfd, 0x7d, 0xb1, 0x0f, 0xe2, 0x0b, 0x1b, 0x3d, 0xb0,
- 0xc4, 0x1d, 0x75, 0xdf, 0xd6, 0x84, 0x3c, 0x8d, 0x82, 0xdc, 0x83, 0x39, 0xde, 0x36, 0x67, 0xd7,
- 0x69, 0x70, 0x17, 0x77, 0xc7, 0x6e, 0x89, 0x4d, 0xf1, 0xc2, 0xe3, 0xa3, 0xa5, 0x25, 0x7a, 0x80,
- 0xc6, 0x4e, 0xa2, 0xdc, 0xf2, 0x11, 0x41, 0xb5, 0x7a, 0x4a, 0xa1, 0x57, 0xfd, 0x6e, 0xcd, 0x71,
- 0xac, 0x90, 0xd5, 0xc6, 0xea, 0x66, 0xb8, 0x1c, 0xc9, 0xf8, 0xfb, 0x23, 0xb0, 0xd8, 0x7f, 0x3f,
- 0x23, 0x5f, 0xd4, 0x07, 0xf0, 0xe2, 0xb1, 0x3b, 0xe0, 0xf1, 0x63, 0xf8, 0x25, 0x98, 0x5f, 0xed,
- 0x04, 0xd4, 0xeb, 0x7a, 0x8e, 0xf4, 0xb4, 0x5e, 0x73, 0x7d, 0x69, 0x5c, 0x86, 0x56, 0x5e, 0x34,
- 0x2c, 0x17, 0xda, 0x41, 0x34, 0x75, 0x53, 0x58, 0xa5, 0x72, 0x20, 0xab, 0x30, 0xad, 0xc0, 0x5b,
- 0xbd, 0x3d, 0x71, 0x82, 0xa3, 0xe5, 0xa2, 0xca, 0xb3, 0xd5, 0x53, 0x2f, 0x3a, 0x31, 0xa2, 0xc5,
- 0x9f, 0xcf, 0x89, 0x69, 0x71, 0x01, 0x72, 0xf5, 0xde, 0x8e, 0x98, 0x0e, 0x5c, 0x54, 0xd7, 0xb6,
- 0x75, 0x56, 0x4a, 0x3e, 0x0f, 0x60, 0xd2, 0xae, 0xeb, 0x3b, 0x81, 0xeb, 0x1d, 0xaa, 0xc6, 0xff,
- 0x5e, 0x08, 0xd5, 0x2d, 0x35, 0x25, 0x94, 0xac, 0xc1, 0x4c, 0xf4, 0x6b, 0xf3, 0x61, 0x47, 0xa8,
- 0x34, 0xc7, 0xb9, 0x36, 0x21, 0x22, 0xb7, 0x5c, 0x56, 0xa6, 0x1e, 0x54, 0x31, 0x32, 0xb2, 0x0c,
- 0x85, 0x6d, 0xd7, 0x3b, 0xd8, 0x65, 0x03, 0x95, 0x8f, 0x8e, 0xd2, 0x87, 0x02, 0xa6, 0x1e, 0x19,
- 0x12, 0x8f, 0xcd, 0xf9, 0xd5, 0xce, 0x03, 0xc7, 0x73, 0x3b, 0x6d, 0xda, 0x09, 0xd4, 0xd7, 0x47,
- 0x1a, 0x81, 0x35, 0x57, 0xa9, 0x08, 0xcc, 0xee, 0xcc, 0xa5, 0x46, 0xe0, 0x7a, 0xe2, 0xe9, 0x91,
- 0x0f, 0x37, 0x03, 0x68, 0xc3, 0xcd, 0x00, 0xac, 0x13, 0x4d, 0xba, 0x2b, 0x74, 0xe6, 0xd8, 0x89,
- 0x1e, 0xdd, 0xd5, 0xfc, 0xc0, 0xe8, 0x2e, 0x13, 0x05, 0x4c, 0xba, 0x8b, 0x17, 0x7d, 0x2d, 0x68,
- 0xca, 0x6e, 0x42, 0x45, 0x24, 0xd0, 0x8c, 0xdf, 0x1a, 0xef, 0x3b, 0x6f, 0xd9, 0xde, 0x7b, 0xb2,
- 0x79, 0xbb, 0x6e, 0x0f, 0x31, 0x6f, 0x5f, 0x0b, 0xed, 0x3f, 0x55, 0xe7, 0x47, 0x84, 0xa8, 0x9b,
- 0x3f, 0xc7, 0x59, 0xfc, 0xc5, 0xc2, 0x49, 0x26, 0x91, 0xe8, 0xa4, 0xec, 0xb0, 0x9d, 0x94, 0x1b,
- 0xaa, 0x93, 0xc8, 0x0a, 0x4c, 0x85, 0xa1, 0x79, 0x6a, 0x76, 0xa0, 0xed, 0x4d, 0x61, 0xa0, 0x25,
- 0xab, 0x6b, 0x07, 0xea, 0xde, 0xa4, 0x93, 0x90, 0xb7, 0x61, 0x42, 0x18, 0x41, 0x23, 0x87, 0x91,
- 0xc8, 0x0c, 0x4d, 0x5a, 0x4c, 0xc7, 0xe8, 0x55, 0x74, 0xb6, 0x24, 0x6b, 0x4e, 0x97, 0xb6, 0x9c,
- 0x0e, 0xad, 0xa3, 0xd6, 0x5c, 0xcc, 0x18, 0x5c, 0x92, 0x5d, 0x51, 0x62, 0x71, 0x85, 0xba, 0xa6,
- 0x2f, 0xd3, 0x88, 0xe2, 0x93, 0x75, 0xec, 0x44, 0x93, 0x95, 0x5b, 0x81, 0x78, 0xeb, 0xee, 0x9e,
- 0x23, 0xed, 0xde, 0xa4, 0x15, 0x88, 0x67, 0xb5, 0x18, 0x34, 0x66, 0x05, 0xc2, 0x51, 0x99, 0x5c,
- 0xcf, 0x7e, 0x54, 0x2b, 0xe2, 0x7d, 0x06, 0xe5, 0x7a, 0x24, 0xd2, 0x8d, 0x0d, 0x39, 0x92, 0xac,
- 0x66, 0xb5, 0x6d, 0x3b, 0x2d, 0xe1, 0xe3, 0x16, 0x55, 0x43, 0x19, 0x34, 0x5e, 0x0d, 0xa2, 0x92,
- 0x06, 0x4c, 0x9a, 0x74, 0xb7, 0xe6, 0xb9, 0x01, 0x6d, 0x04, 0xb4, 0x29, 0x64, 0x19, 0x29, 0xce,
- 0xaf, 0xb8, 0x2e, 0x97, 0xd3, 0x56, 0x5e, 0xff, 0xad, 0xa3, 0xa5, 0xcc, 0x77, 0x8f, 0x96, 0x80,
- 0x81, 0xb8, 0x25, 0xeb, 0xe3, 0xa3, 0xa5, 0x33, 0x6c, 0xfc, 0xbb, 0x92, 0x58, 0x3d, 0x62, 0x54,
- 0xa6, 0xe4, 0x07, 0xd9, 0xa6, 0x1b, 0x76, 0x49, 0x54, 0xd9, 0x64, 0x9f, 0xca, 0xde, 0x48, 0xad,
- 0x6c, 0x49, 0xe9, 0xed, 0xd4, 0x4a, 0x53, 0x2b, 0x21, 0xef, 0xc0, 0x44, 0xb9, 0x5a, 0x76, 0x3b,
- 0xbb, 0xce, 0x5e, 0x7d, 0xad, 0x84, 0x02, 0x91, 0xb0, 0x62, 0x6e, 0x38, 0x56, 0x03, 0xe1, 0x96,
- 0xbf, 0x6f, 0x6b, 0x9e, 0x20, 0x11, 0x3e, 0xb9, 0x05, 0xd3, 0xf2, 0xa7, 0x49, 0x77, 0xef, 0x99,
- 0x55, 0x94, 0x83, 0xa4, 0xe9, 0x78, 0xc8, 0x81, 0x75, 0x44, 0xcf, 0x53, 0xe5, 0xe3, 0x18, 0x19,
- 0x9b, 0x8c, 0x15, 0xda, 0x6d, 0xb9, 0x87, 0xac, 0x79, 0x5b, 0x0e, 0xf5, 0x50, 0xf2, 0x11, 0x93,
- 0xb1, 0x19, 0x96, 0x58, 0x81, 0xa3, 0x6d, 0xb7, 0x31, 0x22, 0xb2, 0x01, 0xb3, 0x62, 0x8a, 0xdf,
- 0x77, 0x7c, 0x67, 0xc7, 0x69, 0x39, 0xc1, 0xe1, 0x42, 0x11, 0x39, 0xa1, 0x14, 0x22, 0xd7, 0xc5,
- 0x83, 0xb0, 0x54, 0x61, 0x96, 0x24, 0x35, 0x7e, 0x39, 0x0b, 0xcf, 0x0d, 0x92, 0xff, 0x49, 0x5d,
- 0xdf, 0xcc, 0x2e, 0x0d, 0x71, 0x67, 0x38, 0x7e, 0x3b, 0x5b, 0x85, 0xe9, 0x4d, 0x6f, 0xcf, 0xee,
- 0x38, 0xdf, 0xc0, 0x7b, 0x5d, 0x68, 0x0c, 0x83, 0x9d, 0xe1, 0x2a, 0x25, 0xfa, 0x6c, 0x8f, 0x11,
- 0x2d, 0x3e, 0x10, 0xdb, 0xdc, 0xc7, 0x75, 0xab, 0xb8, 0x01, 0xe3, 0x65, 0xb7, 0x13, 0xd0, 0x47,
- 0x41, 0xcc, 0x75, 0x8e, 0x03, 0xe3, 0xae, 0x73, 0x12, 0xd5, 0xf8, 0x7f, 0xb2, 0x70, 0x6e, 0xa0,
- 0x00, 0x4c, 0xb6, 0xf4, 0x5e, 0xbb, 0x3c, 0x8c, 0xd4, 0x7c, 0x7c, 0xb7, 0x2d, 0x27, 0xec, 0x36,
- 0x8e, 0xb5, 0x5a, 0x5e, 0xfc, 0xaf, 0x33, 0xa2, 0x93, 0x3e, 0x03, 0x63, 0x58, 0x55, 0xd8, 0x45,
- 0x5c, 0x37, 0x84, 0xbb, 0xb0, 0xa3, 0xeb, 0x86, 0x38, 0x1a, 0xb9, 0x0e, 0x85, 0xb2, 0xdd, 0x6a,
- 0x29, 0x8e, 0x85, 0x28, 0xd7, 0x37, 0x10, 0x16, 0x33, 0xf3, 0x91, 0x88, 0xe4, 0x4d, 0x00, 0xfe,
- 0xb7, 0x72, 0x56, 0xe0, 0x66, 0x29, 0xc8, 0x62, 0xc7, 0x85, 0x82, 0x8c, 0x21, 0xc4, 0x1a, 0x6e,
- 0xe8, 0x01, 0xc5, 0x43, 0x88, 0x31, 0x80, 0x16, 0x42, 0x8c, 0x01, 0x8c, 0x5f, 0xc9, 0xc1, 0xf3,
- 0x83, 0x6f, 0x71, 0xe4, 0x9e, 0x3e, 0x04, 0xaf, 0x0c, 0x75, 0xf7, 0x3b, 0x7e, 0x0c, 0x64, 0x6c,
- 0x3e, 0xde, 0x21, 0x97, 0x92, 0xc6, 0xc5, 0xdf, 0x3b, 0x5a, 0x52, 0x6c, 0xc7, 0x6e, 0xbb, 0x4e,
- 0x47, 0x79, 0x23, 0xf8, 0x3a, 0x40, 0x3d, 0xb0, 0x03, 0xa7, 0x71, 0x7b, 0xfb, 0x8e, 0xf4, 0x57,
- 0xbf, 0x31, 0x5c, 0xcb, 0x22, 0x3a, 0xbe, 0xaf, 0x08, 0xf5, 0x39, 0x42, 0xad, 0x8f, 0x1e, 0x1e,
- 0x68, 0xf7, 0xd4, 0x08, 0x79, 0xf1, 0x0b, 0x50, 0x8c, 0x93, 0x92, 0x8b, 0x90, 0xc7, 0x06, 0x28,
- 0x16, 0xd2, 0x31, 0x0e, 0x58, 0xbe, 0x78, 0x57, 0xcc, 0x9d, 0x55, 0x98, 0x16, 0xcf, 0xd2, 0xba,
- 0x46, 0x0c, 0xd7, 0xab, 0x7c, 0xd5, 0x4e, 0x6a, 0xc5, 0x62, 0x44, 0xc6, 0x1f, 0x67, 0xe0, 0x6c,
- 0xdf, 0xfb, 0x31, 0xa9, 0xe9, 0x03, 0xf6, 0xd2, 0x71, 0x17, 0xea, 0x63, 0xc7, 0x6a, 0xf1, 0xc7,
- 0xe4, 0xdc, 0x7f, 0x17, 0x26, 0xeb, 0xbd, 0x9d, 0xf8, 0x25, 0x8b, 0x7b, 0x2f, 0x2b, 0x70, 0xf5,
- 0x04, 0x53, 0xf1, 0xd9, 0xf7, 0xcb, 0x97, 0x77, 0x61, 0x56, 0xc1, 0x2f, 0x7e, 0xf8, 0xfd, 0xa1,
- 0x5b, 0x14, 0x7a, 0xad, 0xa9, 0x9d, 0x18, 0x23, 0x32, 0x7e, 0x29, 0x9b, 0x7e, 0x5b, 0x65, 0x77,
- 0xed, 0x13, 0xdc, 0x56, 0x6f, 0x95, 0x6b, 0xc7, 0x7f, 0xfb, 0x7f, 0x26, 0xbf, 0x1d, 0x1f, 0x22,
- 0xc5, 0x8e, 0x27, 0xd5, 0x7b, 0xe2, 0x21, 0x52, 0xee, 0x8e, 0xbe, 0xfe, 0x10, 0x29, 0x91, 0xc9,
- 0x1b, 0x30, 0xbe, 0xee, 0x72, 0x6f, 0x52, 0xf9, 0xc5, 0xdc, 0x6f, 0x48, 0x02, 0xd5, 0xed, 0x31,
- 0xc4, 0x64, 0x77, 0x0b, 0x7d, 0xe0, 0xa5, 0x71, 0x37, 0xde, 0x2d, 0x62, 0xd3, 0x45, 0x57, 0x82,
- 0xe9, 0x64, 0xc6, 0x8f, 0x65, 0x61, 0x9a, 0x4f, 0x5e, 0xae, 0xa4, 0x7d, 0x6a, 0x15, 0xe0, 0x6f,
- 0x69, 0x0a, 0x70, 0x19, 0xe8, 0x40, 0xfd, 0xb4, 0xa1, 0xd4, 0xdf, 0xfb, 0x40, 0x92, 0x34, 0xc4,
- 0x84, 0x49, 0x15, 0x3a, 0x58, 0xf3, 0x7d, 0x2d, 0x8a, 0x89, 0x21, 0xf6, 0x0e, 0x7c, 0x7e, 0xf0,
- 0x4d, 0x8d, 0x87, 0xf1, 0x97, 0xb2, 0x30, 0xa5, 0x3c, 0x54, 0x3e, 0xb5, 0x1d, 0xff, 0x05, 0xad,
- 0xe3, 0x17, 0x42, 0x83, 0xe4, 0xf0, 0xcb, 0x86, 0xea, 0xf7, 0x1e, 0xcc, 0x26, 0x48, 0xe2, 0xef,
- 0xbd, 0x99, 0x61, 0xde, 0x7b, 0x5f, 0x4b, 0x3a, 0xeb, 0xf3, 0x38, 0x95, 0xa1, 0xb3, 0xbe, 0x1a,
- 0x1d, 0xe0, 0x27, 0xb2, 0x30, 0x2f, 0x7e, 0x61, 0x44, 0x1a, 0xbe, 0x7b, 0x3f, 0xb5, 0x63, 0x51,
- 0xd2, 0xc6, 0x62, 0x49, 0x1f, 0x0b, 0xe5, 0x03, 0xfb, 0x0f, 0x89, 0xf1, 0x17, 0x00, 0x16, 0xfa,
- 0x11, 0x0c, 0xed, 0xf7, 0x13, 0x59, 0x55, 0x67, 0x87, 0xb0, 0xaa, 0x5e, 0x87, 0x22, 0x56, 0x25,
- 0xe2, 0x57, 0xf8, 0xec, 0x0e, 0x90, 0x8b, 0x04, 0x6e, 0x1e, 0x36, 0x48, 0xc4, 0xc0, 0xf0, 0x63,
- 0x97, 0x80, 0x04, 0x25, 0xf9, 0xf9, 0x0c, 0x4c, 0x23, 0x70, 0xf5, 0x01, 0xed, 0x04, 0xc8, 0x2c,
- 0x2f, 0x8c, 0x80, 0x43, 0xfd, 0x78, 0x3d, 0xf0, 0x9c, 0xce, 0x9e, 0x50, 0x90, 0xef, 0x08, 0x05,
- 0xf9, 0xdb, 0x5c, 0xb1, 0x7f, 0xa5, 0xe1, 0xb6, 0xaf, 0xee, 0x79, 0xf6, 0x03, 0x87, 0xbf, 0xc1,
- 0xdb, 0xad, 0xab, 0x51, 0x64, 0xe5, 0xae, 0x13, 0x8b, 0x95, 0x2c, 0x58, 0xe1, 0xe3, 0x03, 0x6f,
- 0x28, 0xc5, 0x6a, 0xe3, 0x77, 0x15, 0xbd, 0x45, 0xe4, 0x07, 0xe0, 0x0c, 0x77, 0x4e, 0x67, 0x22,
- 0xaf, 0xd3, 0xe9, 0xb9, 0x3d, 0x7f, 0xc5, 0x6e, 0x1c, 0xb0, 0x73, 0x8f, 0x3b, 0x32, 0xe0, 0x97,
- 0x37, 0xc2, 0x42, 0x6b, 0x87, 0x97, 0x6a, 0x8e, 0x5b, 0xe9, 0x0c, 0xc8, 0x1a, 0xcc, 0xf2, 0xa2,
- 0x52, 0x2f, 0x70, 0xeb, 0x0d, 0xbb, 0xe5, 0x74, 0xf6, 0xf0, 0x4e, 0x5d, 0xe0, 0xe7, 0xb1, 0xdd,
- 0x0b, 0x5c, 0xcb, 0xe7, 0x70, 0xf5, 0xea, 0x92, 0x20, 0x22, 0x55, 0x98, 0x31, 0xa9, 0xdd, 0xbc,
- 0x6b, 0x3f, 0x2a, 0xdb, 0x5d, 0xbb, 0xc1, 0x2e, 0x42, 0x05, 0x7c, 0x4c, 0xc2, 0xbb, 0x99, 0x47,
- 0xed, 0xa6, 0xd5, 0xb6, 0x1f, 0x59, 0x0d, 0x51, 0xa8, 0xeb, 0xb0, 0x34, 0xba, 0x90, 0x95, 0xd3,
- 0x09, 0x59, 0x8d, 0xc7, 0x59, 0x39, 0x9d, 0xfe, 0xac, 0x22, 0x3a, 0xc9, 0x6a, 0xcb, 0xf6, 0xf6,
- 0x68, 0xc0, 0x4d, 0xd8, 0xd8, 0x7d, 0x3c, 0xa3, 0xb0, 0x0a, 0xb0, 0xcc, 0x42, 0x73, 0xb6, 0x38,
- 0x2b, 0x85, 0x8e, 0xcd, 0xbc, 0x6d, 0xcf, 0x09, 0xa8, 0xfa, 0x85, 0x13, 0xd8, 0x2c, 0xec, 0x7f,
- 0x34, 0xfe, 0xeb, 0xf7, 0x89, 0x09, 0xca, 0x88, 0x9b, 0xf2, 0x91, 0x93, 0x09, 0x6e, 0xe9, 0x5f,
- 0x99, 0xa0, 0x0c, 0xb9, 0xa9, 0xdf, 0x39, 0x85, 0xdf, 0xa9, 0x70, 0xeb, 0xf3, 0xa1, 0x09, 0x4a,
- 0xb2, 0xc1, 0x3a, 0x2d, 0xa0, 0x1d, 0x36, 0xa3, 0x85, 0x09, 0xdf, 0x34, 0x36, 0xed, 0x45, 0x61,
- 0x87, 0x52, 0xf4, 0x64, 0xb1, 0x95, 0x62, 0xd0, 0x17, 0x27, 0x26, 0x7f, 0x06, 0x66, 0xee, 0xf9,
- 0xf4, 0x66, 0xb5, 0x56, 0x97, 0xee, 0xf8, 0x78, 0xdb, 0x9e, 0x5e, 0xbe, 0x76, 0xcc, 0xa6, 0x73,
- 0x45, 0xa5, 0xc1, 0x68, 0xc5, 0x7c, 0xdc, 0x7a, 0x3e, 0xb5, 0x76, 0x9d, 0xae, 0x1f, 0x06, 0x06,
- 0x51, 0xc7, 0x2d, 0x56, 0x95, 0xb1, 0x06, 0xb3, 0x09, 0x36, 0x64, 0x1a, 0x80, 0x01, 0xad, 0x7b,
- 0x1b, 0xf5, 0xd5, 0xad, 0xe2, 0x33, 0xa4, 0x08, 0x93, 0xf8, 0x7b, 0x75, 0xa3, 0xb4, 0xb2, 0xbe,
- 0x5a, 0x29, 0x66, 0xc8, 0x2c, 0x4c, 0x21, 0xa4, 0x52, 0xad, 0x73, 0x50, 0x96, 0xc7, 0xaa, 0x34,
- 0x8b, 0x7c, 0xe9, 0x06, 0x6c, 0x01, 0xe0, 0x99, 0x62, 0xfc, 0xf5, 0x2c, 0x9c, 0x95, 0xc7, 0x0a,
- 0x0d, 0x1e, 0xba, 0xde, 0x81, 0xd3, 0xd9, 0x7b, 0xca, 0x4f, 0x87, 0x9b, 0xda, 0xe9, 0xf0, 0x62,
- 0xec, 0xa4, 0x8e, 0x7d, 0xe5, 0x80, 0x23, 0xe2, 0x7f, 0x2e, 0xc0, 0xb9, 0x81, 0x54, 0xe4, 0x8b,
- 0xec, 0x34, 0x77, 0x68, 0x27, 0xa8, 0x36, 0x5b, 0x74, 0xcb, 0x69, 0x53, 0xb7, 0x17, 0x08, 0x93,
- 0xd1, 0x0b, 0x78, 0xc1, 0xc5, 0x42, 0xcb, 0x69, 0xb6, 0xa8, 0x15, 0xf0, 0x62, 0x6d, 0xba, 0x25,
- 0xa9, 0x19, 0xcb, 0x30, 0x88, 0x7a, 0xb5, 0x13, 0x50, 0xef, 0x01, 0x1a, 0xa7, 0x84, 0x2c, 0x0f,
- 0x28, 0xed, 0x5a, 0x36, 0x2b, 0xb5, 0x1c, 0x51, 0xac, 0xb3, 0x4c, 0x50, 0x93, 0x9b, 0x0a, 0xcb,
- 0x32, 0x13, 0x87, 0xef, 0xda, 0x8f, 0xc4, 0x6b, 0xb9, 0x08, 0x6a, 0x14, 0xb2, 0xe4, 0xbe, 0x46,
- 0x6d, 0xfb, 0x91, 0x99, 0x24, 0x21, 0x5f, 0x81, 0x53, 0xe2, 0x00, 0x12, 0xbe, 0xa2, 0xf2, 0x8b,
- 0xb9, 0x27, 0xea, 0xcb, 0x8f, 0x8f, 0x96, 0xce, 0xc8, 0x10, 0x4e, 0xd2, 0x3b, 0x38, 0xed, 0xab,
- 0xd3, 0xb9, 0x90, 0x2d, 0x76, 0x20, 0xc7, 0xba, 0xe3, 0x2e, 0xf5, 0x7d, 0x7b, 0x4f, 0xbe, 0xac,
- 0x73, 0xeb, 0x7a, 0xa5, 0x33, 0xad, 0x36, 0x2f, 0x37, 0xfb, 0x52, 0x92, 0x35, 0x98, 0xde, 0xa6,
- 0x3b, 0xea, 0xf8, 0x8c, 0x86, 0x5b, 0x55, 0xf1, 0x21, 0xdd, 0xe9, 0x3f, 0x38, 0x31, 0x3a, 0xe2,
- 0xa0, 0xc2, 0xec, 0xd1, 0xe1, 0xba, 0xe3, 0x07, 0xb4, 0x43, 0x3d, 0x8c, 0x41, 0x30, 0x86, 0x9b,
- 0xc1, 0x42, 0x24, 0x21, 0xeb, 0xe5, 0x2b, 0x2f, 0x3c, 0x3e, 0x5a, 0x3a, 0xc7, 0xbd, 0x49, 0x5a,
- 0x02, 0x6e, 0xc5, 0xe2, 0x8e, 0x27, 0xb9, 0x92, 0xaf, 0xc1, 0x8c, 0xe9, 0xf6, 0x02, 0xa7, 0xb3,
- 0x57, 0x0f, 0x3c, 0x3b, 0xa0, 0x7b, 0xfc, 0x40, 0x8a, 0x82, 0x1d, 0xc4, 0x4a, 0xc5, 0x5b, 0x0b,
- 0x07, 0x5a, 0xbe, 0x80, 0x6a, 0x27, 0x82, 0x4e, 0x40, 0xbe, 0x0a, 0xd3, 0xdc, 0x4b, 0x30, 0xac,
- 0x60, 0x5c, 0x8b, 0x99, 0xaa, 0x17, 0xde, 0xbf, 0xc6, 0x2f, 0xa8, 0xdc, 0xdb, 0x30, 0xad, 0x82,
- 0x18, 0x37, 0xf2, 0xa1, 0xe8, 0xac, 0x9a, 0xd3, 0xd9, 0x0b, 0xa7, 0x31, 0x60, 0xcf, 0xbf, 0x1e,
- 0x75, 0x49, 0x97, 0x35, 0x57, 0x4e, 0xe3, 0x3e, 0x96, 0x1a, 0x49, 0x3e, 0x24, 0x80, 0x73, 0x25,
- 0xdf, 0x77, 0xfc, 0x40, 0x18, 0x56, 0xaf, 0x3e, 0xa2, 0x8d, 0x1e, 0x43, 0xde, 0x76, 0xbd, 0x03,
- 0xea, 0x71, 0xd3, 0xbe, 0x91, 0x95, 0x2b, 0x8f, 0x8f, 0x96, 0x5e, 0xb1, 0x11, 0xd1, 0x12, 0xb6,
- 0xd8, 0x16, 0x95, 0xa8, 0xd6, 0x43, 0x8e, 0xab, 0x7c, 0xc3, 0x60, 0xa6, 0xe4, 0xab, 0x70, 0xba,
- 0x6c, 0xfb, 0xb4, 0xda, 0xf1, 0x69, 0xc7, 0x77, 0x02, 0xe7, 0x01, 0x15, 0x9d, 0x8a, 0x87, 0x5f,
- 0x01, 0x23, 0xb4, 0x1b, 0x0d, 0x4c, 0xe6, 0x10, 0xa1, 0x58, 0x62, 0x50, 0x94, 0x6a, 0xfa, 0x70,
- 0x31, 0x8e, 0x32, 0x50, 0x8c, 0x77, 0x3b, 0xf9, 0x12, 0x8c, 0x73, 0x93, 0x04, 0xea, 0xef, 0x0b,
- 0x07, 0x37, 0xf9, 0xc2, 0x1d, 0xc2, 0x75, 0x22, 0xe1, 0x92, 0xc0, 0x0d, 0x1e, 0xa8, 0xfa, 0x5e,
- 0x8b, 0x2e, 0x09, 0x92, 0x88, 0x34, 0x61, 0x92, 0xf7, 0x2c, 0xc5, 0xa8, 0x24, 0xc2, 0x32, 0xed,
- 0x05, 0x75, 0x26, 0x8b, 0xa2, 0x18, 0x7f, 0x54, 0x79, 0x8b, 0xf1, 0xe3, 0x08, 0x5a, 0x15, 0x1a,
- 0xd7, 0x15, 0x80, 0x82, 0x24, 0x34, 0xce, 0xc2, 0x99, 0x3e, 0x6d, 0x36, 0x1e, 0xe0, 0x33, 0x58,
- 0x9f, 0x1a, 0xc9, 0x97, 0x60, 0x1e, 0x09, 0xcb, 0x6e, 0xa7, 0x43, 0x1b, 0x01, 0x6e, 0x1d, 0x52,
- 0x75, 0x94, 0xe3, 0x6f, 0xad, 0xfc, 0x7b, 0x1b, 0x21, 0x82, 0x15, 0xd7, 0x20, 0xa5, 0x72, 0x30,
- 0x7e, 0x26, 0x0b, 0x0b, 0x62, 0x37, 0x32, 0x69, 0xc3, 0xf5, 0x9a, 0x4f, 0xff, 0xe9, 0xb7, 0xaa,
- 0x9d, 0x7e, 0x17, 0x42, 0x8f, 0xe6, 0xb4, 0x8f, 0x1c, 0x70, 0xf8, 0xfd, 0x52, 0x06, 0x9e, 0x1b,
- 0x44, 0xc4, 0x7a, 0x27, 0x8c, 0xc2, 0x32, 0x9e, 0x88, 0xb6, 0xd2, 0x85, 0x39, 0x1c, 0xd0, 0xf2,
- 0x3e, 0x6d, 0x1c, 0xf8, 0x6b, 0xae, 0x1f, 0xa0, 0x61, 0x6c, 0xb6, 0xcf, 0x43, 0xcd, 0x6b, 0xa9,
- 0x0f, 0x35, 0xa7, 0xf9, 0x2c, 0x6b, 0x20, 0x0f, 0x1e, 0x27, 0xe6, 0x80, 0x1e, 0xfa, 0x66, 0x1a,
- 0x6b, 0x34, 0x72, 0x2c, 0xf5, 0x82, 0xfd, 0x9a, 0x47, 0x77, 0xa9, 0x47, 0x3b, 0x0d, 0xfa, 0x7d,
- 0x66, 0xe4, 0xa8, 0x7f, 0xdc, 0x50, 0xda, 0x86, 0x5f, 0x9a, 0x84, 0xf9, 0x34, 0x32, 0xd6, 0x2f,
- 0xca, 0x05, 0x37, 0x9e, 0xf7, 0xe5, 0xcf, 0x67, 0x60, 0xb2, 0x4e, 0x1b, 0x6e, 0xa7, 0x79, 0x13,
- 0x9f, 0xc3, 0x45, 0xef, 0x58, 0xfc, 0x80, 0x67, 0x70, 0x6b, 0x37, 0xf6, 0x4e, 0xfe, 0xbd, 0xa3,
- 0xa5, 0xf7, 0x87, 0xbb, 0x57, 0x36, 0x5c, 0xf4, 0x4a, 0x0e, 0x30, 0x18, 0x69, 0x58, 0x05, 0x6a,
- 0xb6, 0xb5, 0x4a, 0xc9, 0x0a, 0x4c, 0x89, 0xe5, 0xea, 0xaa, 0x41, 0x78, 0xb8, 0xd3, 0xb7, 0x2c,
- 0x48, 0x44, 0x1d, 0xd3, 0x48, 0xc8, 0x75, 0xc8, 0xdd, 0x5b, 0xbe, 0x29, 0xc6, 0x40, 0x86, 0x73,
- 0xbd, 0xb7, 0x7c, 0x13, 0x55, 0x57, 0xec, 0x3a, 0x30, 0xd5, 0x5b, 0xd6, 0x5e, 0xa8, 0xef, 0x2d,
- 0xdf, 0x24, 0x7f, 0x0e, 0x4e, 0x55, 0x1c, 0x5f, 0x54, 0xc1, 0xcd, 0x6d, 0x9b, 0xe8, 0x5e, 0x32,
- 0xda, 0x67, 0xf6, 0x7e, 0x2e, 0x75, 0xf6, 0xbe, 0xd0, 0x0c, 0x99, 0x58, 0xdc, 0x96, 0xb7, 0x19,
- 0x0f, 0x36, 0x94, 0x5e, 0x0f, 0xf9, 0x08, 0xa6, 0x51, 0xf5, 0x8a, 0x16, 0xc8, 0x18, 0x1c, 0x71,
- 0xac, 0x4f, 0xcd, 0x9f, 0x49, 0xad, 0x79, 0x11, 0x35, 0xb9, 0x16, 0xda, 0x31, 0x63, 0x20, 0x45,
- 0xed, 0x86, 0xae, 0x71, 0x26, 0xb7, 0x61, 0x46, 0x88, 0x4a, 0x9b, 0xbb, 0x5b, 0xfb, 0xb4, 0x62,
- 0x1f, 0x8a, 0xc7, 0x65, 0xbc, 0x7d, 0x09, 0xf9, 0xca, 0x72, 0x77, 0xad, 0x60, 0x9f, 0x5a, 0x4d,
- 0x5b, 0x13, 0x2a, 0x62, 0x84, 0xe4, 0x07, 0x61, 0x62, 0xdd, 0x6d, 0x30, 0x29, 0x19, 0x77, 0x06,
- 0xfe, 0xde, 0xfc, 0x01, 0xa6, 0x13, 0xe1, 0xe0, 0x98, 0xe8, 0xf3, 0xbd, 0xa3, 0xa5, 0xb7, 0x4e,
- 0x3a, 0x69, 0x94, 0x0a, 0x4c, 0xb5, 0x36, 0x52, 0x86, 0xc2, 0x36, 0xdd, 0x61, 0x5f, 0x1b, 0x4f,
- 0x35, 0x20, 0xc1, 0xc2, 0x9c, 0x44, 0xfc, 0xd2, 0xcc, 0x49, 0x04, 0x8c, 0x78, 0x30, 0x8b, 0xfd,
- 0x53, 0xb3, 0x7d, 0xff, 0xa1, 0xeb, 0x35, 0x31, 0xa6, 0x6c, 0xbf, 0xa7, 0xec, 0xe5, 0xd4, 0xce,
- 0x7f, 0x8e, 0x77, 0x7e, 0x57, 0xe1, 0xa0, 0x0a, 0x7b, 0x09, 0xf6, 0xe4, 0x6b, 0x30, 0x6d, 0xd2,
- 0xaf, 0xf7, 0x1c, 0x8f, 0xde, 0xbd, 0x59, 0xc2, 0x55, 0x39, 0xa9, 0x39, 0xe9, 0xe8, 0x85, 0x5c,
- 0xa2, 0xf4, 0x38, 0x4c, 0x6a, 0x8b, 0xac, 0xf6, 0xae, 0xad, 0xbf, 0x16, 0xa8, 0x24, 0xa4, 0x06,
- 0x13, 0x15, 0xfa, 0xc0, 0x69, 0x50, 0x74, 0x25, 0x10, 0xa6, 0x7c, 0x61, 0xac, 0xf4, 0xa8, 0x84,
- 0xeb, 0x4d, 0x9a, 0x08, 0xe0, 0x8e, 0x09, 0xba, 0xb5, 0x58, 0x88, 0x48, 0x6e, 0x40, 0xae, 0x5a,
- 0xa9, 0x09, 0x4b, 0x3e, 0x69, 0xa1, 0x5f, 0x6d, 0xd6, 0x64, 0x64, 0x69, 0x34, 0xfe, 0x70, 0x9a,
- 0x9a, 0x1d, 0x60, 0xb5, 0x52, 0x23, 0xbb, 0x30, 0x85, 0x1d, 0xb0, 0x46, 0x6d, 0xde, 0xb7, 0x33,
- 0x7d, 0xfa, 0xf6, 0x4a, 0x6a, 0xdf, 0x2e, 0xf0, 0xbe, 0xdd, 0x17, 0xd4, 0x5a, 0xa8, 0x5c, 0x95,
- 0x2d, 0x13, 0x3f, 0x45, 0xf8, 0x6e, 0x19, 0x2c, 0x76, 0x6b, 0x1d, 0x1f, 0xb7, 0x85, 0xf8, 0x29,
- 0xa3, 0x7d, 0x87, 0x11, 0x67, 0xfb, 0x1a, 0x0a, 0x27, 0xf9, 0x90, 0x2f, 0x40, 0x7e, 0xf3, 0x20,
- 0xb0, 0x17, 0x66, 0xb5, 0x7e, 0x64, 0x20, 0xf9, 0xf9, 0xa8, 0x31, 0x74, 0x0f, 0xb4, 0x70, 0x14,
- 0x48, 0x43, 0x96, 0x61, 0xac, 0x56, 0xbd, 0x5f, 0x6f, 0xb9, 0xc1, 0x02, 0x09, 0xef, 0x34, 0xa4,
- 0xeb, 0x3c, 0xb0, 0xfc, 0x96, 0xab, 0xa7, 0x00, 0x90, 0x88, 0x6c, 0xf8, 0xd6, 0x6c, 0xaf, 0xf9,
- 0xd0, 0xf6, 0xd0, 0x03, 0x6c, 0x4e, 0xab, 0x56, 0x29, 0xe1, 0xc3, 0xb7, 0x2f, 0x00, 0x31, 0xb7,
- 0x30, 0x95, 0x85, 0xd0, 0x06, 0xcc, 0x8a, 0x69, 0x22, 0x3e, 0xed, 0xee, 0xcd, 0x92, 0xf1, 0x1f,
- 0x67, 0x70, 0xc3, 0x24, 0xaf, 0xa0, 0xc7, 0x7a, 0xf8, 0xc0, 0x8b, 0x7a, 0x4d, 0xbb, 0x1b, 0x0b,
- 0xb0, 0xc8, 0x51, 0xc8, 0x6b, 0x30, 0x7a, 0xd3, 0x6e, 0xd0, 0x40, 0x3e, 0xec, 0x20, 0xf2, 0x2e,
- 0x42, 0x54, 0x25, 0x28, 0xc7, 0x61, 0xb2, 0x1c, 0x9f, 0x48, 0xa5, 0x28, 0x5d, 0x5b, 0xb9, 0x24,
- 0xdf, 0x75, 0x50, 0x96, 0x13, 0x13, 0x50, 0xc9, 0xe7, 0x16, 0xb3, 0x81, 0x4c, 0xe5, 0x60, 0xfc,
- 0x61, 0x26, 0xda, 0x01, 0xc8, 0xcb, 0x90, 0x37, 0x6b, 0x61, 0xfb, 0xb9, 0x37, 0x54, 0xac, 0xf9,
- 0x88, 0x40, 0x3e, 0x84, 0x53, 0x0a, 0x9f, 0x84, 0x41, 0xe6, 0x4b, 0xe8, 0xae, 0xa3, 0xb4, 0x24,
- 0xdd, 0x2a, 0x33, 0x9d, 0x07, 0x0a, 0xae, 0x51, 0x41, 0x85, 0x76, 0x1c, 0xce, 0x5b, 0xf9, 0x58,
- 0x95, 0x77, 0x13, 0x11, 0xe2, 0x1f, 0x9b, 0xc6, 0x81, 0x7b, 0xec, 0x18, 0xbf, 0x96, 0xd1, 0x56,
- 0x76, 0x98, 0xe4, 0x2a, 0x73, 0x4c, 0x92, 0xab, 0x37, 0x01, 0x4a, 0xbd, 0xc0, 0x5d, 0xed, 0x78,
- 0x6e, 0x8b, 0x6b, 0x17, 0x44, 0x8c, 0x51, 0xd4, 0x99, 0x52, 0x04, 0x6b, 0x8e, 0x05, 0x21, 0x72,
- 0xaa, 0xed, 0x6a, 0xee, 0xe3, 0xda, 0xae, 0x1a, 0xbf, 0x9d, 0xd1, 0xe6, 0x36, 0x93, 0xc8, 0xe4,
- 0xf2, 0x50, 0x4c, 0x0b, 0x92, 0xcb, 0x23, 0x5a, 0x1c, 0xff, 0x76, 0x06, 0x4e, 0x73, 0x23, 0xd0,
- 0x8d, 0x5e, 0x7b, 0x87, 0x7a, 0xf7, 0xed, 0x96, 0xd3, 0xe4, 0x1e, 0x69, 0x5c, 0xd8, 0xbc, 0x94,
- 0x5c, 0x28, 0xe9, 0xf8, 0xfc, 0x02, 0xc7, 0x8d, 0x52, 0xad, 0x0e, 0x16, 0x5a, 0x0f, 0xc2, 0x52,
- 0xf5, 0x02, 0x97, 0x4e, 0x6f, 0xfc, 0x72, 0x06, 0x5e, 0x38, 0xb6, 0x16, 0x72, 0x15, 0xc6, 0x64,
- 0x70, 0xd7, 0x0c, 0x76, 0x3c, 0x1a, 0x64, 0x25, 0x03, 0xbb, 0x4a, 0x2c, 0xf2, 0x65, 0x38, 0xa5,
- 0xb2, 0xda, 0xf2, 0x6c, 0x47, 0x0d, 0xa1, 0x9a, 0xd2, 0xea, 0x80, 0xa1, 0xc4, 0x25, 0xa3, 0x74,
- 0x26, 0xc6, 0xff, 0x99, 0x51, 0x12, 0xe2, 0x3d, 0xa5, 0xf2, 0xf2, 0x0d, 0x4d, 0x5e, 0x96, 0xb1,
- 0x82, 0xc2, 0xaf, 0x62, 0x65, 0xa9, 0x77, 0x9c, 0x19, 0xc5, 0xb0, 0x10, 0x01, 0xdf, 0xca, 0xc2,
- 0xc4, 0x3d, 0x9f, 0x7a, 0xfc, 0x81, 0xf3, 0xfb, 0x2b, 0x26, 0x4c, 0xf8, 0x5d, 0x43, 0x45, 0xed,
- 0xf8, 0xfd, 0x0c, 0x2a, 0xbe, 0x55, 0x0a, 0xd6, 0x1b, 0x4a, 0xaa, 0x0b, 0xec, 0x0d, 0x4c, 0x72,
- 0x81, 0x50, 0x1e, 0xd9, 0x63, 0x5d, 0xcf, 0x7a, 0x83, 0xa9, 0x8f, 0xd6, 0xc9, 0xfb, 0x30, 0x72,
- 0x0f, 0xd5, 0x78, 0xba, 0xf7, 0x71, 0xc8, 0x1f, 0x0b, 0xf9, 0x26, 0xdd, 0x63, 0x7f, 0xaa, 0x67,
- 0x0c, 0x96, 0x91, 0x3a, 0x8c, 0x95, 0x3d, 0x8a, 0x49, 0xec, 0xf2, 0xc3, 0x7b, 0xd0, 0x35, 0x38,
- 0x49, 0xdc, 0x83, 0x4e, 0x70, 0x32, 0x7e, 0x3a, 0x0b, 0x24, 0xfa, 0x46, 0x8c, 0xfe, 0xee, 0x3f,
- 0xb5, 0x83, 0xfe, 0x9e, 0x36, 0xe8, 0xe7, 0x12, 0x83, 0xce, 0x3f, 0x6f, 0xa8, 0xb1, 0xff, 0xf5,
- 0x0c, 0x9c, 0x4e, 0x27, 0x24, 0x17, 0x60, 0x74, 0x73, 0xab, 0x26, 0x1d, 0xd8, 0xc5, 0xa7, 0xb8,
- 0x5d, 0xbc, 0x97, 0x9b, 0xa2, 0x88, 0xbc, 0x0e, 0xa3, 0x5f, 0x34, 0xcb, 0xec, 0x1c, 0x52, 0x22,
- 0xad, 0x7e, 0xdd, 0xb3, 0x1a, 0xfa, 0x51, 0x24, 0x90, 0xd4, 0xb1, 0xcd, 0x3d, 0xb1, 0xb1, 0xfd,
- 0x89, 0x2c, 0xcc, 0x94, 0x1a, 0x0d, 0xea, 0xfb, 0x4c, 0xc8, 0xa1, 0x7e, 0xf0, 0xd4, 0x0e, 0x6c,
- 0xba, 0x6b, 0xba, 0xf6, 0x6d, 0x43, 0x8d, 0xea, 0x6f, 0x66, 0xe0, 0x94, 0xa4, 0x7a, 0xe0, 0xd0,
- 0x87, 0x5b, 0xfb, 0x1e, 0xf5, 0xf7, 0xdd, 0x56, 0x73, 0xe8, 0x70, 0xce, 0x4c, 0xd0, 0xc3, 0x18,
- 0x8d, 0xea, 0x6b, 0xf7, 0x2e, 0x42, 0x34, 0x41, 0x8f, 0xc7, 0x71, 0xbc, 0x0a, 0x63, 0xa5, 0x6e,
- 0xd7, 0x73, 0x1f, 0xf0, 0x65, 0x3f, 0x25, 0x1c, 0x0a, 0x39, 0x48, 0x73, 0x40, 0xe4, 0x20, 0xd6,
- 0x8c, 0x0a, 0xed, 0xf0, 0x48, 0x3a, 0x53, 0xbc, 0x19, 0x4d, 0xda, 0x51, 0x65, 0x58, 0x2c, 0x37,
- 0xea, 0x40, 0x6a, 0x9e, 0xdb, 0x76, 0x03, 0xda, 0xe4, 0xdf, 0x83, 0x7e, 0x9b, 0xc7, 0x06, 0x01,
- 0xd9, 0x72, 0x82, 0x96, 0x16, 0x04, 0x24, 0x60, 0x00, 0x93, 0xc3, 0x8d, 0xff, 0x6d, 0x04, 0x26,
- 0xd5, 0xde, 0x21, 0x06, 0x8f, 0xd1, 0xea, 0x7a, 0xaa, 0xf3, 0xb0, 0x8d, 0x10, 0x53, 0x94, 0x44,
- 0x3e, 0xf7, 0xd9, 0x63, 0x7d, 0xee, 0xb7, 0x61, 0xaa, 0xe6, 0xb9, 0x5d, 0xd7, 0xa7, 0x4d, 0x9e,
- 0xdc, 0x94, 0x6f, 0x85, 0x73, 0xca, 0x1d, 0x8f, 0x0d, 0x24, 0xbe, 0x13, 0xa2, 0x86, 0xa3, 0x2b,
- 0xb0, 0xad, 0x78, 0xea, 0x53, 0x9d, 0x0f, 0x37, 0x41, 0xb0, 0x7d, 0x11, 0x30, 0x2b, 0x34, 0x41,
- 0x60, 0x10, 0xdd, 0x04, 0x81, 0x41, 0xd4, 0xb5, 0x36, 0xf2, 0xa4, 0xd6, 0x1a, 0xf9, 0xe9, 0x0c,
- 0x4c, 0x94, 0x3a, 0x1d, 0xe1, 0xcb, 0x7f, 0x8c, 0x33, 0xe3, 0x97, 0x85, 0x15, 0xc2, 0x5b, 0x1f,
- 0xcb, 0x0a, 0x01, 0xe5, 0x16, 0x1f, 0x25, 0xd5, 0xa8, 0x42, 0xf5, 0x96, 0xa3, 0xb4, 0x83, 0xbc,
- 0x05, 0xc5, 0x70, 0x92, 0x57, 0x3b, 0x4d, 0xfa, 0x88, 0xfa, 0x0b, 0x63, 0xe7, 0x73, 0x97, 0xa6,
- 0x44, 0xa8, 0x3c, 0x55, 0x32, 0x8d, 0x23, 0x92, 0x2d, 0x00, 0x3b, 0x9c, 0x5d, 0xb1, 0xb4, 0x32,
- 0xc9, 0xe9, 0x27, 0xa4, 0x67, 0xfc, 0x8d, 0x0f, 0x3d, 0xaa, 0xf4, 0x1c, 0xf1, 0x21, 0x6d, 0x98,
- 0xe1, 0x39, 0x5d, 0x30, 0xd7, 0x2b, 0x46, 0x84, 0x85, 0x63, 0xc7, 0xe1, 0x65, 0xa1, 0xab, 0x7a,
- 0x56, 0x64, 0x8a, 0xc1, 0xf4, 0xb1, 0x56, 0x4a, 0x78, 0xd8, 0x38, 0x6f, 0x1e, 0x98, 0xd0, 0x3c,
- 0x93, 0x6c, 0x2f, 0x9f, 0xf4, 0x3f, 0x91, 0x81, 0xd3, 0xea, 0xa4, 0xaf, 0xf7, 0x76, 0xda, 0x0e,
- 0xde, 0x05, 0xc9, 0x15, 0x18, 0x17, 0x73, 0x32, 0xbc, 0x44, 0x25, 0x03, 0xdb, 0x46, 0x28, 0x64,
- 0x95, 0x4d, 0x43, 0xc6, 0x43, 0x48, 0xdd, 0x73, 0xb1, 0x7d, 0x8a, 0x15, 0x45, 0xf9, 0xc2, 0x3c,
- 0xfc, 0xad, 0xcf, 0x4f, 0x06, 0x31, 0xde, 0x85, 0x59, 0x7d, 0x24, 0xea, 0x34, 0x20, 0x97, 0x61,
- 0x4c, 0x0e, 0x5f, 0x26, 0x7d, 0xf8, 0x64, 0xb9, 0xb1, 0x0d, 0x24, 0x41, 0xef, 0xa3, 0xb9, 0x10,
- 0x0d, 0xa4, 0x39, 0x9b, 0x7c, 0xac, 0x4b, 0x20, 0x86, 0xb9, 0xb4, 0x27, 0x34, 0xfb, 0x55, 0x46,
- 0x6a, 0xfc, 0xe1, 0x34, 0xcc, 0xa5, 0xec, 0xb9, 0xc7, 0xc8, 0x44, 0x4b, 0xfa, 0x06, 0x31, 0x1e,
- 0xfa, 0x42, 0xcb, 0x6d, 0xe1, 0x5d, 0x99, 0xeb, 0x78, 0xc0, 0x76, 0x30, 0x28, 0x01, 0xf2, 0xa7,
- 0x21, 0x17, 0xa9, 0xe1, 0x0a, 0x46, 0x9e, 0x58, 0xb8, 0x82, 0x15, 0x98, 0x12, 0x5f, 0x25, 0xb6,
- 0xab, 0xd1, 0x48, 0x9b, 0xeb, 0xf1, 0x02, 0x2b, 0xb1, 0x6d, 0xe9, 0x24, 0x9c, 0x87, 0xef, 0xb6,
- 0x1e, 0x50, 0xc1, 0x63, 0x4c, 0xe5, 0x81, 0x05, 0xa9, 0x3c, 0x14, 0x12, 0xf2, 0x1f, 0x62, 0x8a,
- 0x0b, 0x84, 0xa8, 0x7b, 0x56, 0x61, 0xd0, 0x9e, 0xd5, 0x7c, 0x32, 0x7b, 0xd6, 0x39, 0xd9, 0xc6,
- 0xf4, 0xbd, 0x2b, 0xa5, 0x59, 0xe4, 0x17, 0x33, 0x30, 0xcb, 0x7d, 0xe6, 0xd5, 0xc6, 0x0e, 0xf4,
- 0x83, 0x6e, 0x3c, 0x99, 0xc6, 0x3e, 0x27, 0xa2, 0xd3, 0xa7, 0xb7, 0x35, 0xd9, 0x28, 0xf2, 0x03,
- 0x00, 0xe1, 0x8a, 0xf2, 0x17, 0x00, 0x97, 0xda, 0x73, 0x29, 0xbb, 0x40, 0x88, 0x14, 0x45, 0xd2,
- 0x0d, 0x42, 0x3a, 0x2d, 0xb1, 0x49, 0x08, 0x25, 0x7f, 0x0e, 0xe6, 0xd9, 0x7a, 0x09, 0x21, 0x22,
- 0xc2, 0xc7, 0xc2, 0x04, 0xd6, 0xf2, 0xd9, 0xfe, 0x32, 0xd1, 0x95, 0x34, 0x32, 0x1e, 0xf7, 0x2f,
- 0x4a, 0xe8, 0x16, 0xa8, 0xce, 0xc0, 0xa9, 0x15, 0x61, 0xc8, 0x1c, 0x6c, 0x3d, 0x8f, 0x76, 0xdb,
- 0x67, 0x7f, 0x3b, 0x2b, 0xd7, 0x02, 0xdf, 0xdf, 0x7c, 0xdd, 0x99, 0x0d, 0x41, 0xe4, 0x8b, 0x40,
- 0x42, 0x67, 0x73, 0x0e, 0xa3, 0x32, 0x12, 0x2e, 0x57, 0xed, 0x46, 0x4e, 0xeb, 0x9e, 0x2c, 0x56,
- 0x27, 0x49, 0x92, 0x98, 0x50, 0x98, 0x17, 0x1f, 0xcd, 0xa0, 0x32, 0x85, 0x86, 0xbf, 0x30, 0xad,
- 0xc5, 0x4f, 0x89, 0x4a, 0xa2, 0xcc, 0x6f, 0x4a, 0x1e, 0x0e, 0x4d, 0xe5, 0x94, 0xc6, 0x8e, 0xdc,
- 0x80, 0x71, 0xf4, 0x28, 0x5b, 0x93, 0x46, 0x50, 0xc2, 0x20, 0x03, 0x7d, 0xcf, 0xac, 0x7d, 0xdd,
- 0x94, 0x29, 0x42, 0x65, 0xd7, 0x81, 0x8a, 0x77, 0x68, 0xf6, 0x3a, 0xa8, 0x80, 0x15, 0xfa, 0x8e,
- 0xa6, 0x77, 0x68, 0x79, 0x3d, 0xdd, 0xe5, 0x10, 0x91, 0xc8, 0xd7, 0x60, 0xe2, 0xae, 0xfd, 0x48,
- 0xea, 0x5f, 0x85, 0x92, 0x75, 0xa8, 0x9c, 0xe5, 0x6d, 0xfb, 0x91, 0xd5, 0xec, 0xc5, 0xa3, 0x0e,
- 0xf2, 0x9c, 0xe5, 0x0a, 0x4b, 0xf2, 0x15, 0x00, 0x45, 0x2b, 0x4c, 0x8e, 0xad, 0xe0, 0x05, 0x19,
- 0x11, 0x28, 0x55, 0x5b, 0x8c, 0xfc, 0x15, 0x86, 0x31, 0xc9, 0x61, 0xfe, 0xd3, 0x93, 0x1c, 0x4e,
- 0x7d, 0x7a, 0x92, 0xc3, 0xe2, 0x0e, 0x9c, 0xed, 0xbb, 0x74, 0x52, 0x82, 0x34, 0x5e, 0xd5, 0x83,
- 0x34, 0x9e, 0xed, 0x77, 0xc4, 0xfa, 0x7a, 0xf0, 0xe4, 0xb9, 0xe2, 0x7c, 0x7f, 0xe9, 0xe4, 0xbb,
- 0xd9, 0xd8, 0x91, 0x2b, 0x2e, 0x16, 0x3c, 0xd8, 0x7e, 0x3f, 0x99, 0x24, 0x8b, 0x59, 0xc5, 0xf8,
- 0xa1, 0x9c, 0x8d, 0x2e, 0x34, 0xb1, 0xe4, 0xa9, 0xfc, 0x78, 0xfe, 0xa4, 0xa7, 0xef, 0xdb, 0x30,
- 0xcd, 0xf3, 0x09, 0xdd, 0xa1, 0x87, 0x0f, 0x5d, 0xaf, 0x29, 0x33, 0x64, 0xa2, 0x0c, 0x9e, 0xc8,
- 0xbc, 0x17, 0xc3, 0x25, 0x15, 0xe9, 0xa4, 0x34, 0x82, 0xb5, 0x9f, 0x4d, 0xdd, 0xc5, 0x18, 0xc2,
- 0x20, 0xff, 0x25, 0xf2, 0x46, 0x28, 0xa8, 0x51, 0x4f, 0x0d, 0xa1, 0xec, 0x49, 0x60, 0x8a, 0xbc,
- 0x46, 0x3d, 0xe3, 0x77, 0x73, 0x40, 0x78, 0x4d, 0x65, 0xbb, 0x6b, 0xa3, 0x0b, 0x9f, 0x83, 0xa1,
- 0x28, 0x8a, 0x02, 0xc7, 0xde, 0x69, 0x51, 0x35, 0x8e, 0x8b, 0x30, 0x3a, 0x0d, 0xcb, 0xac, 0xf8,
- 0x45, 0x27, 0x41, 0xd8, 0x67, 0xab, 0xcb, 0x7e, 0x92, 0xad, 0xee, 0x6b, 0xf0, 0x6c, 0xa9, 0x8b,
- 0x89, 0xc9, 0x64, 0x2d, 0x37, 0x5d, 0x4f, 0x6e, 0x52, 0x9a, 0x73, 0x88, 0x1d, 0xa2, 0x25, 0x5a,
- 0x3a, 0x88, 0x85, 0x22, 0xa7, 0xb0, 0x79, 0xd9, 0x0d, 0x54, 0x67, 0x63, 0x29, 0xa7, 0x74, 0xb1,
- 0x24, 0x45, 0x4e, 0xe1, 0x24, 0x92, 0x87, 0xe3, 0x49, 0x39, 0x05, 0x93, 0x06, 0x44, 0x3c, 0x1c,
- 0x8f, 0xf6, 0x91, 0x75, 0x42, 0x12, 0xf2, 0x36, 0x4c, 0x94, 0x7a, 0x81, 0x2b, 0x18, 0x0b, 0x6b,
- 0xe9, 0xc8, 0xae, 0x59, 0x34, 0x45, 0xbb, 0xfa, 0x44, 0xe8, 0xc6, 0x1f, 0xe4, 0xe0, 0x6c, 0x72,
- 0x78, 0x45, 0x69, 0xb8, 0x3e, 0x32, 0xc7, 0xac, 0x8f, 0xb4, 0xd9, 0xc0, 0x1f, 0x0b, 0x9e, 0xd8,
- 0x6c, 0xe0, 0xf9, 0xcd, 0x3e, 0xe6, 0x6c, 0xa8, 0xc3, 0x84, 0x7a, 0xde, 0xe5, 0x3f, 0xee, 0x79,
- 0xa7, 0x72, 0x61, 0x97, 0x7a, 0xee, 0x63, 0x3d, 0x12, 0x3d, 0x1d, 0xc5, 0xdd, 0xab, 0x39, 0x06,
- 0xf9, 0xb7, 0xe0, 0x3c, 0xdf, 0x93, 0xe2, 0x1f, 0xbb, 0x72, 0x28, 0x39, 0x8a, 0x81, 0x5b, 0x7e,
- 0x7c, 0xb4, 0x74, 0x85, 0xab, 0x4a, 0xac, 0x44, 0xb7, 0x59, 0x3b, 0x87, 0x96, 0x6c, 0x99, 0x52,
- 0xc9, 0xb1, 0xbc, 0x31, 0xa9, 0x99, 0x92, 0x33, 0xeb, 0xf5, 0x34, 0x37, 0x12, 0x1e, 0x89, 0x94,
- 0x83, 0x75, 0x0f, 0x12, 0xa9, 0x0e, 0xcb, 0xa6, 0xaa, 0xc3, 0xa4, 0x3e, 0x25, 0x97, 0xaa, 0x4f,
- 0xa9, 0xc0, 0x4c, 0xbd, 0xb7, 0x23, 0xeb, 0x46, 0xc4, 0xbc, 0xe6, 0x09, 0x97, 0xf6, 0x41, 0x71,
- 0x12, 0xe3, 0x47, 0xb3, 0x30, 0x59, 0x6b, 0xf5, 0xf6, 0x9c, 0x4e, 0xc5, 0x0e, 0xec, 0xa7, 0x56,
- 0x43, 0xf7, 0xa6, 0xa6, 0xa1, 0x0b, 0xbd, 0xa5, 0xc2, 0x0f, 0x1b, 0x4a, 0x3d, 0xf7, 0xed, 0x0c,
- 0xcc, 0x44, 0x24, 0xfc, 0x9c, 0x5d, 0x83, 0x3c, 0xfb, 0x21, 0xee, 0xad, 0xe7, 0x13, 0x8c, 0x79,
- 0xa2, 0x96, 0xf0, 0x2f, 0xa1, 0x33, 0xd3, 0xb3, 0x20, 0x20, 0x87, 0xc5, 0xcf, 0xc1, 0x78, 0xc4,
- 0xf6, 0x24, 0x09, 0x5a, 0x7e, 0x25, 0x03, 0xc5, 0xf8, 0x97, 0x90, 0x3b, 0x30, 0xc6, 0x38, 0x39,
- 0x54, 0x5e, 0xa9, 0x5f, 0xec, 0xf3, 0xcd, 0x57, 0x04, 0x1a, 0x6f, 0x1e, 0x76, 0x3e, 0xe5, 0x10,
- 0x53, 0x72, 0x58, 0x34, 0x61, 0x52, 0xc5, 0x4a, 0x69, 0xdd, 0x6b, 0xba, 0x70, 0x71, 0x3a, 0xbd,
- 0x1f, 0xb4, 0xb4, 0x32, 0x5a, 0xab, 0x85, 0xdc, 0x70, 0x51, 0x9b, 0x5c, 0xd8, 0x57, 0xb1, 0x79,
- 0xc3, 0xa7, 0xd9, 0x72, 0x14, 0x1c, 0x59, 0x9d, 0x67, 0x29, 0x13, 0x3a, 0xc4, 0x23, 0xaf, 0xc1,
- 0x28, 0xaf, 0x4f, 0x4d, 0xaf, 0xd0, 0x45, 0x88, 0x2a, 0xe2, 0x72, 0x1c, 0xe3, 0x6f, 0xe6, 0xe0,
- 0x74, 0xd4, 0xbc, 0x7b, 0xdd, 0xa6, 0x1d, 0xd0, 0x9a, 0xed, 0xd9, 0x6d, 0xff, 0x98, 0x15, 0x70,
- 0x29, 0xd1, 0x34, 0x0c, 0xb7, 0x2f, 0x9b, 0xa6, 0x34, 0xc8, 0x88, 0x35, 0x08, 0xd5, 0x97, 0xbc,
- 0x41, 0xb2, 0x19, 0xe4, 0x0e, 0xe4, 0xea, 0x34, 0x10, 0xdb, 0xe6, 0xc5, 0x44, 0xaf, 0xaa, 0xed,
- 0xba, 0x52, 0xa7, 0x01, 0x1f, 0x44, 0x1e, 0xfb, 0x83, 0x6a, 0xb1, 0x17, 0xeb, 0x34, 0x20, 0xdb,
- 0x30, 0xba, 0xfa, 0xa8, 0x4b, 0x1b, 0x81, 0x48, 0x2f, 0x74, 0x79, 0x30, 0x3f, 0x8e, 0xab, 0x64,
- 0x17, 0xa2, 0x08, 0x50, 0x3b, 0x8b, 0xa3, 0x2c, 0xde, 0x80, 0x82, 0xac, 0xfc, 0x24, 0x33, 0x77,
- 0xf1, 0x4d, 0x98, 0x50, 0x2a, 0x39, 0xd1, 0xa4, 0xff, 0x59, 0xb6, 0xaf, 0xba, 0x2d, 0x99, 0x91,
- 0x68, 0x35, 0x21, 0xe6, 0x65, 0x22, 0x9f, 0x5d, 0x2e, 0xe6, 0x59, 0x07, 0xa2, 0x68, 0x80, 0xbc,
- 0x57, 0x85, 0x99, 0xfa, 0x81, 0xd3, 0x8d, 0x42, 0xe0, 0x69, 0x87, 0x29, 0xc6, 0x8a, 0x17, 0x77,
- 0xee, 0xf8, 0x61, 0x1a, 0xa7, 0x33, 0xfe, 0x38, 0x03, 0xa3, 0xec, 0xaf, 0xfb, 0x37, 0x9e, 0xd2,
- 0x2d, 0xf3, 0xba, 0xb6, 0x65, 0xce, 0x2a, 0xf1, 0x67, 0x71, 0xe3, 0xb8, 0x71, 0xcc, 0x66, 0x79,
- 0x24, 0x06, 0x88, 0x23, 0x93, 0x5b, 0x30, 0x26, 0x2c, 0x6f, 0x84, 0x89, 0xb4, 0x1a, 0xd0, 0x56,
- 0xda, 0xe4, 0x84, 0x97, 0x73, 0xb7, 0x1b, 0xd7, 0x66, 0x48, 0x6a, 0x26, 0x92, 0xcb, 0x60, 0x84,
- 0x5a, 0x1e, 0x3b, 0x17, 0xfd, 0xcf, 0x78, 0x40, 0x56, 0x25, 0xf3, 0x64, 0x1f, 0xc7, 0xfe, 0x92,
- 0x78, 0xc8, 0xc8, 0x0d, 0x62, 0x72, 0x5a, 0xa6, 0xf9, 0x4a, 0x7d, 0xe3, 0xf8, 0xbd, 0x39, 0x1e,
- 0xca, 0x54, 0x36, 0xec, 0x1d, 0x98, 0xbc, 0xe9, 0x7a, 0x0f, 0x6d, 0x8f, 0x07, 0xa8, 0x13, 0x96,
- 0x03, 0xec, 0xea, 0x38, 0xb5, 0xcb, 0xe1, 0x3c, 0xc4, 0xdd, 0xf7, 0x8e, 0x96, 0xf2, 0x2b, 0xae,
- 0xdb, 0x32, 0x35, 0x74, 0xb2, 0x09, 0x53, 0x77, 0xed, 0x47, 0xca, 0xa5, 0x97, 0x3b, 0x94, 0x5c,
- 0x66, 0x13, 0x98, 0xdd, 0x9a, 0x8f, 0x37, 0x83, 0xd2, 0xe9, 0x89, 0x03, 0xd3, 0x35, 0xd7, 0x0b,
- 0x44, 0x25, 0x4e, 0x67, 0x4f, 0x7c, 0x6c, 0xd2, 0x90, 0xeb, 0x6a, 0xaa, 0x21, 0xd7, 0xd9, 0xae,
- 0xeb, 0x05, 0xd6, 0x6e, 0x48, 0xae, 0x05, 0xcd, 0xd1, 0x18, 0x93, 0x77, 0x60, 0x56, 0x09, 0x0a,
- 0x76, 0xd3, 0xf5, 0xda, 0xb6, 0x14, 0xca, 0x51, 0x0f, 0x8c, 0xf6, 0x26, 0xbb, 0x08, 0x36, 0x93,
- 0x98, 0xe4, 0xc3, 0x34, 0x17, 0x9d, 0x91, 0xc8, 0x12, 0x2c, 0xc5, 0x45, 0xa7, 0x9f, 0x25, 0x58,
- 0xd2, 0x59, 0x67, 0x6f, 0x90, 0xa5, 0x68, 0x61, 0xe5, 0x9a, 0xb8, 0x7e, 0x1f, 0x6f, 0x09, 0x1a,
- 0x8e, 0x5b, 0x1f, 0x8b, 0xd0, 0x65, 0xc8, 0xad, 0xd4, 0x6e, 0xe2, 0xeb, 0x85, 0x34, 0xb4, 0xe9,
- 0xec, 0xdb, 0x9d, 0x06, 0x0a, 0xcb, 0xc2, 0x3a, 0x5b, 0xdd, 0x91, 0x57, 0x6a, 0x37, 0x89, 0x0d,
- 0x73, 0x35, 0xea, 0xb5, 0x9d, 0xe0, 0x4b, 0xd7, 0xae, 0x29, 0x03, 0x55, 0xc0, 0xa6, 0x5d, 0x15,
- 0x4d, 0x5b, 0xea, 0x22, 0x8a, 0xf5, 0xe8, 0xda, 0xb5, 0xd4, 0xe1, 0x08, 0x1b, 0x96, 0xc6, 0x8b,
- 0xed, 0x8c, 0x77, 0xed, 0x47, 0x91, 0x51, 0xbd, 0x2f, 0x9c, 0x1d, 0xcf, 0xc9, 0x89, 0x15, 0x19,
- 0xe4, 0x6b, 0x3b, 0xa3, 0x4e, 0xc4, 0xee, 0x3a, 0xd1, 0xf4, 0xf2, 0x85, 0x9b, 0xc8, 0xa2, 0x54,
- 0xe9, 0x48, 0x8f, 0x58, 0x55, 0x60, 0x57, 0xd0, 0xc9, 0xbd, 0xf0, 0xc6, 0xc6, 0x6f, 0x3c, 0x22,
- 0x89, 0xd5, 0x55, 0xf5, 0xc6, 0xc6, 0x15, 0x29, 0xda, 0x67, 0xcd, 0x84, 0xd7, 0x7c, 0xee, 0x65,
- 0x60, 0xea, 0x5c, 0x92, 0x17, 0xc1, 0xc9, 0x93, 0x5f, 0x04, 0x29, 0xe4, 0xd7, 0xdd, 0xc6, 0x81,
- 0x88, 0xf4, 0xf3, 0x45, 0xb6, 0xdc, 0x5b, 0x6e, 0xe3, 0xe0, 0xc9, 0x59, 0xc0, 0x22, 0x7b, 0xb2,
- 0xc1, 0x9a, 0xca, 0x66, 0x81, 0xe8, 0x13, 0x61, 0x55, 0x39, 0x1f, 0xde, 0x84, 0x94, 0x32, 0x2e,
- 0xf8, 0xf0, 0x49, 0x23, 0xbb, 0xd6, 0xd4, 0xc9, 0x09, 0x85, 0x62, 0x85, 0xfa, 0x07, 0x81, 0xdb,
- 0x2d, 0xb7, 0x9c, 0xee, 0x8e, 0x6b, 0x7b, 0x4d, 0xd4, 0xdd, 0xa5, 0xad, 0xef, 0x97, 0x53, 0xd7,
- 0xf7, 0x6c, 0x93, 0xd3, 0x5b, 0x0d, 0xc9, 0xc0, 0x4c, 0xb0, 0x24, 0x1f, 0xc2, 0x34, 0x9b, 0xdc,
- 0xab, 0x8f, 0x02, 0xda, 0xe1, 0x23, 0x3f, 0x8b, 0xa2, 0xc3, 0xbc, 0x12, 0xf8, 0x3b, 0x2c, 0xe4,
- 0x73, 0x0a, 0x17, 0x3b, 0x0d, 0x09, 0xb4, 0x28, 0x49, 0x1a, 0x2b, 0xd2, 0x84, 0x85, 0xbb, 0xf6,
- 0x23, 0x25, 0xf5, 0x96, 0x32, 0x49, 0x09, 0x4e, 0x30, 0x4c, 0x35, 0xce, 0x26, 0x58, 0x14, 0xa0,
- 0xb3, 0xcf, 0x7c, 0xed, 0xcb, 0x89, 0xfc, 0x20, 0x9c, 0x11, 0x9f, 0x55, 0xc1, 0x6c, 0x18, 0xae,
- 0x77, 0x58, 0xdf, 0xb7, 0xd1, 0x9f, 0x66, 0xee, 0x64, 0x1b, 0xa2, 0xec, 0xb0, 0xa6, 0xe4, 0x63,
- 0xf9, 0x9c, 0x91, 0xd9, 0xaf, 0x06, 0xf2, 0x11, 0x4c, 0xf3, 0x27, 0x9b, 0x35, 0xd7, 0x0f, 0xf0,
- 0x42, 0x3f, 0x7f, 0x32, 0x33, 0x71, 0xfe, 0x0e, 0xc4, 0x1d, 0x2b, 0x62, 0x0a, 0x80, 0x18, 0x67,
- 0xf2, 0x16, 0x4c, 0xd4, 0x9c, 0x0e, 0x8f, 0x63, 0x56, 0xad, 0xa1, 0xea, 0x51, 0x9c, 0x3f, 0x5d,
- 0xa7, 0x63, 0xc9, 0x5b, 0x75, 0x37, 0xdc, 0x2e, 0x54, 0x6c, 0xb2, 0x0d, 0x13, 0xf5, 0xfa, 0xda,
- 0x4d, 0x87, 0x1d, 0x80, 0xdd, 0xc3, 0x85, 0xd3, 0x7d, 0x5a, 0x79, 0x21, 0xb5, 0x95, 0x53, 0xbe,
- 0xbf, 0x8f, 0xe9, 0x8c, 0xad, 0x86, 0xdb, 0x3d, 0x34, 0x55, 0x4e, 0x29, 0xa6, 0xd3, 0x67, 0x9e,
- 0xb0, 0xe9, 0x74, 0x15, 0x66, 0x14, 0x03, 0x4b, 0x34, 0xae, 0x5c, 0x88, 0xc2, 0x76, 0xa9, 0xa6,
- 0xd2, 0x71, 0xb7, 0xbe, 0x38, 0x9d, 0xb4, 0x99, 0x3e, 0x7b, 0x52, 0x9b, 0x69, 0x07, 0x66, 0xf9,
- 0x60, 0x88, 0x79, 0x80, 0x23, 0xbd, 0xd8, 0xa7, 0x0f, 0x2f, 0xa7, 0xf6, 0xe1, 0x9c, 0x18, 0x69,
- 0x39, 0xc9, 0xf0, 0x89, 0x32, 0xc9, 0x95, 0xec, 0x02, 0x11, 0x40, 0x91, 0x4c, 0x19, 0xeb, 0x7a,
- 0xb6, 0x4f, 0x5d, 0x2f, 0xa6, 0xd6, 0x35, 0x2d, 0xeb, 0xda, 0xe1, 0xd5, 0xa4, 0x70, 0x24, 0x1d,
- 0x59, 0x8f, 0x9c, 0x5f, 0xd8, 0xb1, 0xcf, 0x69, 0x7a, 0xd0, 0x24, 0x02, 0x0f, 0x22, 0x1a, 0x9f,
- 0xb4, 0xf1, 0x7e, 0x4f, 0xe1, 0x4c, 0x1e, 0xc1, 0xe9, 0x64, 0x2b, 0xb0, 0xce, 0x73, 0x58, 0xe7,
- 0x39, 0xad, 0xce, 0x38, 0x12, 0x9f, 0x37, 0xfa, 0x67, 0xc5, 0x6b, 0xed, 0xc3, 0xff, 0x76, 0xbe,
- 0x30, 0x55, 0x9c, 0x4e, 0xb3, 0xb4, 0xfe, 0xc7, 0xd9, 0xd8, 0xa6, 0x4d, 0xaa, 0x30, 0x26, 0xc6,
- 0x42, 0x48, 0xb1, 0xc9, 0x1e, 0x3f, 0x97, 0xda, 0xe3, 0x63, 0x62, 0x58, 0x4d, 0x49, 0x4f, 0x1e,
- 0x32, 0x56, 0x68, 0xb6, 0x2e, 0xc4, 0xfe, 0xaf, 0xf0, 0x3d, 0x19, 0x41, 0xda, 0xe9, 0x53, 0x39,
- 0xb9, 0xd3, 0x8e, 0xee, 0x13, 0x86, 0xc7, 0x90, 0xac, 0x8d, 0x1c, 0xf0, 0x4c, 0x01, 0xb9, 0xd0,
- 0xf3, 0x43, 0x4f, 0x0b, 0xf0, 0xc4, 0x2a, 0x64, 0xb5, 0x18, 0xbf, 0x96, 0x81, 0x29, 0x6d, 0xd7,
- 0x27, 0x37, 0x14, 0xb7, 0xa6, 0xc8, 0x2b, 0x57, 0xc3, 0xc1, 0x8d, 0x20, 0xee, 0xf0, 0x74, 0x43,
- 0xd8, 0x4d, 0x67, 0xfb, 0xd3, 0xa5, 0xe6, 0x14, 0x1f, 0xac, 0x24, 0x0b, 0x33, 0x0f, 0xe5, 0xfb,
- 0x64, 0x1e, 0xfa, 0xe7, 0x8b, 0x30, 0xad, 0x5f, 0x0b, 0xc8, 0x6b, 0x30, 0x8a, 0xba, 0x45, 0x79,
- 0xc7, 0xe4, 0x99, 0x77, 0x11, 0xa2, 0x65, 0xde, 0x45, 0x08, 0x79, 0x09, 0x20, 0x34, 0x60, 0x95,
- 0x9a, 0xf5, 0x91, 0xc7, 0x47, 0x4b, 0x99, 0xd7, 0x4d, 0xa5, 0x80, 0x7c, 0x15, 0x60, 0xc3, 0x6d,
- 0xd2, 0x30, 0x37, 0xda, 0x80, 0xd7, 0xe3, 0x97, 0x13, 0x51, 0xb4, 0x4f, 0x75, 0xdc, 0x26, 0x4d,
- 0x86, 0xcc, 0x56, 0x38, 0x92, 0x2f, 0xc0, 0x88, 0xd9, 0x63, 0xf7, 0x59, 0xae, 0x4a, 0x98, 0x90,
- 0xbb, 0x6f, 0xaf, 0x45, 0x95, 0x34, 0xfd, 0xbd, 0xb8, 0x61, 0x14, 0x03, 0x90, 0xf7, 0x78, 0x74,
- 0x6d, 0x11, 0x0c, 0x6b, 0x24, 0x7a, 0x6b, 0x50, 0x4e, 0xe5, 0x44, 0x38, 0x2c, 0x85, 0x84, 0x6c,
- 0xc2, 0x98, 0xaa, 0x24, 0x57, 0xfc, 0x63, 0xd5, 0x87, 0x14, 0xe5, 0xe6, 0x25, 0x92, 0xaa, 0xc5,
- 0xf5, 0xe7, 0x92, 0x0b, 0x79, 0x1b, 0xc6, 0x19, 0x7b, 0xb6, 0x84, 0x7d, 0x21, 0x71, 0xe3, 0x8b,
- 0x82, 0xd2, 0x20, 0xb6, 0x03, 0x68, 0x21, 0xab, 0x42, 0x02, 0xf2, 0x21, 0xe6, 0x0d, 0x13, 0x5d,
- 0x3d, 0xd0, 0xaa, 0xe0, 0x62, 0xa2, 0xab, 0x31, 0x91, 0x58, 0x32, 0xa5, 0x6c, 0xc8, 0x8f, 0xec,
- 0x85, 0xa1, 0x94, 0x86, 0x89, 0x88, 0xfe, 0x4a, 0xa2, 0x82, 0x05, 0x19, 0x1d, 0x28, 0x99, 0xe3,
- 0x4e, 0xe3, 0x4b, 0xba, 0x50, 0x8c, 0x04, 0x1e, 0x51, 0x17, 0x0c, 0xaa, 0xeb, 0xf5, 0x44, 0x5d,
- 0xea, 0x00, 0x26, 0xaa, 0x4b, 0x70, 0x27, 0x4d, 0x98, 0x96, 0x9b, 0xa7, 0xa8, 0x6f, 0x62, 0x50,
- 0x7d, 0x2f, 0x25, 0xea, 0x9b, 0x6b, 0xee, 0x24, 0xeb, 0x89, 0xf1, 0x24, 0x6f, 0xc3, 0x94, 0x84,
- 0xe0, 0xfa, 0x10, 0xb9, 0x6b, 0x51, 0x2b, 0xd2, 0xdc, 0x41, 0x93, 0x79, 0x3d, 0xf3, 0x9f, 0x8a,
- 0xac, 0x52, 0xf3, 0xd9, 0x31, 0xa5, 0x51, 0xc7, 0x67, 0x85, 0x8e, 0x4c, 0x3e, 0x80, 0x89, 0x6a,
- 0x9b, 0x7d, 0x88, 0xdb, 0xb1, 0x03, 0x2a, 0x7c, 0xa7, 0xa4, 0x85, 0x84, 0x52, 0xa2, 0x4c, 0x55,
- 0x9e, 0x4b, 0x2f, 0x2a, 0xd2, 0x72, 0xe9, 0x45, 0x60, 0xd6, 0x79, 0xfc, 0x55, 0x44, 0xcc, 0x61,
- 0xe9, 0x57, 0x75, 0x2e, 0xc5, 0x4a, 0x41, 0x61, 0x2f, 0x82, 0xce, 0x31, 0xa8, 0x7c, 0x95, 0x88,
- 0x05, 0x9d, 0x53, 0x79, 0x92, 0x77, 0x60, 0x42, 0x24, 0x8b, 0x28, 0x99, 0x1b, 0xfe, 0x42, 0x11,
- 0x3f, 0x1e, 0xbd, 0xc1, 0x65, 0x5e, 0x09, 0xcb, 0xf6, 0x62, 0xe6, 0x78, 0x11, 0x3e, 0xf9, 0x12,
- 0xcc, 0x6f, 0x3b, 0x9d, 0xa6, 0xfb, 0xd0, 0x17, 0xc7, 0x94, 0xd8, 0xe8, 0x66, 0x23, 0x67, 0x98,
- 0x87, 0xbc, 0x3c, 0x94, 0x53, 0x12, 0x1b, 0x5f, 0x2a, 0x07, 0xf2, 0x67, 0x13, 0x9c, 0xf9, 0x0c,
- 0x22, 0x83, 0x66, 0xd0, 0x72, 0x62, 0x06, 0x25, 0xab, 0x8f, 0x4f, 0xa7, 0xd4, 0x6a, 0x88, 0x0b,
- 0x44, 0x3f, 0xdf, 0x6f, 0xbb, 0x4e, 0x67, 0x61, 0x0e, 0xf7, 0xc2, 0x67, 0xe3, 0xfe, 0xd7, 0x88,
- 0x57, 0x73, 0x5b, 0x4e, 0xe3, 0x90, 0xe7, 0xad, 0x8f, 0xcb, 0xa3, 0x1f, 0xb9, 0x9a, 0xce, 0x38,
- 0x85, 0x35, 0xf9, 0x00, 0x26, 0xd9, 0xff, 0xe1, 0x85, 0x79, 0x5e, 0xb3, 0x6b, 0x53, 0x30, 0x45,
- 0x3d, 0x38, 0x46, 0x98, 0xcd, 0x22, 0xe5, 0x2e, 0xad, 0xb1, 0x22, 0x6f, 0x02, 0x30, 0xc9, 0x49,
- 0x6c, 0xc7, 0xa7, 0xa2, 0x18, 0x7f, 0x28, 0x6f, 0x25, 0x37, 0xe2, 0x08, 0x99, 0xdd, 0xe2, 0xd9,
- 0xaf, 0x7a, 0xaf, 0xe9, 0xb2, 0xb5, 0x71, 0x1a, 0x69, 0xb9, 0x4b, 0x1a, 0xa3, 0xf5, 0x39, 0x5c,
- 0x73, 0x49, 0x8b, 0xd0, 0xc9, 0x1a, 0xcc, 0x60, 0x2c, 0xc6, 0x6a, 0x93, 0x76, 0x02, 0x7c, 0xad,
- 0x5c, 0x38, 0xa3, 0xbc, 0xe6, 0xb2, 0x22, 0xcb, 0x09, 0xcb, 0x54, 0x39, 0x3b, 0x46, 0x46, 0x7c,
- 0x98, 0x8b, 0x76, 0x97, 0xe8, 0x6d, 0x78, 0x01, 0x3b, 0x49, 0x4a, 0x97, 0x49, 0x0c, 0xbe, 0x1f,
- 0xb3, 0x11, 0x51, 0x36, 0x2e, 0xa9, 0x59, 0x57, 0x2b, 0x4c, 0xe3, 0x4e, 0x4c, 0x20, 0xb7, 0xca,
- 0xb5, 0x78, 0xb0, 0xc2, 0xb3, 0xf8, 0x05, 0x38, 0xcc, 0x7b, 0x8d, 0x28, 0x6b, 0x63, 0x4a, 0xc0,
- 0xc2, 0x14, 0x6a, 0xf2, 0x0d, 0x38, 0x25, 0x77, 0x10, 0x51, 0x24, 0xe6, 0xf5, 0xe2, 0x09, 0x77,
- 0xe2, 0xe6, 0x4e, 0x58, 0x75, 0x62, 0x4a, 0xa7, 0x57, 0x41, 0x6c, 0x98, 0xc0, 0x61, 0x15, 0x35,
- 0x3e, 0x3b, 0xa8, 0xc6, 0x4b, 0x89, 0x1a, 0x4f, 0xe3, 0x44, 0x49, 0x56, 0xa6, 0xf2, 0x24, 0x2b,
- 0x30, 0x25, 0xd6, 0x91, 0x98, 0x6d, 0xcf, 0x61, 0x6f, 0xa1, 0x82, 0x45, 0xae, 0xc0, 0xc4, 0x84,
- 0xd3, 0x49, 0xd4, 0x1d, 0x99, 0x6b, 0xd4, 0xcf, 0x69, 0x3b, 0x72, 0x5c, 0x91, 0xae, 0x23, 0xb3,
- 0x1d, 0x29, 0x92, 0x62, 0x56, 0x1f, 0x75, 0x3d, 0xa1, 0x3e, 0x79, 0x3e, 0x8a, 0xe1, 0xaf, 0x08,
- 0x3f, 0x16, 0x0d, 0x31, 0xd4, 0x2d, 0x21, 0x8d, 0x03, 0xb9, 0x07, 0x73, 0xe1, 0xa9, 0xad, 0x30,
- 0x5e, 0x8a, 0x72, 0x21, 0x44, 0x47, 0x7d, 0x3a, 0xdf, 0x34, 0x7a, 0x62, 0xc3, 0x19, 0xed, 0x9c,
- 0x56, 0x58, 0x9f, 0x47, 0xd6, 0x98, 0x25, 0x54, 0x3f, 0xe4, 0xd3, 0xd9, 0xf7, 0xe3, 0x43, 0x3e,
- 0x82, 0xc5, 0xf8, 0xd9, 0xac, 0xd4, 0xf2, 0x02, 0xd6, 0xf2, 0xca, 0xe3, 0xa3, 0xa5, 0x8b, 0x89,
- 0xe3, 0x3d, 0xbd, 0xa2, 0x01, 0xdc, 0xc8, 0x57, 0x61, 0x41, 0x3f, 0x9f, 0x95, 0x9a, 0x0c, 0xac,
- 0x09, 0x97, 0x4e, 0x78, 0xb0, 0xa7, 0xd7, 0xd0, 0x97, 0x07, 0x09, 0x60, 0x29, 0x75, 0x76, 0x2b,
- 0xd5, 0x5c, 0x88, 0x3e, 0x28, 0xb1, 0x4a, 0xd2, 0xab, 0x3b, 0x8e, 0x25, 0x79, 0x08, 0xcf, 0xa7,
- 0x1d, 0x13, 0x4a, 0xa5, 0x2f, 0x86, 0x0a, 0xca, 0x57, 0xd3, 0x8f, 0x9c, 0xf4, 0x9a, 0x8f, 0x61,
- 0x4b, 0x3e, 0x84, 0x53, 0xca, 0xfa, 0x52, 0xea, 0x7b, 0x09, 0xeb, 0x43, 0x57, 0x56, 0x75, 0x61,
- 0xa6, 0xd7, 0x92, 0xce, 0x83, 0xb4, 0x61, 0x4e, 0x7e, 0x38, 0x6a, 0x82, 0xc5, 0xd1, 0x73, 0x51,
- 0xdb, 0x55, 0x93, 0x18, 0x4a, 0x7a, 0xe5, 0x1d, 0xab, 0x1b, 0x11, 0xaa, 0x33, 0x3d, 0x85, 0x2f,
- 0x59, 0x83, 0xd1, 0x7a, 0xad, 0x7a, 0xf3, 0xe6, 0xea, 0xc2, 0xcb, 0x58, 0x83, 0xf4, 0x7b, 0xe1,
- 0x40, 0xed, 0xd2, 0x24, 0xcc, 0xad, 0xba, 0xce, 0xee, 0xae, 0xe6, 0x5e, 0xc4, 0x51, 0x8d, 0x9f,
- 0xcd, 0xc0, 0x5c, 0x0a, 0x15, 0xb9, 0x08, 0x79, 0x4c, 0x05, 0xa0, 0x3c, 0x07, 0xc7, 0x52, 0x00,
- 0x60, 0x39, 0xf9, 0x0c, 0x8c, 0x55, 0x36, 0xea, 0xf5, 0xd2, 0x86, 0xbc, 0x60, 0xf1, 0xcd, 0xa5,
- 0xe3, 0x5b, 0xbe, 0xad, 0xbf, 0x22, 0x09, 0x34, 0xf2, 0x3a, 0x8c, 0x56, 0x6b, 0x48, 0xc0, 0xed,
- 0x91, 0xf0, 0xc2, 0xe1, 0x74, 0xe3, 0xf8, 0x02, 0xc9, 0xf8, 0xb1, 0x0c, 0x90, 0x64, 0x17, 0x90,
- 0x6b, 0x30, 0xa1, 0x76, 0x34, 0xbf, 0x0e, 0xe2, 0x8b, 0x87, 0xd2, 0x8d, 0xa6, 0x8a, 0x43, 0x2a,
- 0x30, 0x82, 0xa9, 0x8b, 0xc2, 0xe7, 0xab, 0xd4, 0xed, 0xfa, 0x4c, 0x62, 0xbb, 0x1e, 0xc1, 0xc4,
- 0x48, 0x26, 0x27, 0x36, 0x7e, 0x33, 0x03, 0x24, 0x79, 0xc4, 0x0d, 0xfd, 0x7c, 0xfe, 0x86, 0xe2,
- 0x4f, 0xaa, 0x06, 0xfb, 0x0e, 0x33, 0x35, 0xa8, 0x57, 0x9b, 0xc8, 0xf3, 0xf4, 0xa2, 0x76, 0x95,
- 0xee, 0xef, 0x84, 0x74, 0x19, 0x46, 0xee, 0x53, 0x6f, 0x47, 0x9a, 0xda, 0xa1, 0x79, 0xce, 0x03,
- 0x06, 0x50, 0xaf, 0x96, 0x88, 0x61, 0xfc, 0x41, 0x06, 0xe6, 0xd3, 0xe4, 0xae, 0x63, 0x7c, 0x85,
- 0x8c, 0x98, 0x9b, 0x13, 0x3e, 0x9d, 0x73, 0xdb, 0x9d, 0xd0, 0xb9, 0x69, 0x09, 0x46, 0xd8, 0xc7,
- 0xca, 0x11, 0xc6, 0xab, 0x3d, 0xeb, 0x0d, 0xdf, 0xe4, 0x70, 0x86, 0xc0, 0x63, 0x14, 0xe5, 0x31,
- 0x14, 0x15, 0x22, 0xe0, 0xb1, 0x6e, 0x72, 0x38, 0x43, 0xb8, 0xeb, 0x36, 0xc3, 0x7c, 0x9d, 0x88,
- 0xd0, 0x66, 0x00, 0x93, 0xc3, 0xc9, 0x45, 0x18, 0xdb, 0xec, 0xac, 0x53, 0xfb, 0x81, 0x4c, 0x36,
- 0x81, 0x4f, 0xfd, 0x6e, 0xc7, 0x6a, 0x31, 0x98, 0x29, 0x0b, 0x8d, 0x6f, 0x67, 0x60, 0x36, 0x21,
- 0xf2, 0x1d, 0xef, 0x0e, 0x35, 0xd8, 0x2f, 0x61, 0x98, 0xef, 0xe3, 0xcd, 0xcf, 0xa7, 0x37, 0xdf,
- 0xf8, 0x3f, 0xf2, 0x70, 0xa6, 0xcf, 0x0d, 0x3c, 0xf2, 0x9b, 0xca, 0x1c, 0xeb, 0x37, 0xf5, 0x65,
- 0x76, 0xe3, 0xb5, 0x9d, 0xb6, 0xbf, 0xe5, 0x46, 0x2d, 0x8e, 0xcc, 0xaf, 0xb1, 0x4c, 0xa6, 0x2c,
- 0x95, 0x76, 0xba, 0x67, 0x79, 0xda, 0x68, 0x2b, 0x70, 0x93, 0x02, 0x80, 0xc6, 0x2c, 0xe1, 0xb9,
- 0x94, 0xfb, 0x53, 0xe2, 0xb9, 0xa4, 0xdb, 0xd2, 0xe7, 0x9f, 0xa8, 0x2d, 0x7d, 0xba, 0x1d, 0xde,
- 0xc8, 0x27, 0xb1, 0xca, 0x2c, 0xc3, 0x14, 0xb7, 0x75, 0x28, 0xf9, 0x7c, 0x90, 0x46, 0x13, 0xf6,
- 0x11, 0xb6, 0x9f, 0x1c, 0x0b, 0x8d, 0x86, 0xac, 0xe9, 0x76, 0xdf, 0x63, 0xf8, 0x46, 0x73, 0xb1,
- 0xbf, 0x5d, 0xb7, 0xf6, 0x36, 0xab, 0x92, 0x1a, 0xdf, 0xce, 0xea, 0x6e, 0x4d, 0x7f, 0x1a, 0x67,
- 0xde, 0x65, 0x18, 0xd9, 0xde, 0xa7, 0x9e, 0xdc, 0xef, 0xb0, 0x21, 0x0f, 0x19, 0x40, 0x6d, 0x08,
- 0x62, 0x90, 0x9b, 0x30, 0x5d, 0xe3, 0x23, 0x21, 0xbb, 0x37, 0x1f, 0x5d, 0x8c, 0xba, 0xe2, 0xfa,
- 0x9e, 0xd2, 0xbf, 0x31, 0x2a, 0xe3, 0x16, 0x9c, 0xd3, 0x16, 0xa4, 0x08, 0xc3, 0xc0, 0xcd, 0xaf,
- 0xf9, 0x89, 0x38, 0x1d, 0x19, 0x9c, 0x47, 0xbb, 0x87, 0x19, 0x83, 0x1a, 0xbb, 0xf0, 0xfc, 0x40,
- 0x46, 0xec, 0x20, 0x82, 0x6e, 0xf8, 0x2b, 0x66, 0x23, 0x36, 0x90, 0xd4, 0x54, 0xe8, 0x8c, 0x1f,
- 0x84, 0x49, 0xb5, 0x97, 0x71, 0x4f, 0x65, 0xbf, 0xc5, 0xa6, 0xc6, 0xf7, 0x54, 0x06, 0x30, 0x39,
- 0xfc, 0xd8, 0x54, 0xef, 0xd1, 0xf0, 0xe7, 0x8e, 0x1b, 0x7e, 0x56, 0x39, 0x2e, 0x59, 0xa5, 0x72,
- 0xfc, 0xad, 0x56, 0x8e, 0x71, 0x16, 0x4c, 0x0e, 0x7f, 0xa2, 0x95, 0xff, 0x86, 0x0c, 0xb9, 0x8f,
- 0xd6, 0xdd, 0xf2, 0x06, 0x1b, 0x25, 0xd4, 0x9c, 0x4b, 0xbb, 0x97, 0x46, 0x98, 0xd1, 0x21, 0x99,
- 0x3d, 0xee, 0x90, 0x3c, 0xc9, 0x44, 0xbc, 0x0a, 0x63, 0x25, 0xf1, 0x82, 0x9a, 0x8f, 0x04, 0x1b,
- 0x3b, 0xf1, 0x5c, 0x2a, 0xb1, 0x8c, 0xef, 0x64, 0xe0, 0x54, 0xaa, 0x62, 0x8b, 0xd5, 0xca, 0x35,
- 0x68, 0xca, 0x3a, 0x8c, 0xab, 0xcf, 0x38, 0xc6, 0x49, 0x9c, 0x6c, 0x87, 0xff, 0x16, 0xe3, 0x05,
- 0x18, 0x0f, 0x9f, 0x55, 0xc8, 0xbc, 0x1c, 0x3a, 0x34, 0xab, 0x91, 0xda, 0xf9, 0x3a, 0x00, 0x6b,
- 0xc1, 0x13, 0x35, 0x02, 0x33, 0x7e, 0x23, 0xcb, 0xd3, 0x31, 0x3d, 0xb5, 0xb1, 0xe9, 0xd2, 0x2d,
- 0xb7, 0xd8, 0x27, 0xf5, 0x8f, 0x48, 0x47, 0x56, 0x61, 0xb4, 0x1e, 0xd8, 0x41, 0x4f, 0xfa, 0x06,
- 0xcf, 0xa9, 0x64, 0x58, 0x70, 0x7f, 0x39, 0xf2, 0x0e, 0xf5, 0x11, 0xa2, 0x89, 0xf2, 0x08, 0x51,
- 0x0c, 0xc0, 0x1c, 0x98, 0x54, 0x69, 0xc9, 0x07, 0x30, 0x2d, 0x03, 0x6e, 0x71, 0x87, 0x69, 0xf1,
- 0x04, 0x24, 0x4d, 0x09, 0x64, 0xc0, 0x2d, 0xd5, 0xc1, 0x5a, 0xc3, 0x57, 0x77, 0xea, 0xae, 0x8a,
- 0x6c, 0xfc, 0xe1, 0x28, 0x9f, 0x07, 0x22, 0x72, 0xde, 0x0e, 0x4c, 0x6f, 0x56, 0x2b, 0x65, 0x45,
- 0x4d, 0xa5, 0x27, 0x49, 0x58, 0x7d, 0x14, 0x50, 0xaf, 0x63, 0xb7, 0x04, 0xc2, 0x61, 0x74, 0x36,
- 0xb8, 0x4e, 0xb3, 0x91, 0xae, 0xc2, 0x8a, 0x71, 0x64, 0x75, 0xd4, 0x4b, 0x77, 0xd7, 0x95, 0x3a,
- 0xb2, 0x43, 0xd6, 0xe1, 0xdb, 0xed, 0x56, 0x9f, 0x3a, 0x74, 0x8e, 0x64, 0x1f, 0x8a, 0xb7, 0x50,
- 0x8e, 0x51, 0x6a, 0xc9, 0x0d, 0xae, 0xe5, 0x82, 0xa8, 0xe5, 0x59, 0x2e, 0x00, 0xa5, 0xd7, 0x93,
- 0xe0, 0x1a, 0x2d, 0xe0, 0xfc, 0xb1, 0x0b, 0xf8, 0x2f, 0x66, 0x60, 0x94, 0x0b, 0x4a, 0x62, 0x7e,
- 0xf5, 0x11, 0xc5, 0xb6, 0x9f, 0x8c, 0x28, 0x56, 0xc4, 0x0d, 0x5c, 0x9b, 0x69, 0xbc, 0x8c, 0x54,
- 0x62, 0x13, 0x56, 0x1a, 0x14, 0xa2, 0xc2, 0x99, 0x97, 0x1c, 0x3f, 0x5f, 0x49, 0x35, 0x72, 0xa4,
- 0x1d, 0x3b, 0xd6, 0x57, 0x4b, 0x3a, 0x1f, 0x8f, 0x09, 0x47, 0x5a, 0xdd, 0x7d, 0x76, 0x1d, 0xc6,
- 0x85, 0x7b, 0xee, 0xca, 0xa1, 0x78, 0x56, 0x2a, 0x6a, 0x8f, 0xd6, 0xcd, 0x95, 0xc3, 0x48, 0x08,
- 0x14, 0x0e, 0xbe, 0xd6, 0xce, 0xa1, 0x96, 0x76, 0x4a, 0x22, 0x92, 0x4d, 0x9e, 0x8e, 0x85, 0xc7,
- 0x16, 0xd4, 0x03, 0xff, 0x86, 0x70, 0x11, 0xf8, 0x43, 0xfa, 0xf8, 0xa5, 0x84, 0x12, 0x8c, 0x78,
- 0x90, 0x75, 0x28, 0x8a, 0x34, 0xf5, 0xdc, 0xea, 0xa1, 0x5a, 0xe1, 0x2e, 0xa0, 0xc2, 0x58, 0x4d,
- 0x26, 0xb9, 0x17, 0xf6, 0x12, 0xba, 0xf7, 0x45, 0x82, 0x92, 0x5d, 0xdc, 0x8a, 0xf1, 0xd9, 0x47,
- 0xde, 0x86, 0x89, 0x30, 0xb6, 0x63, 0xe8, 0xff, 0x85, 0xea, 0xe5, 0x28, 0x18, 0xa4, 0xe6, 0x09,
- 0xa6, 0xa2, 0x93, 0x65, 0x28, 0xb0, 0x45, 0x1c, 0x4f, 0x78, 0xd5, 0x13, 0x30, 0xd5, 0xa8, 0x5b,
- 0xe2, 0x91, 0x3a, 0xcc, 0xb1, 0x45, 0x53, 0x77, 0x3a, 0x7b, 0x2d, 0xba, 0xee, 0xee, 0xb9, 0xbd,
- 0xe0, 0x9e, 0xb9, 0x2e, 0x36, 0x57, 0x2e, 0x2a, 0xdb, 0xed, 0x96, 0x56, 0xec, 0x69, 0xe9, 0x4c,
- 0x53, 0xa8, 0x95, 0x3d, 0xec, 0xf7, 0xb2, 0x30, 0xa1, 0xcc, 0x27, 0x72, 0x19, 0x0a, 0x55, 0x7f,
- 0xdd, 0x6d, 0x1c, 0x84, 0x91, 0xa1, 0xa6, 0x1e, 0x1f, 0x2d, 0x8d, 0x3b, 0xbe, 0xd5, 0x42, 0xa0,
- 0x19, 0x16, 0x93, 0x15, 0x98, 0xe2, 0x7f, 0xc9, 0xf8, 0xd8, 0xd9, 0xc8, 0x36, 0x8d, 0x23, 0xcb,
- 0xc8, 0xd8, 0xea, 0xbe, 0xa6, 0x91, 0x90, 0xaf, 0x00, 0x70, 0x00, 0xfa, 0x12, 0xe6, 0x86, 0xf7,
- 0x82, 0x14, 0x15, 0xa4, 0x78, 0x11, 0x2a, 0x0c, 0xc9, 0xd7, 0x78, 0x2c, 0x48, 0x39, 0xff, 0xf3,
- 0xc3, 0xbb, 0x71, 0x32, 0xfe, 0x56, 0xba, 0x37, 0xb9, 0xca, 0x52, 0x04, 0xb1, 0x5b, 0x34, 0x69,
- 0xc3, 0x7d, 0x40, 0xbd, 0xc3, 0x52, 0x80, 0x88, 0x0a, 0x86, 0xf1, 0xdf, 0x67, 0x94, 0x55, 0x43,
- 0x36, 0x30, 0x47, 0x1b, 0x9f, 0x11, 0xc2, 0xc2, 0x22, 0x14, 0xe6, 0x25, 0xdc, 0xa4, 0xbb, 0x2b,
- 0xcf, 0x0a, 0xd3, 0xc8, 0xb9, 0x70, 0x5e, 0xc5, 0x72, 0xb7, 0x71, 0x20, 0x79, 0x1f, 0xf2, 0xd8,
- 0x75, 0xc7, 0xa7, 0xf4, 0x97, 0xe7, 0x69, 0x9e, 0xf5, 0x19, 0x7e, 0x08, 0x52, 0x92, 0xcf, 0x08,
- 0x3f, 0x2c, 0xde, 0xf9, 0xd3, 0xca, 0xa1, 0xc8, 0xda, 0x11, 0x1e, 0xa4, 0x51, 0x40, 0x01, 0x65,
- 0xf6, 0xfc, 0xb5, 0x2c, 0x14, 0xe3, 0x6b, 0x95, 0xbc, 0x07, 0x93, 0xf2, 0xa4, 0xc3, 0x24, 0xbe,
- 0xec, 0x2b, 0x27, 0x45, 0xc0, 0x66, 0x79, 0xdc, 0xc5, 0x73, 0xf8, 0xaa, 0x04, 0x4c, 0xea, 0xd8,
- 0x12, 0x01, 0x7e, 0x94, 0x55, 0x12, 0xb8, 0x41, 0x37, 0x16, 0x4e, 0x50, 0xa2, 0x91, 0x37, 0x20,
- 0x77, 0xf7, 0x66, 0x49, 0x18, 0xfd, 0xcb, 0x2d, 0xe9, 0xee, 0xcd, 0x12, 0x5f, 0xcd, 0xdc, 0xa8,
- 0x49, 0x37, 0xb1, 0x62, 0xf8, 0x64, 0x5d, 0x89, 0xd6, 0x39, 0xaa, 0x65, 0xd4, 0x91, 0xe0, 0xf0,
- 0xe3, 0x8e, 0x0f, 0xdb, 0xc9, 0xb3, 0x03, 0x8b, 0x98, 0x78, 0xff, 0x7e, 0x0e, 0xc6, 0xc3, 0xfa,
- 0x09, 0x01, 0x14, 0xaa, 0xc4, 0x4d, 0x06, 0xff, 0x26, 0x67, 0xa1, 0x20, 0xe5, 0x28, 0x61, 0xfb,
- 0x3f, 0xe6, 0x0b, 0x19, 0x6a, 0x01, 0xa4, 0xc0, 0xc4, 0x97, 0xb9, 0x29, 0x7f, 0x92, 0x6b, 0x10,
- 0x4a, 0x43, 0xfd, 0xc4, 0xa6, 0x3c, 0x1b, 0x30, 0x33, 0x44, 0x23, 0xd3, 0x90, 0x75, 0x78, 0x9c,
- 0x95, 0x71, 0x33, 0xeb, 0x34, 0xc9, 0x7b, 0x50, 0xb0, 0x9b, 0x4d, 0xda, 0xb4, 0x6c, 0x69, 0xaa,
- 0x30, 0x68, 0xd2, 0x14, 0x18, 0x37, 0x7e, 0x08, 0x20, 0x55, 0x29, 0x20, 0x25, 0x18, 0x6f, 0xd9,
- 0xdc, 0xec, 0xa9, 0x39, 0xc4, 0x89, 0x12, 0x71, 0x28, 0x30, 0xb2, 0x7b, 0x3e, 0x6d, 0x92, 0x97,
- 0x21, 0xcf, 0x46, 0x53, 0x1c, 0x21, 0x52, 0x7c, 0x63, 0x83, 0xc9, 0x3b, 0x6c, 0xed, 0x19, 0x13,
- 0x11, 0xc8, 0x8b, 0x90, 0xeb, 0x2d, 0xef, 0x8a, 0xc3, 0xa1, 0x18, 0x45, 0xce, 0x0d, 0xd1, 0x58,
- 0x31, 0xb9, 0x0e, 0x85, 0x87, 0x7a, 0xd0, 0xd5, 0x53, 0xb1, 0x61, 0x0c, 0xf1, 0x43, 0xc4, 0x95,
- 0x02, 0x8c, 0xf2, 0x83, 0xc0, 0x78, 0x1e, 0x20, 0xaa, 0x3a, 0xe9, 0xa2, 0x61, 0x7c, 0x05, 0xc6,
- 0xc3, 0x2a, 0xc9, 0x39, 0x80, 0x03, 0x7a, 0x68, 0xed, 0xdb, 0x9d, 0x66, 0x8b, 0xcb, 0x77, 0x93,
- 0xe6, 0xf8, 0x01, 0x3d, 0x5c, 0x43, 0x00, 0x39, 0x03, 0x63, 0x5d, 0x36, 0xaa, 0x62, 0xea, 0x4e,
- 0x9a, 0xa3, 0xdd, 0xde, 0x0e, 0x9b, 0xa1, 0x0b, 0x30, 0x86, 0x9a, 0x37, 0xb1, 0xd0, 0xa6, 0x4c,
- 0xf9, 0xd3, 0xf8, 0xcf, 0xb3, 0x98, 0x1c, 0x40, 0x69, 0x27, 0xb9, 0x00, 0x53, 0x0d, 0x8f, 0xe2,
- 0x99, 0x63, 0x33, 0x49, 0x4a, 0xd4, 0x33, 0x19, 0x01, 0xab, 0x4d, 0x72, 0x11, 0x66, 0x44, 0x42,
- 0x6c, 0xd6, 0xa0, 0xc6, 0x8e, 0x88, 0x90, 0x3c, 0x69, 0x4e, 0x71, 0xf0, 0x1d, 0x7a, 0x58, 0xde,
- 0xc1, 0xf8, 0x40, 0x45, 0x35, 0xbc, 0x63, 0x10, 0xe6, 0x31, 0x34, 0x67, 0x14, 0x38, 0x5a, 0x20,
- 0x9d, 0x86, 0x51, 0xdb, 0xde, 0xeb, 0x39, 0x3c, 0x8e, 0xc7, 0xa4, 0x29, 0x7e, 0x91, 0x57, 0x61,
- 0xd6, 0x77, 0xf6, 0x3a, 0x76, 0xd0, 0xf3, 0x44, 0x76, 0x06, 0xea, 0xe1, 0x94, 0x9a, 0x32, 0x8b,
- 0x61, 0x41, 0x99, 0xc3, 0xc9, 0xeb, 0x40, 0xd4, 0xfa, 0xdc, 0x9d, 0x8f, 0x68, 0x83, 0x4f, 0xb5,
- 0x49, 0x73, 0x56, 0x29, 0xd9, 0xc4, 0x02, 0xf2, 0x02, 0x4c, 0x7a, 0xd4, 0x47, 0x29, 0x0e, 0xbb,
- 0x0d, 0x73, 0xe7, 0x98, 0x13, 0x12, 0xc6, 0xfa, 0xee, 0x12, 0x14, 0x95, 0xee, 0xc0, 0x08, 0x9a,
- 0x3c, 0x3c, 0xb0, 0x39, 0x1d, 0xc1, 0xcd, 0x6e, 0xb5, 0x69, 0xac, 0xc0, 0x6c, 0x62, 0xe5, 0x2a,
- 0xb9, 0x67, 0xf9, 0x4e, 0x34, 0x38, 0xf7, 0xac, 0xd1, 0x81, 0x49, 0x75, 0x27, 0x3e, 0x26, 0x4a,
- 0xf5, 0x69, 0xf4, 0x03, 0xe7, 0xdb, 0xd4, 0xe8, 0xe3, 0xa3, 0xa5, 0xac, 0xd3, 0x44, 0xef, 0xef,
- 0x4b, 0x50, 0x90, 0x42, 0x83, 0x38, 0xab, 0x51, 0x73, 0x2a, 0xa4, 0xd5, 0x43, 0x33, 0x2c, 0x35,
- 0x5e, 0x86, 0x31, 0xb1, 0xd9, 0x0e, 0xd6, 0x97, 0x1a, 0x3f, 0x92, 0x85, 0x19, 0x93, 0xb2, 0xad,
- 0x80, 0xf2, 0xd0, 0xf4, 0x4f, 0xed, 0xf5, 0x2d, 0x3d, 0x9a, 0x98, 0xf6, 0x6d, 0x03, 0x82, 0xc2,
- 0xff, 0xdd, 0x0c, 0xcc, 0xa5, 0xe0, 0x7e, 0xac, 0x04, 0x66, 0x37, 0x60, 0xbc, 0xe2, 0xd8, 0xad,
- 0x52, 0xb3, 0x19, 0x3a, 0x85, 0xa3, 0xa8, 0xd9, 0x64, 0x33, 0xcd, 0x66, 0x50, 0xf5, 0xd8, 0x0d,
- 0x51, 0xc9, 0x2b, 0x62, 0x52, 0x44, 0xc9, 0xa3, 0x71, 0x52, 0x7c, 0xef, 0x68, 0x09, 0x78, 0x9b,
- 0xa2, 0x24, 0x99, 0x18, 0xe1, 0x8f, 0x03, 0x23, 0xa3, 0xed, 0xa7, 0x76, 0xe8, 0xd2, 0x23, 0xfc,
- 0xc5, 0x3f, 0x6f, 0xa8, 0xb8, 0xf0, 0x3f, 0x9e, 0x85, 0xd3, 0xe9, 0x84, 0x1f, 0x37, 0x17, 0x1d,
- 0x46, 0xe4, 0x57, 0xa2, 0x92, 0x62, 0x2e, 0x3a, 0x1e, 0xbe, 0x1f, 0xf1, 0x23, 0x04, 0xb2, 0x0b,
- 0x53, 0xeb, 0xb6, 0x1f, 0xac, 0x51, 0xdb, 0x0b, 0x76, 0xa8, 0x1d, 0x0c, 0x21, 0x7b, 0xbe, 0x28,
- 0x1f, 0x11, 0xf1, 0xf8, 0xdb, 0x97, 0x94, 0x31, 0xe9, 0x50, 0x67, 0x1b, 0x4e, 0x94, 0xfc, 0x10,
- 0x13, 0xe5, 0xeb, 0x30, 0x53, 0xa7, 0x6d, 0xbb, 0xbb, 0xef, 0x7a, 0xd2, 0xeb, 0xef, 0x0a, 0x4c,
- 0x85, 0xa0, 0xd4, 0xd9, 0xa2, 0x17, 0x6b, 0xf8, 0x4a, 0x47, 0x44, 0x5b, 0x89, 0x5e, 0x6c, 0xfc,
- 0xf5, 0x2c, 0x9c, 0x29, 0x35, 0x84, 0x6d, 0x8f, 0x28, 0x90, 0x26, 0x88, 0x9f, 0x72, 0xdd, 0xe4,
- 0x2a, 0x8c, 0xdf, 0xb5, 0x1f, 0xad, 0x53, 0xdb, 0xa7, 0xbe, 0xc8, 0x04, 0xc4, 0x05, 0x35, 0xfb,
- 0x51, 0x64, 0xf2, 0x62, 0x46, 0x38, 0xea, 0x4d, 0x36, 0xff, 0x09, 0x6f, 0xb2, 0x06, 0x8c, 0xae,
- 0xb9, 0xad, 0xa6, 0x38, 0xc6, 0xc4, 0xf3, 0xda, 0x3e, 0x42, 0x4c, 0x51, 0xc2, 0x2e, 0x80, 0xd3,
- 0x61, 0x8b, 0xb1, 0x09, 0x9f, 0x7a, 0x97, 0x5c, 0x84, 0x31, 0xac, 0xa8, 0x5a, 0x51, 0x0f, 0x8d,
- 0x16, 0xc5, 0x7c, 0x2e, 0x4d, 0x53, 0x16, 0xaa, 0x3d, 0x31, 0xf2, 0xc9, 0x7a, 0xc2, 0xf8, 0x0f,
- 0xf0, 0xe5, 0x4e, 0xfd, 0x4a, 0x76, 0x12, 0x29, 0x0d, 0xc9, 0x0c, 0xd9, 0x90, 0xec, 0x13, 0x1b,
- 0x92, 0x5c, 0xdf, 0x21, 0xf9, 0x56, 0x16, 0x26, 0xc2, 0xc6, 0x7e, 0x9f, 0x85, 0xc6, 0x0d, 0xbf,
- 0x6b, 0x28, 0x4f, 0xfd, 0xba, 0xb2, 0x57, 0x08, 0x87, 0xf8, 0xf7, 0x61, 0x54, 0x2c, 0xa6, 0x4c,
- 0xcc, 0x14, 0x2f, 0x36, 0xba, 0x2b, 0xd3, 0x82, 0xf5, 0x28, 0x0e, 0xa8, 0x6f, 0x0a, 0x3a, 0x0c,
- 0x85, 0xb0, 0x4d, 0x77, 0xc4, 0x43, 0xee, 0x53, 0x7b, 0x46, 0xa5, 0x87, 0x42, 0x88, 0x3e, 0x6c,
- 0xa8, 0xd3, 0xe9, 0x68, 0x04, 0x8a, 0x71, 0x92, 0xe3, 0x83, 0x0f, 0xd7, 0x7a, 0x3b, 0x5c, 0x0a,
- 0xe7, 0xc1, 0x87, 0xbb, 0xbd, 0x1d, 0x93, 0xc1, 0xd0, 0xce, 0xc3, 0x73, 0x1e, 0xe0, 0x57, 0x4f,
- 0x0a, 0x3b, 0x0f, 0xcf, 0x79, 0xa0, 0xd9, 0x79, 0x78, 0xce, 0x03, 0xbc, 0xfa, 0xae, 0xd7, 0xd1,
- 0x7b, 0x13, 0x45, 0x70, 0x71, 0xf5, 0x6d, 0xf9, 0xf1, 0xa4, 0x1d, 0x12, 0x8d, 0x1d, 0x95, 0x2b,
- 0xd4, 0xf6, 0x44, 0xa0, 0x5c, 0xb1, 0x9d, 0xe1, 0x51, 0xb9, 0x83, 0x60, 0x9e, 0x0f, 0xd7, 0x54,
- 0x91, 0x48, 0x0b, 0x88, 0xf2, 0x53, 0x2e, 0xe0, 0xe3, 0x6f, 0x83, 0xd2, 0x8c, 0x66, 0x5e, 0x65,
- 0x6d, 0xa9, 0xab, 0x39, 0x85, 0xef, 0x93, 0x54, 0x40, 0xd6, 0x44, 0xf4, 0x2f, 0x54, 0x79, 0x14,
- 0x8e, 0x65, 0x26, 0xdd, 0x9b, 0x81, 0x47, 0x07, 0x0b, 0x15, 0x1f, 0x11, 0x13, 0xf2, 0x2e, 0x4c,
- 0xa8, 0x3e, 0xb9, 0xdc, 0x73, 0xf4, 0x39, 0x1e, 0xd0, 0xa9, 0x4f, 0x4a, 0x36, 0x95, 0x80, 0xec,
- 0xc0, 0x99, 0xb2, 0xdb, 0xf1, 0x7b, 0x6d, 0x19, 0x3a, 0x2a, 0x0a, 0x58, 0x09, 0x61, 0x4a, 0xf5,
- 0x17, 0x1b, 0x02, 0x45, 0xb8, 0x80, 0x4a, 0x3b, 0x67, 0xfd, 0x02, 0xd2, 0x8f, 0x11, 0xd9, 0x82,
- 0x09, 0x54, 0xe2, 0x09, 0x43, 0xaa, 0x09, 0x7d, 0xdb, 0x88, 0x4a, 0x2a, 0x6c, 0x61, 0xf0, 0xd8,
- 0x27, 0x76, 0xbb, 0x25, 0xcd, 0x6c, 0x55, 0x65, 0xa4, 0x82, 0x6c, 0x7c, 0x46, 0x9d, 0xdf, 0x42,
- 0xdc, 0x18, 0x38, 0xbf, 0x8d, 0xff, 0x66, 0x14, 0x66, 0x62, 0xd5, 0x89, 0xfb, 0x4f, 0x26, 0x71,
- 0xff, 0xa9, 0x03, 0x70, 0xa5, 0xd7, 0x90, 0xda, 0x29, 0xe9, 0xa1, 0x31, 0x21, 0x3c, 0x9c, 0xc2,
- 0xb1, 0x52, 0xd8, 0x30, 0xa6, 0x7c, 0x26, 0x0c, 0xa9, 0x2d, 0x0c, 0x99, 0xf2, 0xc9, 0xa4, 0x30,
- 0x8d, 0xd8, 0x90, 0x25, 0x18, 0xc1, 0xc0, 0x60, 0xaa, 0x83, 0x8c, 0xc3, 0x00, 0x26, 0x87, 0x93,
- 0x0b, 0x30, 0xca, 0x0e, 0xe7, 0x6a, 0x45, 0x2c, 0x2e, 0xdc, 0xb3, 0xd8, 0xe9, 0xcd, 0x4e, 0x42,
- 0x51, 0x44, 0x6e, 0xc0, 0x24, 0xff, 0x4b, 0xf8, 0x86, 0x8f, 0xea, 0x16, 0x44, 0x96, 0xd3, 0x94,
- 0xee, 0xe1, 0x1a, 0x1e, 0x93, 0x5a, 0xeb, 0xbd, 0x1d, 0x9e, 0xa1, 0x5c, 0x44, 0x92, 0x44, 0xa9,
- 0xd5, 0xe7, 0x40, 0xcc, 0xa0, 0x1c, 0x22, 0xb0, 0x33, 0x52, 0x98, 0xa9, 0x16, 0xf0, 0xae, 0x82,
- 0x67, 0x24, 0x37, 0x4f, 0x35, 0x45, 0x09, 0xb9, 0xcc, 0x95, 0xcc, 0x28, 0x6e, 0xf0, 0xe4, 0x37,
- 0xa8, 0xc1, 0xc5, 0x0b, 0x2f, 0xca, 0x1c, 0x61, 0x31, 0xab, 0x9c, 0xfd, 0xbd, 0xda, 0xb6, 0x9d,
- 0x96, 0x98, 0xae, 0x58, 0x39, 0xe2, 0x52, 0x06, 0x35, 0x23, 0x04, 0xf2, 0x36, 0x4c, 0xb3, 0x1f,
- 0x65, 0xb7, 0xdd, 0x76, 0x3b, 0xc8, 0x7e, 0x22, 0x0a, 0x33, 0x82, 0x24, 0x0d, 0x2c, 0xe2, 0xb5,
- 0xc4, 0x70, 0xd9, 0x3e, 0x85, 0x0f, 0x58, 0x3d, 0xae, 0xfe, 0x9e, 0x8c, 0xf6, 0x29, 0x24, 0xf5,
- 0x39, 0xdc, 0x54, 0x91, 0xc8, 0x9b, 0x30, 0xc5, 0x7e, 0xde, 0x72, 0x1e, 0x50, 0x5e, 0xe1, 0x54,
- 0xf4, 0xa4, 0x8a, 0x54, 0x7b, 0xac, 0x84, 0xd7, 0xa7, 0x63, 0x92, 0x2f, 0xc2, 0x29, 0xe4, 0xd4,
- 0x70, 0xbb, 0xb4, 0x59, 0xda, 0xdd, 0x75, 0x5a, 0x0e, 0x37, 0xe9, 0xe0, 0x5e, 0xd0, 0xa8, 0x8d,
- 0xe4, 0x15, 0x23, 0x86, 0x65, 0x47, 0x28, 0x66, 0x3a, 0x25, 0xd9, 0x86, 0x62, 0xb9, 0xe7, 0x07,
- 0x6e, 0xbb, 0x14, 0x04, 0x9e, 0xb3, 0xd3, 0x0b, 0xa8, 0xbf, 0x30, 0xa3, 0xf9, 0x0a, 0xb3, 0xc5,
- 0x11, 0x16, 0x72, 0x3d, 0x43, 0x03, 0x29, 0x2c, 0x3b, 0x24, 0x31, 0x13, 0x4c, 0x8c, 0x7f, 0x96,
- 0x81, 0x29, 0x8d, 0x94, 0xbc, 0x01, 0x93, 0x37, 0x3d, 0x87, 0x76, 0x9a, 0xad, 0x43, 0xe5, 0x02,
- 0x84, 0xd2, 0xf1, 0xae, 0x80, 0xf3, 0xaf, 0xd6, 0xd0, 0x42, 0xfd, 0x41, 0x36, 0xd5, 0xde, 0xea,
- 0x2a, 0xf7, 0xd3, 0x12, 0x13, 0x34, 0x17, 0x05, 0x2f, 0xc0, 0x09, 0x2a, 0x66, 0xa7, 0x82, 0x42,
- 0xde, 0x81, 0x51, 0xfe, 0xd4, 0x25, 0x8c, 0x7f, 0xce, 0xa6, 0x7d, 0x26, 0xf7, 0x09, 0xc4, 0x89,
- 0x88, 0x86, 0x06, 0xbe, 0x29, 0x88, 0x8c, 0x9f, 0xce, 0x00, 0x49, 0xa2, 0x1e, 0xa3, 0x4f, 0x39,
- 0xd6, 0x80, 0xe1, 0xfd, 0x70, 0x35, 0xe6, 0x34, 0xed, 0x21, 0xab, 0x89, 0x17, 0xf0, 0x8e, 0x17,
- 0xab, 0x4e, 0x55, 0xf0, 0xf0, 0x62, 0xe3, 0x2f, 0x64, 0x01, 0x22, 0x6c, 0xf2, 0x79, 0x9e, 0x7f,
- 0xe1, 0x8b, 0x3d, 0xbb, 0xe5, 0xec, 0x3a, 0x7a, 0x40, 0x32, 0x64, 0xf2, 0x75, 0x59, 0x62, 0xea,
- 0x88, 0xe4, 0x3d, 0x98, 0xa9, 0xd7, 0x74, 0x5a, 0x25, 0xd6, 0xbc, 0xdf, 0xb5, 0x62, 0xe4, 0x71,
- 0x6c, 0x34, 0xf2, 0x53, 0x47, 0x83, 0x1b, 0xf9, 0xf1, 0x81, 0x10, 0x25, 0x6c, 0x63, 0xa9, 0xd7,
- 0x30, 0xe9, 0x7d, 0x93, 0x36, 0xab, 0x15, 0xb1, 0x4b, 0x61, 0xeb, 0xfc, 0xae, 0xd5, 0xe5, 0x05,
- 0x98, 0x69, 0x5d, 0xc3, 0x8b, 0x3a, 0x72, 0xa4, 0x8f, 0xdf, 0xdf, 0xcf, 0xa0, 0x3a, 0xa9, 0xed,
- 0x06, 0x54, 0xdc, 0xa2, 0x9f, 0x5a, 0x79, 0x3a, 0x7a, 0x27, 0x1d, 0xd1, 0xdc, 0x99, 0xb4, 0xaf,
- 0x13, 0xaf, 0xf4, 0xd7, 0x23, 0xe1, 0x97, 0xbf, 0x98, 0xa6, 0xbc, 0xeb, 0xff, 0x42, 0x06, 0x4e,
- 0xa5, 0xd2, 0x92, 0x2b, 0x00, 0x91, 0xae, 0x42, 0xf4, 0x12, 0x4f, 0x78, 0x1f, 0x42, 0x4d, 0x05,
- 0x83, 0x7c, 0x39, 0xae, 0x65, 0x38, 0xfe, 0x20, 0x5c, 0x94, 0x21, 0x59, 0x74, 0x2d, 0x43, 0x8a,
- 0x6e, 0xc1, 0xf8, 0xbb, 0x39, 0x98, 0x55, 0x22, 0x02, 0xf0, 0xb6, 0x1e, 0x63, 0x74, 0x79, 0x00,
- 0x93, 0xec, 0x6b, 0x9c, 0x86, 0xf0, 0xa9, 0xe0, 0x6f, 0xfa, 0xaf, 0x24, 0x1c, 0x52, 0x04, 0xb7,
- 0x2b, 0x2a, 0x32, 0x0f, 0x94, 0x84, 0x5b, 0x27, 0xea, 0x70, 0x1b, 0x49, 0xdf, 0x0a, 0x8d, 0x39,
- 0xf1, 0x61, 0xaa, 0x72, 0xd8, 0xb1, 0xdb, 0x61, 0x6d, 0xfc, 0x6d, 0xff, 0xd5, 0xbe, 0xb5, 0x69,
- 0xd8, 0xbc, 0xba, 0xc8, 0x74, 0x9b, 0x97, 0xa5, 0x78, 0x0d, 0x6a, 0x54, 0x8b, 0xef, 0xc1, 0x6c,
- 0xa2, 0xd1, 0x27, 0x8a, 0xd9, 0xb4, 0x0d, 0x24, 0xd9, 0x8e, 0x14, 0x0e, 0xaf, 0xea, 0x11, 0xc1,
- 0x4e, 0x85, 0xcf, 0x78, 0x98, 0xb9, 0x95, 0x5b, 0x0a, 0x2c, 0xab, 0x11, 0x9d, 0x7e, 0x26, 0xab,
- 0x3a, 0x05, 0x3d, 0xed, 0xab, 0xee, 0x7d, 0xed, 0x96, 0xf5, 0x7c, 0xbf, 0x31, 0x1d, 0xea, 0x36,
- 0xfb, 0xdd, 0x1c, 0x9c, 0xe9, 0x43, 0x49, 0x0e, 0xe3, 0x93, 0x88, 0xdf, 0x6e, 0xaf, 0x0d, 0xae,
- 0xf0, 0x49, 0x4c, 0x25, 0xf2, 0x79, 0xee, 0x16, 0xdc, 0xc0, 0x8c, 0xa3, 0xe2, 0x5e, 0xc7, 0x93,
- 0x55, 0x87, 0xd0, 0xb8, 0x3f, 0x30, 0x87, 0x92, 0xf7, 0x60, 0x04, 0x3d, 0xc2, 0x62, 0x11, 0x89,
- 0x18, 0x06, 0xc2, 0x95, 0xf0, 0x4d, 0xec, 0xa7, 0x16, 0xbe, 0x89, 0x01, 0xc8, 0xe7, 0x20, 0x57,
- 0xda, 0xae, 0x8b, 0x71, 0x99, 0x56, 0xc9, 0xb7, 0xeb, 0x51, 0xd4, 0x68, 0x5b, 0x0b, 0xef, 0xcc,
- 0x28, 0x18, 0xe1, 0xad, 0x72, 0x4d, 0x8c, 0x8a, 0x4a, 0x78, 0xab, 0x5c, 0x8b, 0x08, 0xf7, 0x1a,
- 0x5a, 0x84, 0x87, 0x5b, 0xe5, 0xda, 0xa7, 0x37, 0xed, 0xff, 0x72, 0x96, 0xfb, 0x32, 0xf3, 0x0f,
- 0x7b, 0x0f, 0x26, 0xb5, 0x88, 0x8d, 0x99, 0x48, 0x1e, 0x0b, 0x03, 0x63, 0xc6, 0x8c, 0x21, 0x34,
- 0x02, 0x19, 0x7f, 0x9d, 0xfd, 0x46, 0x89, 0x57, 0x35, 0x3b, 0x08, 0x39, 0xa0, 0x4c, 0x1c, 0x8f,
- 0xbf, 0x1e, 0x92, 0x90, 0xeb, 0x50, 0xd8, 0xa2, 0x1d, 0xbb, 0x13, 0x84, 0x8a, 0x36, 0x34, 0x68,
- 0x0c, 0x10, 0xa6, 0x4b, 0x0d, 0x21, 0x22, 0x1a, 0xdf, 0xf5, 0x76, 0xfc, 0x86, 0xe7, 0x60, 0xcc,
- 0x83, 0xf0, 0x2c, 0xe6, 0xc6, 0x77, 0x4a, 0x89, 0xce, 0x20, 0x46, 0x64, 0xfc, 0x4c, 0x06, 0xc6,
- 0xc4, 0x40, 0xf2, 0xbc, 0x19, 0x7b, 0xd1, 0x59, 0x22, 0xf2, 0x66, 0xec, 0x39, 0xf1, 0xbc, 0x19,
- 0x7b, 0x3c, 0xb0, 0xc0, 0xb8, 0x70, 0xcb, 0x0b, 0x9f, 0x9c, 0x78, 0x9a, 0x65, 0x0e, 0xd4, 0xab,
- 0x8d, 0x50, 0x87, 0xf5, 0x6a, 0x30, 0xfe, 0xa6, 0x68, 0xd9, 0xad, 0x72, 0x8d, 0x2c, 0x43, 0x61,
- 0xdd, 0x6d, 0xd8, 0xca, 0x39, 0x87, 0xdb, 0x4e, 0x4b, 0xc0, 0xd4, 0x0e, 0x92, 0x78, 0xac, 0x7d,
- 0x35, 0xcf, 0x15, 0x77, 0x19, 0xa5, 0x7d, 0x5d, 0x0e, 0x8c, 0xb5, 0x2f, 0x44, 0x1d, 0xba, 0x7d,
- 0x34, 0x65, 0x93, 0xb8, 0x7f, 0x1d, 0x03, 0x53, 0xdf, 0x56, 0xbd, 0x45, 0x44, 0x91, 0xdc, 0x29,
- 0x16, 0xfb, 0xed, 0x14, 0xf7, 0xaf, 0x9b, 0x29, 0x54, 0xf8, 0x5e, 0x13, 0x81, 0xeb, 0xd4, 0x7b,
- 0xf0, 0x14, 0xef, 0xd2, 0xe9, 0xef, 0x35, 0xf1, 0xcf, 0x1b, 0x6a, 0x93, 0xfe, 0x2f, 0xb3, 0x70,
- 0x3a, 0x9d, 0x50, 0xfd, 0x96, 0xcc, 0x80, 0x6f, 0xb9, 0x04, 0x85, 0x35, 0xd7, 0x0f, 0x14, 0xfb,
- 0x27, 0x54, 0x2b, 0xef, 0x0b, 0x98, 0x19, 0x96, 0xb2, 0x3b, 0x37, 0xfb, 0x3b, 0x5c, 0x9e, 0xc8,
- 0x0f, 0x3d, 0x78, 0xd9, 0x9d, 0x9b, 0x17, 0x91, 0x5b, 0x50, 0x30, 0x85, 0xb7, 0x42, 0xac, 0x6b,
- 0x24, 0x38, 0x94, 0xa6, 0x88, 0x27, 0x20, 0x5a, 0xe0, 0x4c, 0x01, 0x23, 0x25, 0x18, 0x13, 0xa3,
- 0x1f, 0x7b, 0x92, 0x4c, 0x99, 0x32, 0x7a, 0x2c, 0x5b, 0x49, 0xc7, 0x76, 0x14, 0x7c, 0x5c, 0xaa,
- 0x56, 0xa4, 0xe3, 0x01, 0xee, 0x28, 0xfc, 0xf1, 0x49, 0x37, 0x35, 0x0b, 0x11, 0x8d, 0x1f, 0xc9,
- 0x02, 0x6c, 0xd3, 0x9d, 0xa7, 0x3b, 0xd1, 0xdb, 0xe7, 0xb4, 0x19, 0xa6, 0x58, 0x5e, 0x0c, 0x9f,
- 0xe7, 0x6d, 0x13, 0x2d, 0x20, 0x86, 0xcf, 0xf2, 0xb6, 0x04, 0x23, 0x5c, 0xdb, 0xa9, 0x26, 0x52,
- 0x42, 0x35, 0x27, 0x87, 0x1b, 0x3b, 0x30, 0x7f, 0x8b, 0x06, 0x91, 0x7a, 0x4b, 0x3e, 0x69, 0x0d,
- 0x66, 0xfb, 0x1a, 0x8c, 0x0b, 0xfc, 0x70, 0xff, 0xe2, 0xba, 0x18, 0xe1, 0x14, 0x8f, 0xba, 0x18,
- 0x89, 0xc0, 0x76, 0xa3, 0x0a, 0x6d, 0xd1, 0x80, 0x7e, 0xba, 0xd5, 0xd4, 0x81, 0xf0, 0x4f, 0xc1,
- 0x2f, 0x1b, 0xae, 0x86, 0x63, 0xfb, 0xe7, 0x3e, 0x9c, 0x0a, 0xdb, 0xfe, 0x24, 0xf9, 0x5e, 0x65,
- 0x57, 0x4a, 0x11, 0x06, 0x36, 0xe2, 0x38, 0xc0, 0xa6, 0xe1, 0x11, 0x2c, 0x4a, 0x82, 0x6d, 0x27,
- 0x34, 0x21, 0x1b, 0x8a, 0x96, 0xbc, 0x0d, 0x13, 0x0a, 0x8d, 0x08, 0x63, 0x8a, 0xea, 0xcf, 0x87,
- 0x4e, 0xb0, 0x6f, 0xf9, 0x1c, 0xae, 0xaa, 0x3f, 0x15, 0x74, 0xe3, 0x43, 0x78, 0x36, 0x74, 0x55,
- 0x48, 0xa9, 0x3a, 0xc6, 0x3c, 0x73, 0x32, 0xe6, 0x1b, 0xd1, 0x67, 0x55, 0x3b, 0xa1, 0x7b, 0xa1,
- 0xe4, 0x4d, 0xd4, 0xcf, 0x12, 0x1f, 0xf3, 0x5c, 0xc2, 0x61, 0x51, 0xf1, 0x4b, 0x34, 0xde, 0x52,
- 0x1a, 0x9b, 0xc2, 0x50, 0x23, 0xce, 0xc4, 0x89, 0x7f, 0x24, 0x0b, 0x33, 0x9b, 0xd5, 0x4a, 0x39,
- 0xb4, 0x6a, 0xf9, 0x3e, 0xcb, 0x42, 0xa7, 0x7d, 0x5b, 0xff, 0xfd, 0xc6, 0xb8, 0x07, 0x73, 0xb1,
- 0x6e, 0x40, 0xd1, 0xe1, 0x5d, 0x6e, 0x4b, 0x1f, 0x82, 0xa5, 0xd8, 0x70, 0x3a, 0x8d, 0xfd, 0xfd,
- 0xeb, 0x66, 0x0c, 0xdb, 0xf8, 0x17, 0xe3, 0x31, 0xbe, 0x62, 0x0b, 0x7b, 0x0d, 0xc6, 0xab, 0xbe,
- 0xdf, 0xa3, 0xde, 0x3d, 0x73, 0x5d, 0x55, 0x15, 0x38, 0x08, 0xb4, 0x7a, 0x5e, 0xcb, 0x8c, 0x10,
- 0xc8, 0x65, 0x28, 0x88, 0xc8, 0x9e, 0x72, 0x4f, 0x40, 0xad, 0x6d, 0x18, 0x18, 0xd4, 0x0c, 0x8b,
- 0xc9, 0x1b, 0x30, 0xc9, 0xff, 0xe6, 0xb3, 0x4d, 0x74, 0x38, 0x2a, 0x07, 0x05, 0x3a, 0x9f, 0x9d,
- 0xa6, 0x86, 0x46, 0x5e, 0x81, 0x5c, 0xa9, 0x6c, 0x0a, 0x75, 0x90, 0x90, 0x1b, 0x31, 0xb7, 0x6c,
- 0x8f, 0xea, 0x97, 0x88, 0xb2, 0xc9, 0xa4, 0x3f, 0xa1, 0x4a, 0x92, 0xe9, 0x1c, 0x78, 0x0a, 0x5c,
- 0x01, 0x8b, 0x1d, 0x66, 0x08, 0x23, 0x57, 0x61, 0xac, 0xe2, 0xf8, 0xdd, 0x96, 0x7d, 0x28, 0xf4,
- 0xd8, 0x3c, 0xc5, 0x0a, 0x07, 0x69, 0x1e, 0xca, 0x1c, 0x44, 0x2e, 0xcb, 0xd4, 0x13, 0x85, 0xc8,
- 0x24, 0xbf, 0x4f, 0x7e, 0x89, 0xd7, 0x60, 0x54, 0xc4, 0xbf, 0x1c, 0x57, 0x22, 0x5b, 0xc7, 0xe3,
- 0x5e, 0x0a, 0x9c, 0xa4, 0xd3, 0x1c, 0x3c, 0x49, 0xa7, 0xb9, 0x1d, 0x38, 0x73, 0x0b, 0xb5, 0x37,
- 0x7a, 0xa4, 0x8c, 0x7b, 0x66, 0x55, 0xe8, 0xc3, 0xf1, 0xc5, 0x87, 0x2b, 0x78, 0xe2, 0xc1, 0x36,
- 0xac, 0x9e, 0xa7, 0x66, 0x0c, 0xeb, 0xc7, 0x88, 0x7c, 0x09, 0xe6, 0xd3, 0x8a, 0x84, 0xd6, 0x1c,
- 0x63, 0x42, 0xa4, 0x57, 0xa0, 0xc6, 0x84, 0x48, 0xe3, 0x40, 0xd6, 0xa1, 0xc8, 0xe1, 0xa5, 0x66,
- 0xdb, 0xe9, 0x70, 0xcd, 0xff, 0x54, 0x94, 0x6a, 0x5f, 0x70, 0xb5, 0x59, 0x21, 0x7f, 0x01, 0xd0,
- 0xbc, 0x2a, 0x62, 0x94, 0xe4, 0x27, 0x33, 0xec, 0x36, 0xc7, 0xa3, 0x45, 0xde, 0x33, 0xd7, 0x7d,
- 0x11, 0x4f, 0xe8, 0x74, 0xe4, 0x30, 0x51, 0x0f, 0x3c, 0xa7, 0xb3, 0x27, 0x3c, 0x26, 0xb6, 0x84,
- 0xc7, 0xc4, 0xdb, 0x1f, 0xcb, 0x63, 0x82, 0xb3, 0xf2, 0x1f, 0x1f, 0x2d, 0x4d, 0x7a, 0xa2, 0x4e,
- 0x5c, 0x45, 0x5a, 0x0b, 0x30, 0xdb, 0x75, 0xab, 0xe5, 0x3e, 0xbc, 0xd7, 0x79, 0x40, 0x3d, 0x67,
- 0xd7, 0xa1, 0x4d, 0xfe, 0x91, 0x33, 0xb8, 0x83, 0xf3, 0x6c, 0xd7, 0x98, 0xbf, 0xbd, 0x17, 0x22,
- 0x24, 0x3e, 0x34, 0x95, 0x03, 0xbb, 0x78, 0x4a, 0xab, 0x7c, 0xee, 0x01, 0x58, 0x8c, 0x2e, 0x9e,
- 0xd2, 0x84, 0xdf, 0xc2, 0x69, 0xa4, 0x4e, 0x1e, 0x8d, 0x84, 0x5c, 0x85, 0xd1, 0xbb, 0xf6, 0xa3,
- 0xd2, 0x1e, 0x15, 0x29, 0x85, 0xa6, 0xe4, 0xf6, 0x87, 0xc0, 0x95, 0xc2, 0xef, 0x70, 0xab, 0xef,
- 0x67, 0x4c, 0x81, 0x46, 0xbe, 0x99, 0x81, 0xd3, 0x7c, 0x19, 0xcb, 0xaf, 0xac, 0xd3, 0x20, 0x60,
- 0xfd, 0x20, 0x02, 0x0b, 0xc9, 0x80, 0xfc, 0xf5, 0xfa, 0x66, 0x3a, 0x1e, 0xcf, 0xcd, 0x2c, 0x76,
- 0x86, 0xb0, 0xe3, 0x7c, 0x51, 0xaa, 0x45, 0x0f, 0x4c, 0xa5, 0x17, 0x16, 0xcd, 0x9f, 0x93, 0x2d,
- 0x27, 0xaf, 0xab, 0x8e, 0x6a, 0x39, 0x94, 0x73, 0xc7, 0xda, 0xf6, 0x23, 0xcb, 0xde, 0xa3, 0xda,
- 0x3b, 0x69, 0xe8, 0xc1, 0x76, 0xb6, 0x6f, 0xdb, 0xc8, 0x0d, 0x38, 0x23, 0xb3, 0x74, 0xef, 0x07,
- 0x41, 0xd7, 0xb7, 0xe4, 0x5d, 0x40, 0x78, 0xb6, 0x99, 0xa7, 0x44, 0xf1, 0x1a, 0x2b, 0x95, 0xd7,
- 0x03, 0xdf, 0xf8, 0x6b, 0xe3, 0xfc, 0x4c, 0x2b, 0xf5, 0x82, 0x7d, 0x79, 0x0a, 0x2e, 0xa7, 0xf9,
- 0x66, 0x70, 0xa3, 0x31, 0xc5, 0x37, 0x43, 0xf7, 0xc8, 0x90, 0x8f, 0x11, 0xd9, 0xd4, 0xc7, 0x88,
- 0xd7, 0x60, 0xbc, 0xbc, 0x4f, 0x1b, 0x07, 0xa1, 0x7d, 0x7c, 0x41, 0x68, 0x7b, 0x19, 0x90, 0x07,
- 0x96, 0x8c, 0x10, 0xc8, 0x55, 0x00, 0x74, 0xd6, 0xe2, 0x22, 0x92, 0x12, 0x1c, 0x1a, 0x7d, 0xbb,
- 0xc4, 0x3b, 0xbc, 0x82, 0x82, 0xec, 0xeb, 0xe6, 0x4d, 0xf5, 0xe1, 0x9e, 0xb3, 0xf7, 0xbd, 0x5d,
- 0x81, 0x1e, 0x21, 0xb0, 0xcf, 0x53, 0x26, 0xba, 0xd8, 0x96, 0x8b, 0x89, 0xd5, 0xa0, 0x22, 0xa1,
- 0x4d, 0x9c, 0x34, 0x06, 0xc6, 0x5d, 0x79, 0x52, 0xd8, 0xc4, 0x85, 0x86, 0xc3, 0x66, 0x84, 0x40,
- 0x3e, 0x07, 0x63, 0x65, 0xea, 0x05, 0x5b, 0x5b, 0xeb, 0xf8, 0xb6, 0xce, 0x23, 0x28, 0x17, 0x30,
- 0xda, 0x6d, 0x10, 0xb4, 0xbe, 0x77, 0xb4, 0x34, 0x15, 0x38, 0x6d, 0x7a, 0x25, 0x1c, 0x60, 0x89,
- 0x4d, 0x56, 0xa0, 0xc8, 0x5f, 0x69, 0x23, 0x51, 0x18, 0x37, 0xea, 0x02, 0x3f, 0x36, 0xc4, 0x93,
- 0xee, 0x43, 0xba, 0x13, 0xc6, 0xfa, 0x4d, 0xe0, 0x93, 0x55, 0x19, 0x22, 0x5b, 0xfd, 0x48, 0x88,
- 0x74, 0x33, 0xf1, 0x09, 0xcc, 0xbe, 0x35, 0x49, 0x41, 0x4a, 0x30, 0x55, 0x76, 0xdb, 0x5d, 0x3b,
- 0x70, 0x30, 0xdf, 0xcc, 0xa1, 0xd8, 0x93, 0x51, 0xbf, 0xd4, 0x50, 0x0b, 0xb4, 0x0d, 0x5e, 0x2d,
- 0x20, 0x37, 0x61, 0xda, 0x74, 0x7b, 0x6c, 0x90, 0xe4, 0xa5, 0x90, 0x6f, 0xbb, 0xe8, 0xea, 0xec,
- 0xb1, 0x12, 0x76, 0x4a, 0x88, 0x1b, 0xa0, 0x16, 0xa9, 0x4c, 0xa3, 0x22, 0x1b, 0x29, 0xda, 0x79,
- 0x75, 0xaf, 0x55, 0x23, 0xfe, 0x26, 0x98, 0xa5, 0x28, 0xf6, 0xaf, 0xc3, 0x44, 0xbd, 0xbe, 0xb9,
- 0x45, 0xfd, 0xe0, 0x66, 0xcb, 0x7d, 0x88, 0x5b, 0x6d, 0x41, 0x64, 0x42, 0xf0, 0x5d, 0x2b, 0xa0,
- 0x7e, 0x60, 0xed, 0xb6, 0xdc, 0x87, 0xa6, 0x8a, 0x45, 0xbe, 0xca, 0xfa, 0x43, 0x11, 0x4c, 0x44,
- 0x4c, 0xb6, 0x41, 0xb2, 0x13, 0x6e, 0x68, 0xd1, 0x92, 0x61, 0x12, 0x94, 0xde, 0x59, 0x0a, 0x3a,
- 0x3a, 0x7b, 0xb0, 0xeb, 0x6c, 0xa9, 0xd9, 0xf4, 0xa8, 0xef, 0x8b, 0x3d, 0x91, 0x3b, 0x7b, 0xe0,
- 0xdd, 0xd7, 0xe6, 0x05, 0x9a, 0xb3, 0x87, 0x42, 0x40, 0xbe, 0x95, 0x81, 0x53, 0xaa, 0xbd, 0x38,
- 0x2e, 0x96, 0x36, 0xed, 0x04, 0x62, 0x87, 0x7c, 0xfd, 0x8a, 0x3c, 0x13, 0xae, 0x28, 0x68, 0x57,
- 0x1e, 0x5c, 0xbb, 0x52, 0x8a, 0x7e, 0xd6, 0x25, 0x91, 0x08, 0x6b, 0x94, 0xc6, 0x4f, 0xdd, 0xdf,
- 0xed, 0x14, 0x52, 0x52, 0x66, 0x62, 0x03, 0x9b, 0x4f, 0x68, 0x1d, 0x52, 0xad, 0xe1, 0x06, 0x2b,
- 0xd4, 0x7b, 0x62, 0xf6, 0x71, 0x3b, 0x12, 0xa7, 0xab, 0x4b, 0x07, 0x0a, 0x0d, 0x0a, 0xdb, 0xf5,
- 0xd2, 0xdd, 0xf5, 0x48, 0x62, 0xfc, 0xfe, 0x32, 0xd2, 0xd6, 0xbe, 0x6d, 0x80, 0x91, 0xf6, 0x3d,
- 0xee, 0xb6, 0xa6, 0x74, 0x83, 0x14, 0xb6, 0x35, 0x70, 0x5c, 0xd8, 0x8e, 0xd1, 0x98, 0x31, 0x6c,
- 0xe3, 0x7b, 0x85, 0x18, 0x5f, 0x61, 0x98, 0x65, 0xc0, 0x28, 0x97, 0xa5, 0xd5, 0x44, 0xc9, 0x5c,
- 0xd2, 0x36, 0x45, 0x09, 0x39, 0x0b, 0xb9, 0x7a, 0x7d, 0x53, 0xcd, 0x0d, 0xef, 0xfb, 0xae, 0xc9,
- 0x60, 0x6c, 0x84, 0xd0, 0xe6, 0x4a, 0x09, 0xa1, 0xca, 0xb6, 0x3d, 0x13, 0xa1, 0xac, 0xbf, 0xa5,
- 0x64, 0x9b, 0x8f, 0xfa, 0x5b, 0x48, 0xb6, 0x91, 0x3c, 0x5b, 0x86, 0x85, 0x92, 0xef, 0x53, 0x8f,
- 0xcd, 0x2a, 0x61, 0xca, 0xe3, 0x09, 0xe9, 0x4b, 0xec, 0xee, 0x58, 0xa9, 0xdd, 0xf0, 0xcd, 0xbe,
- 0x88, 0xe4, 0x12, 0x14, 0x4a, 0xbd, 0xa6, 0x43, 0x3b, 0x0d, 0x2d, 0xe2, 0x8a, 0x2d, 0x60, 0x66,
- 0x58, 0x4a, 0xbe, 0x08, 0xa7, 0x04, 0x91, 0x14, 0xc1, 0x45, 0x0f, 0x8c, 0x45, 0x4b, 0x50, 0x4a,
- 0x87, 0xd1, 0x33, 0x31, 0xef, 0x92, 0x74, 0x4a, 0x52, 0x82, 0xe2, 0x2a, 0x3a, 0x25, 0x54, 0x28,
- 0xd7, 0x58, 0xbb, 0x1e, 0x77, 0xb4, 0xe0, 0xb2, 0x3c, 0x77, 0x58, 0xb0, 0x9a, 0x61, 0xa1, 0x99,
- 0x40, 0x27, 0x77, 0x60, 0x2e, 0x0e, 0x63, 0x1b, 0x39, 0x17, 0xdb, 0x31, 0x86, 0x5f, 0x82, 0x0b,
- 0x6e, 0xe5, 0x69, 0x54, 0x64, 0x07, 0x66, 0x23, 0x33, 0x09, 0x5d, 0x98, 0x97, 0x56, 0x7d, 0x61,
- 0xb9, 0x14, 0xe8, 0x9f, 0x15, 0x93, 0x71, 0x2e, 0x32, 0xb9, 0x08, 0x85, 0x7a, 0x33, 0xc9, 0x8e,
- 0x34, 0x61, 0xba, 0xee, 0xec, 0x75, 0x9c, 0xce, 0xde, 0x1d, 0x7a, 0x58, 0xb3, 0x1d, 0x4f, 0xd8,
- 0x57, 0x49, 0xeb, 0xc9, 0x92, 0x7f, 0xd8, 0x6e, 0xd3, 0xc0, 0xc3, 0x23, 0x92, 0x95, 0xa3, 0x8f,
- 0x20, 0x13, 0xd2, 0x16, 0x7d, 0x4e, 0x87, 0xfe, 0x37, 0x5d, 0xdb, 0xd1, 0xce, 0x02, 0x9d, 0xa7,
- 0x76, 0xa1, 0x9a, 0x1c, 0xf2, 0x42, 0xd5, 0x82, 0xd9, 0xd5, 0x4e, 0xc3, 0x3b, 0xc4, 0x87, 0x03,
- 0xd9, 0xb8, 0xa9, 0x63, 0x1a, 0xf7, 0xa2, 0x68, 0xdc, 0x73, 0xb6, 0x9c, 0x61, 0x69, 0xcd, 0x4b,
- 0x32, 0x26, 0x75, 0x98, 0x45, 0xa9, 0xb7, 0x5a, 0xa9, 0x55, 0x3b, 0x4e, 0xe0, 0x60, 0x3a, 0x5f,
- 0x7e, 0xc6, 0xbc, 0x24, 0x78, 0x9e, 0xe3, 0x82, 0xb3, 0xd3, 0xec, 0x5a, 0x8e, 0x44, 0x51, 0x99,
- 0x26, 0xe8, 0x07, 0x49, 0xaf, 0x33, 0xff, 0x66, 0xa4, 0x57, 0x4c, 0x78, 0x13, 0xf3, 0x9d, 0x2d,
- 0x46, 0xb1, 0xd3, 0x7d, 0x2c, 0x62, 0xfb, 0xba, 0xdb, 0x43, 0x99, 0x42, 0x4b, 0x78, 0xa3, 0xd3,
- 0x19, 0xff, 0x49, 0x81, 0xef, 0xed, 0xaa, 0xd0, 0xd9, 0xcf, 0xfe, 0x2d, 0x26, 0x8c, 0x66, 0x4f,
- 0x22, 0x8c, 0xe6, 0x8e, 0x17, 0x46, 0xf3, 0xc7, 0x09, 0xa3, 0x31, 0x69, 0x71, 0xe4, 0xc4, 0xd2,
- 0xe2, 0xe8, 0x09, 0xa4, 0xc5, 0xb1, 0x13, 0x49, 0x8b, 0x9a, 0xd8, 0x5b, 0x38, 0x4e, 0xec, 0xfd,
- 0xff, 0x65, 0xcb, 0xa7, 0x55, 0xb6, 0x4c, 0x13, 0x15, 0x4e, 0x24, 0x5b, 0xf6, 0x17, 0x0d, 0x8b,
- 0x7f, 0xd2, 0xa2, 0xe1, 0xec, 0xc7, 0x10, 0x0d, 0xff, 0x0c, 0x14, 0xe3, 0xa7, 0xd5, 0xf1, 0x11,
- 0xd2, 0x9e, 0x58, 0x34, 0x1f, 0x76, 0x96, 0xc6, 0x4f, 0x0b, 0x76, 0x65, 0xad, 0x79, 0xce, 0x03,
- 0x3b, 0xa0, 0x77, 0xe4, 0x23, 0xbf, 0x88, 0xee, 0xc7, 0xa1, 0xb8, 0xe6, 0x15, 0x94, 0x50, 0x50,
- 0xca, 0xa6, 0x09, 0x4a, 0xc6, 0x8f, 0x66, 0x61, 0x96, 0x47, 0xde, 0x78, 0xfa, 0x75, 0xcd, 0xef,
- 0x6a, 0xe2, 0xaf, 0x34, 0x29, 0x8b, 0x7d, 0xdd, 0x00, 0x6d, 0xf3, 0x57, 0xe0, 0x54, 0xa2, 0x2b,
- 0x50, 0x04, 0xae, 0xc8, 0x98, 0x27, 0x09, 0x21, 0x78, 0x21, 0xbd, 0x92, 0xfb, 0xd7, 0xcd, 0x04,
- 0x85, 0xf1, 0xaf, 0xf2, 0x09, 0xfe, 0x42, 0xef, 0xac, 0x6a, 0x92, 0x33, 0x27, 0xd3, 0x24, 0x67,
- 0x87, 0xd3, 0x24, 0xc7, 0xce, 0x96, 0xdc, 0x30, 0x67, 0xcb, 0x17, 0x61, 0x6a, 0x8b, 0xda, 0x6d,
- 0x7f, 0xcb, 0x15, 0x01, 0xb7, 0xb9, 0x49, 0xa9, 0x0c, 0x69, 0xc2, 0xca, 0xa4, 0x04, 0x17, 0x9a,
- 0xc6, 0x04, 0x8c, 0x80, 0xed, 0x87, 0x3c, 0x02, 0xb7, 0xa9, 0x73, 0x50, 0xc5, 0xf2, 0x91, 0x01,
- 0x62, 0x79, 0x1d, 0x26, 0x05, 0x5d, 0x14, 0x16, 0x2e, 0x92, 0x1f, 0x59, 0x11, 0xc2, 0x65, 0xed,
- 0x61, 0x4a, 0xb4, 0xb0, 0x76, 0x2e, 0x3a, 0x6a, 0x4c, 0x58, 0x17, 0xac, 0x76, 0x9a, 0x5d, 0xd7,
- 0xe9, 0x60, 0x17, 0x8c, 0x45, 0x5d, 0x40, 0x05, 0x98, 0x77, 0x81, 0x82, 0x44, 0xde, 0x86, 0xe9,
- 0x52, 0xad, 0xaa, 0x92, 0x15, 0x22, 0x65, 0xb6, 0xdd, 0x75, 0x2c, 0x8d, 0x34, 0x86, 0x3b, 0x48,
- 0x94, 0x1a, 0xff, 0x37, 0x23, 0x4a, 0x19, 0xdf, 0x1c, 0x97, 0xcb, 0xfb, 0xd3, 0x55, 0xbb, 0xe9,
- 0x8a, 0xb4, 0xdc, 0x09, 0x15, 0x69, 0xf9, 0xe3, 0x24, 0x0a, 0x4d, 0xcc, 0x19, 0x39, 0x81, 0x98,
- 0x33, 0xfa, 0x89, 0x95, 0x62, 0x63, 0x27, 0x14, 0x5c, 0x62, 0x2b, 0xad, 0x30, 0xcc, 0x4a, 0x4b,
- 0x15, 0x76, 0xc6, 0x3f, 0xb9, 0xb0, 0x03, 0x27, 0x16, 0x76, 0xea, 0x91, 0xe3, 0xcf, 0xc4, 0xb1,
- 0x76, 0xaf, 0xe7, 0xc4, 0x25, 0x63, 0x36, 0x3d, 0xe8, 0x4a, 0xe8, 0x02, 0xf4, 0x7d, 0x25, 0x41,
- 0x7d, 0x2d, 0x5d, 0x82, 0x1a, 0x7c, 0xda, 0xfc, 0x7f, 0x59, 0x86, 0xf2, 0xb0, 0x97, 0xb7, 0x6d,
- 0xaf, 0x83, 0x97, 0xbb, 0xab, 0x30, 0x26, 0x83, 0x0f, 0x65, 0x22, 0x3d, 0x45, 0x32, 0xea, 0x90,
- 0xc4, 0x62, 0xf7, 0x70, 0x49, 0xac, 0x06, 0x52, 0x7e, 0x28, 0x60, 0x5a, 0x5c, 0x17, 0x01, 0x33,
- 0xfe, 0x76, 0x5e, 0xae, 0x64, 0x76, 0xb3, 0x12, 0x29, 0x72, 0x57, 0x94, 0x91, 0x53, 0x24, 0xb8,
- 0xd8, 0xd8, 0xc4, 0xcc, 0xd8, 0x74, 0x92, 0x8f, 0x15, 0x0e, 0x2a, 0x4a, 0xcd, 0x93, 0x1b, 0x22,
- 0x35, 0xcf, 0x9b, 0x5a, 0x5e, 0x9b, 0x7c, 0x94, 0x48, 0x81, 0xcd, 0xee, 0xc1, 0x19, 0x6d, 0x6e,
- 0xa8, 0x09, 0x68, 0x46, 0xa2, 0xc8, 0x08, 0x48, 0x39, 0x20, 0xf5, 0x4c, 0x28, 0x92, 0x8e, 0x9e,
- 0x24, 0xd0, 0xda, 0xd8, 0x9f, 0x68, 0xa0, 0xb5, 0x55, 0x00, 0x25, 0x2d, 0x29, 0x7f, 0xfb, 0x78,
- 0x89, 0x75, 0xd3, 0xf1, 0x29, 0x49, 0x15, 0x42, 0xe3, 0xb7, 0x09, 0xcc, 0xd6, 0xeb, 0x9b, 0x15,
- 0xc7, 0xde, 0xeb, 0xb8, 0x7e, 0xe0, 0x34, 0xaa, 0x9d, 0x5d, 0x97, 0xc9, 0x63, 0xe1, 0xae, 0xa0,
- 0x44, 0xd4, 0x8a, 0x76, 0x84, 0xb0, 0x98, 0xc9, 0xfb, 0xab, 0x9e, 0xe7, 0x7a, 0xaa, 0xbc, 0x4f,
- 0x19, 0xc0, 0xe4, 0x70, 0x26, 0xf2, 0xd4, 0x7b, 0x3c, 0xbf, 0x24, 0x7f, 0x8e, 0x42, 0x91, 0xc7,
- 0xe7, 0x20, 0x53, 0x96, 0x11, 0x9a, 0x9c, 0xb0, 0x42, 0x04, 0x3e, 0xa3, 0x85, 0x6b, 0x8b, 0x8a,
- 0xf9, 0x9e, 0x27, 0xce, 0x24, 0xf4, 0x8b, 0xea, 0x22, 0x5c, 0x7d, 0xfd, 0x4d, 0xac, 0x81, 0x43,
- 0x38, 0xa5, 0xf9, 0xf7, 0x0c, 0xab, 0xa2, 0x7b, 0x45, 0x88, 0x58, 0x06, 0xba, 0x29, 0xa6, 0xe8,
- 0xe9, 0xd4, 0x40, 0xf0, 0xa9, 0x35, 0x90, 0x1f, 0xcd, 0xc0, 0xb9, 0xd4, 0x92, 0x70, 0x75, 0x4f,
- 0x68, 0x21, 0xf3, 0x94, 0x4d, 0x83, 0x87, 0xbc, 0xef, 0x57, 0xb5, 0x95, 0xb2, 0x15, 0x0c, 0xae,
- 0x89, 0xfc, 0x6a, 0x06, 0xce, 0x68, 0x18, 0xe1, 0x9e, 0xe7, 0xe3, 0xd9, 0xd4, 0x77, 0x5e, 0x7f,
- 0xf4, 0x64, 0xe6, 0xf5, 0x05, 0xfd, 0x5b, 0xa2, 0x2d, 0x59, 0xfd, 0x86, 0x7e, 0x2d, 0x24, 0x0f,
- 0x60, 0x16, 0x8b, 0xa4, 0xba, 0x90, 0xcd, 0x59, 0xa1, 0x65, 0x9c, 0x8f, 0x9a, 0xcd, 0x7d, 0xd6,
- 0x30, 0x6d, 0xd9, 0xf2, 0x77, 0x8f, 0x96, 0xa6, 0x34, 0x74, 0x19, 0x84, 0xce, 0x8a, 0x74, 0x8e,
- 0x4e, 0x67, 0xd7, 0x55, 0xcf, 0xcb, 0x44, 0x15, 0xe4, 0x3f, 0xcd, 0xc0, 0x02, 0x83, 0xf2, 0xcf,
- 0xb8, 0xe9, 0xb9, 0xed, 0xb0, 0x5c, 0x9a, 0x11, 0xf4, 0xe9, 0xb6, 0xd6, 0x93, 0xe9, 0xb6, 0x97,
- 0xb0, 0xc9, 0x7c, 0x4f, 0xb0, 0x76, 0x3d, 0xb7, 0x1d, 0x35, 0x5f, 0x4b, 0xbb, 0xd9, 0xaf, 0x91,
- 0xe4, 0x87, 0x32, 0x70, 0x56, 0xd3, 0x71, 0xa8, 0xa1, 0x7a, 0x85, 0x67, 0xa0, 0xb4, 0x39, 0x51,
- 0x8b, 0x56, 0xae, 0x88, 0xf9, 0x7f, 0x11, 0x5b, 0x10, 0x9d, 0x16, 0xd8, 0x16, 0xab, 0xcd, 0xb1,
- 0x94, 0x26, 0xf4, 0xaf, 0x85, 0x38, 0x30, 0x8b, 0x4f, 0x78, 0x9a, 0xb9, 0xcb, 0x7c, 0x7f, 0x73,
- 0x97, 0x30, 0xbd, 0x0c, 0xc6, 0x01, 0xed, 0x6f, 0xf3, 0x92, 0xe4, 0x4a, 0xfe, 0x2c, 0x9c, 0x4d,
- 0x00, 0xc3, 0xd5, 0x76, 0xaa, 0xef, 0x6a, 0x7b, 0xf5, 0xf1, 0xd1, 0xd2, 0xcb, 0x69, 0xb5, 0xa5,
- 0xad, 0xb4, 0xfe, 0x35, 0x10, 0x1b, 0x20, 0x2a, 0x14, 0xd9, 0x3b, 0xd3, 0x27, 0xe8, 0xab, 0x62,
- 0x7e, 0x28, 0xf8, 0x6c, 0x2f, 0x57, 0xda, 0xa0, 0x1e, 0x79, 0x11, 0x12, 0xa1, 0x30, 0xa9, 0xc4,
- 0x40, 0x3d, 0xc4, 0x34, 0x9e, 0x7d, 0x2b, 0xf9, 0xee, 0xd1, 0x92, 0x86, 0xcd, 0xe4, 0x62, 0x35,
- 0xb8, 0xaa, 0x2a, 0x17, 0x6b, 0x88, 0xe4, 0x57, 0x32, 0x30, 0xcf, 0x00, 0xd1, 0xa4, 0x12, 0x1f,
- 0xb5, 0x30, 0x68, 0xd6, 0xef, 0x3f, 0x99, 0x59, 0xff, 0x02, 0xb6, 0x51, 0x9d, 0xf5, 0x89, 0x2e,
- 0x49, 0x6d, 0x1c, 0xce, 0x76, 0xed, 0xb5, 0x58, 0x9b, 0xed, 0x67, 0x87, 0x98, 0xed, 0x7c, 0x00,
- 0x8e, 0x9f, 0xed, 0x7d, 0x6b, 0x21, 0x5b, 0x30, 0x29, 0x44, 0x62, 0xde, 0x61, 0xcf, 0x6b, 0xf1,
- 0x13, 0xd5, 0x22, 0x7e, 0x4f, 0x11, 0x21, 0x62, 0x13, 0x5f, 0xa8, 0x71, 0x21, 0x1d, 0x98, 0xe3,
- 0xbf, 0x75, 0x05, 0xc5, 0x52, 0x5f, 0x05, 0xc5, 0x25, 0xf1, 0x45, 0xe7, 0x05, 0xff, 0x98, 0x9e,
- 0x42, 0x0d, 0xbe, 0x99, 0xc2, 0x98, 0x74, 0x81, 0x68, 0x60, 0xbe, 0x68, 0xcf, 0x0f, 0x56, 0x4b,
- 0xbc, 0x2c, 0xea, 0x5c, 0x8a, 0xd7, 0x19, 0x5f, 0xb9, 0x29, 0xbc, 0x89, 0x0d, 0x33, 0x02, 0xca,
- 0x2e, 0xc0, 0xb8, 0xc3, 0xbf, 0xa0, 0x05, 0x11, 0x88, 0x95, 0xf2, 0xb7, 0x11, 0x59, 0x13, 0x06,
- 0x79, 0x88, 0x6d, 0xe8, 0x71, 0x7e, 0x64, 0x13, 0x66, 0x4b, 0xdd, 0x6e, 0xcb, 0xa1, 0x4d, 0xfc,
- 0x4a, 0x9e, 0x89, 0xd1, 0x88, 0xe2, 0xf9, 0xdb, 0xbc, 0x50, 0x88, 0xf8, 0xf1, 0x34, 0x8c, 0x49,
- 0x5a, 0xe3, 0x5b, 0x99, 0x44, 0xa3, 0xd9, 0xcd, 0x1d, 0x7f, 0x28, 0xfe, 0xc3, 0x78, 0x73, 0xe7,
- 0x4d, 0x44, 0x0d, 0x42, 0x84, 0xc0, 0x84, 0x25, 0x35, 0x36, 0x4d, 0x8e, 0x0b, 0x4b, 0xe2, 0x7a,
- 0x19, 0x5d, 0x28, 0x97, 0xa4, 0x19, 0x62, 0x2e, 0x12, 0xba, 0xd0, 0x0c, 0x51, 0x18, 0x1f, 0x1a,
- 0x3f, 0x94, 0xd5, 0xa7, 0x1d, 0xb9, 0xa4, 0xc8, 0xed, 0x4a, 0x74, 0x1c, 0x29, 0xb7, 0x2b, 0xd2,
- 0xfa, 0x2f, 0x64, 0x60, 0x6e, 0xd3, 0xdb, 0xb3, 0x3b, 0xce, 0x37, 0x78, 0x94, 0x3d, 0x17, 0xc7,
- 0x65, 0x70, 0x6a, 0x94, 0x27, 0x95, 0xe2, 0xc1, 0x55, 0x2a, 0x66, 0x33, 0x05, 0xa7, 0x8c, 0x99,
- 0xd6, 0x1e, 0x34, 0xec, 0xc6, 0x86, 0x29, 0x99, 0x36, 0x38, 0x3a, 0x87, 0x1b, 0x3f, 0x9e, 0x85,
- 0x09, 0x65, 0x09, 0x90, 0xcf, 0xc2, 0xa4, 0xca, 0x47, 0xd5, 0xfa, 0xa8, 0xd5, 0x9a, 0x1a, 0x16,
- 0xaa, 0x7d, 0xa8, 0xdd, 0xd6, 0xd4, 0x3e, 0x6c, 0xa2, 0x23, 0xf4, 0x84, 0x57, 0x9b, 0xf7, 0x52,
- 0xae, 0x36, 0x27, 0x4a, 0xd9, 0xf9, 0x76, 0xf2, 0x82, 0x33, 0x7c, 0x86, 0x4d, 0xe3, 0xa7, 0x32,
- 0x50, 0x8c, 0x2f, 0xd2, 0x4f, 0xa5, 0x57, 0x4e, 0xa0, 0xe2, 0xff, 0xb1, 0x6c, 0x18, 0x00, 0x59,
- 0xba, 0xab, 0x3c, 0xad, 0xc6, 0x27, 0xef, 0x68, 0xda, 0xf7, 0x67, 0xc3, 0x73, 0x45, 0xfd, 0xb8,
- 0x01, 0x61, 0x7c, 0xf2, 0xdf, 0xf9, 0xb9, 0xa5, 0x67, 0x8c, 0x0f, 0x60, 0x3e, 0xde, 0x1d, 0xa8,
- 0x81, 0x2f, 0xc1, 0x8c, 0x0e, 0x8f, 0x87, 0x4f, 0x8f, 0x53, 0x99, 0x71, 0x7c, 0xe3, 0x77, 0xb2,
- 0x71, 0xde, 0xc2, 0x10, 0x85, 0x6d, 0x3a, 0x1d, 0x7b, 0xa7, 0x15, 0x86, 0x4f, 0xe6, 0x9b, 0x0e,
- 0x07, 0x99, 0xb2, 0xec, 0x24, 0xf9, 0x04, 0x42, 0xa7, 0x8b, 0x5c, 0xba, 0xd3, 0x05, 0xb9, 0x11,
- 0x33, 0xc1, 0x52, 0x22, 0x04, 0x3c, 0xa4, 0x3b, 0x56, 0x64, 0x86, 0x15, 0xb3, 0xbc, 0x2a, 0xc3,
- 0xbc, 0x16, 0x46, 0x51, 0xd2, 0x8f, 0x44, 0x0a, 0xd7, 0x00, 0x0b, 0x38, 0x71, 0x2a, 0x32, 0x59,
- 0x83, 0x31, 0xd6, 0xcc, 0xbb, 0x76, 0x57, 0x28, 0xd6, 0x49, 0xe8, 0x82, 0xd5, 0x0a, 0x2f, 0x7c,
- 0x8a, 0x17, 0x56, 0x8b, 0xb2, 0x23, 0x5f, 0xcb, 0x78, 0xcb, 0x11, 0x8d, 0x3f, 0xca, 0xb0, 0xf5,
- 0xdf, 0x38, 0xf8, 0x3e, 0x4b, 0x4a, 0xc0, 0x3e, 0x69, 0x80, 0x9d, 0xd4, 0xef, 0x67, 0x79, 0x04,
- 0x6c, 0x31, 0x7d, 0xde, 0x84, 0xd1, 0x2d, 0xdb, 0xdb, 0xa3, 0x81, 0x88, 0x0d, 0xad, 0x72, 0xe1,
- 0x05, 0x51, 0xfc, 0x82, 0x00, 0x7f, 0x9b, 0x82, 0x40, 0xd5, 0x85, 0x65, 0x87, 0xd2, 0x85, 0x29,
- 0xea, 0xd9, 0xdc, 0x13, 0x53, 0xcf, 0xfe, 0x40, 0x18, 0xec, 0xba, 0x14, 0x0c, 0x11, 0xa5, 0xef,
- 0x7c, 0x3c, 0x58, 0x7c, 0x22, 0x9e, 0x62, 0xc4, 0x8e, 0xdc, 0x50, 0xc3, 0xcf, 0x2b, 0x7e, 0x0c,
- 0xc7, 0x04, 0x9a, 0x37, 0x7e, 0x3f, 0xc7, 0xfb, 0x58, 0x74, 0xd4, 0x45, 0xcd, 0xc7, 0x09, 0xd7,
- 0x09, 0xdb, 0xe8, 0x55, 0x77, 0x53, 0x34, 0xa1, 0xb8, 0x08, 0x79, 0x36, 0x37, 0x45, 0x6f, 0x22,
- 0x1e, 0x9b, 0xbf, 0x2a, 0x1e, 0x2b, 0x67, 0x6b, 0x19, 0xcf, 0x24, 0x35, 0xe1, 0x07, 0x1e, 0x5b,
- 0xea, 0x5a, 0x46, 0x0c, 0x72, 0x09, 0xf2, 0x1b, 0x6e, 0x53, 0x46, 0x83, 0x9c, 0x47, 0x4f, 0x57,
- 0x2d, 0x85, 0xfb, 0x42, 0xc6, 0x44, 0x0c, 0xf6, 0xad, 0x61, 0xfc, 0x68, 0xf5, 0x5b, 0xdb, 0xbb,
- 0xb6, 0x08, 0x60, 0xaf, 0x7e, 0x6b, 0x14, 0x6a, 0x7a, 0x15, 0xa6, 0xf5, 0x04, 0x7d, 0xc2, 0x8a,
- 0x0c, 0xd5, 0xac, 0xb1, 0x3c, 0x7f, 0xaa, 0x76, 0x5c, 0x27, 0x22, 0x2b, 0x30, 0xa5, 0x45, 0xa1,
- 0x12, 0x2f, 0x5c, 0xa8, 0xde, 0xd4, 0x63, 0x58, 0xa9, 0xea, 0x4d, 0x8d, 0x84, 0x9d, 0xe7, 0xa2,
- 0xfd, 0xca, 0x3b, 0x57, 0xa2, 0xed, 0x02, 0x87, 0x5c, 0x87, 0x02, 0x77, 0x29, 0xad, 0x56, 0xd4,
- 0xd7, 0x0a, 0x1f, 0x61, 0x31, 0x97, 0x6c, 0x89, 0xa8, 0xb8, 0x10, 0x7e, 0x06, 0x8a, 0x62, 0x4b,
- 0x8a, 0x92, 0xeb, 0x3d, 0x07, 0xf9, 0x72, 0xb5, 0x62, 0xaa, 0xdb, 0x48, 0xc3, 0x69, 0x7a, 0x26,
- 0x42, 0x8d, 0x6f, 0x67, 0xe0, 0xec, 0x06, 0x0d, 0x1e, 0xba, 0xde, 0x81, 0x49, 0xfd, 0xc0, 0x73,
- 0x78, 0xbe, 0x18, 0x5c, 0x88, 0x9f, 0x25, 0x6f, 0xc3, 0x08, 0x9a, 0x33, 0xc5, 0x4e, 0x86, 0x78,
- 0x1d, 0x2b, 0x53, 0x62, 0x02, 0x8f, 0xa0, 0x6d, 0x94, 0xc9, 0x89, 0xc8, 0x9b, 0x90, 0xaf, 0xd0,
- 0xce, 0x61, 0x2c, 0x63, 0x46, 0x82, 0x38, 0xdc, 0x10, 0x9a, 0xb4, 0x73, 0x68, 0x22, 0x89, 0xf1,
- 0x53, 0x59, 0x38, 0x95, 0xd2, 0xac, 0xfb, 0x9f, 0x7d, 0x4a, 0x77, 0xc5, 0x15, 0x6d, 0x57, 0x94,
- 0x8f, 0x94, 0x7d, 0x3b, 0x3e, 0x75, 0x93, 0xfc, 0x1b, 0x19, 0x38, 0xa3, 0x4f, 0x50, 0x61, 0xbf,
- 0x78, 0xff, 0x3a, 0x79, 0x0b, 0x46, 0xd7, 0xa8, 0xdd, 0xa4, 0x32, 0x9a, 0xfe, 0xa9, 0x30, 0xf8,
- 0x0b, 0xf7, 0x97, 0xe3, 0x85, 0x9c, 0x6d, 0xe4, 0x5d, 0xc1, 0xa1, 0xa4, 0x22, 0x1a, 0xc7, 0xe5,
- 0x71, 0x43, 0xfa, 0xae, 0xa6, 0x55, 0x35, 0xe0, 0xa9, 0xff, 0xbb, 0x19, 0x78, 0x76, 0x00, 0x0d,
- 0x1b, 0x38, 0x36, 0xf4, 0xea, 0xc0, 0xe1, 0x89, 0x8a, 0x50, 0xf2, 0x2e, 0xcc, 0x6c, 0x09, 0x79,
- 0x5e, 0x0e, 0x47, 0x36, 0x5a, 0x2f, 0x52, 0xd4, 0xb7, 0xe4, 0xb8, 0xc4, 0x91, 0x35, 0xa7, 0xea,
- 0xdc, 0x40, 0xa7, 0x6a, 0xd5, 0x47, 0x39, 0x3f, 0xac, 0x8f, 0xf2, 0x07, 0xf1, 0xb4, 0xd6, 0x22,
- 0x54, 0x5c, 0xe4, 0xa1, 0x9d, 0xe9, 0xef, 0xa1, 0x3d, 0x30, 0x20, 0x95, 0xf1, 0xe3, 0x19, 0x28,
- 0xea, 0xbc, 0x3f, 0xe9, 0x78, 0xbe, 0xa3, 0x8d, 0xe7, 0xb3, 0xe9, 0xe3, 0xd9, 0x7f, 0x20, 0xff,
- 0x97, 0x4c, 0xfc, 0x63, 0x87, 0x1a, 0x41, 0x03, 0x46, 0x2b, 0x6e, 0xdb, 0x76, 0x3a, 0x6a, 0xae,
- 0xc6, 0x26, 0x42, 0x4c, 0x51, 0x32, 0x9c, 0x43, 0xfb, 0x79, 0x18, 0xd9, 0x70, 0x3b, 0xa5, 0x8a,
- 0x30, 0xef, 0x43, 0x3e, 0x1d, 0xb7, 0x63, 0xd9, 0x4d, 0x93, 0x17, 0x90, 0x75, 0x80, 0x7a, 0xc3,
- 0xa3, 0xb4, 0x53, 0x77, 0xbe, 0x41, 0x63, 0x92, 0x06, 0xeb, 0xa1, 0x56, 0x0f, 0x37, 0x16, 0x7c,
- 0xe3, 0xf1, 0x11, 0xd1, 0xf2, 0x9d, 0x6f, 0xa8, 0xfb, 0xad, 0x42, 0x6f, 0x50, 0x80, 0x88, 0x08,
- 0x13, 0x57, 0x39, 0x4d, 0x91, 0x8c, 0x74, 0x4a, 0x24, 0xae, 0x62, 0x00, 0x2d, 0x71, 0x15, 0x03,
- 0xb0, 0xad, 0x7d, 0x8d, 0x3a, 0x7b, 0xfb, 0xdc, 0x64, 0x64, 0x8a, 0x4f, 0xd5, 0x7d, 0x84, 0xa8,
- 0x5b, 0x3b, 0xc7, 0x31, 0x7e, 0x74, 0x04, 0xce, 0x9a, 0x74, 0xcf, 0x61, 0x62, 0xf2, 0x3d, 0xdf,
- 0xe9, 0xec, 0x69, 0x2e, 0xc7, 0x46, 0x6c, 0x22, 0x89, 0xb8, 0xaf, 0x0c, 0x12, 0x76, 0xcc, 0x65,
- 0x28, 0xb0, 0x53, 0x51, 0x99, 0x4b, 0xf8, 0x86, 0x82, 0x79, 0x91, 0xf9, 0x24, 0x97, 0xc5, 0xe4,
- 0x15, 0x71, 0x6a, 0x2b, 0x91, 0xb9, 0xd9, 0xa9, 0xfd, 0xbd, 0xa3, 0x25, 0xa8, 0x1f, 0xfa, 0x01,
- 0xc5, 0x1b, 0x9b, 0x38, 0xb9, 0x43, 0xd1, 0x3a, 0xdf, 0x47, 0xb4, 0xbe, 0x0b, 0xf3, 0xa5, 0x26,
- 0xdf, 0xac, 0xed, 0x56, 0xcd, 0x73, 0x3a, 0x0d, 0xa7, 0x6b, 0xb7, 0xe4, 0x75, 0x11, 0x7b, 0xd9,
- 0x0e, 0xcb, 0xad, 0x6e, 0x88, 0x60, 0xa6, 0x92, 0xb1, 0xcf, 0xa8, 0x6c, 0xd4, 0x79, 0xce, 0x7f,
- 0xfe, 0x3c, 0x86, 0x9f, 0xd1, 0xec, 0xf8, 0x3c, 0xe9, 0xbf, 0x19, 0x16, 0xa3, 0x50, 0x8f, 0x36,
- 0x08, 0x5b, 0xeb, 0xf5, 0xc8, 0x79, 0x87, 0x07, 0x0e, 0xe5, 0x76, 0x0a, 0x41, 0xcb, 0x47, 0x5b,
- 0x05, 0x0d, 0x2f, 0xa2, 0xab, 0xd7, 0xd7, 0x18, 0x5d, 0x21, 0x41, 0xe7, 0xfb, 0xfb, 0x2a, 0x1d,
- 0xc7, 0x23, 0x57, 0xd9, 0x54, 0x68, 0xbb, 0x01, 0xc5, 0x79, 0x3e, 0x1e, 0x5d, 0x01, 0x3c, 0x84,
- 0xf2, 0x2b, 0x80, 0x82, 0x42, 0xde, 0x86, 0xb9, 0xd5, 0xf2, 0xb2, 0x54, 0x6a, 0x56, 0xdc, 0x46,
- 0x0f, 0x5f, 0x95, 0x01, 0xeb, 0xc3, 0x31, 0xa4, 0x8d, 0x65, 0x36, 0xb9, 0xd3, 0xd0, 0xc8, 0x45,
- 0x18, 0xab, 0x56, 0x78, 0xdf, 0x4f, 0xa8, 0xd1, 0xf1, 0x85, 0xb5, 0x86, 0x2c, 0x24, 0x9b, 0x91,
- 0x8c, 0x3a, 0x79, 0xac, 0x30, 0x79, 0xf6, 0x78, 0xf9, 0x54, 0x04, 0xd1, 0xe7, 0xc9, 0x5a, 0xca,
- 0x6e, 0x93, 0xfa, 0xf7, 0xaf, 0x7d, 0x9f, 0x05, 0xd1, 0x57, 0xbe, 0x0d, 0x77, 0xaf, 0x6b, 0xa9,
- 0x5b, 0xdd, 0xbf, 0x8b, 0x41, 0xf4, 0x13, 0xb8, 0xe4, 0xf3, 0x30, 0x82, 0x3f, 0x85, 0xdc, 0x33,
- 0x97, 0xc2, 0x36, 0x92, 0x79, 0x1a, 0x3c, 0xd7, 0x2a, 0x12, 0x90, 0x2a, 0x8c, 0x09, 0x91, 0xfb,
- 0x24, 0xa1, 0xa0, 0x85, 0xec, 0xce, 0x07, 0x49, 0xd0, 0x1b, 0x4d, 0x98, 0x54, 0x2b, 0x64, 0x93,
- 0x73, 0xcd, 0xf6, 0xf7, 0x69, 0x93, 0xfd, 0x12, 0x59, 0x1c, 0x70, 0x72, 0xee, 0x23, 0xd4, 0x62,
- 0xed, 0x30, 0x15, 0x14, 0xb6, 0xdb, 0x56, 0xfd, 0x7b, 0xbe, 0x68, 0x8a, 0xb8, 0x84, 0x3b, 0xa8,
- 0xd0, 0x69, 0x9a, 0xa2, 0xc8, 0xf8, 0x01, 0x98, 0xdf, 0xe8, 0xb5, 0x5a, 0xec, 0x42, 0x2e, 0xa3,
- 0xfc, 0x06, 0x76, 0x40, 0xc9, 0x0a, 0x8c, 0xd4, 0x95, 0xec, 0x6d, 0x73, 0x61, 0x18, 0xe5, 0x08,
- 0x07, 0x6d, 0xd4, 0x32, 0xe8, 0xb0, 0x1c, 0xcb, 0xdb, 0xc6, 0x49, 0x8d, 0xdf, 0x8a, 0xb2, 0xfe,
- 0x6e, 0x79, 0x76, 0xe3, 0x20, 0xcc, 0xe0, 0x37, 0x6c, 0x02, 0xe3, 0xdb, 0xb2, 0x11, 0xfa, 0x51,
- 0x96, 0xd6, 0xe0, 0xe3, 0x1a, 0x43, 0xde, 0x86, 0x09, 0x71, 0x9c, 0x29, 0x61, 0x76, 0x30, 0x96,
- 0x81, 0x4c, 0xf8, 0x1d, 0x33, 0x37, 0x50, 0xd1, 0xf1, 0x94, 0xd6, 0x3f, 0xe5, 0xfe, 0xb5, 0x4f,
- 0xe3, 0x94, 0xd6, 0xeb, 0x18, 0x30, 0x75, 0xff, 0xf1, 0x44, 0xbc, 0x6f, 0xc5, 0xdc, 0xbd, 0xa1,
- 0x06, 0xd6, 0xc8, 0x44, 0x77, 0xa6, 0x28, 0xb0, 0x86, 0x7a, 0x67, 0x0a, 0x51, 0xc3, 0x31, 0xc9,
- 0x1e, 0x33, 0x26, 0xef, 0xca, 0x31, 0xc9, 0xf5, 0x9f, 0x18, 0x73, 0x03, 0xc6, 0xa1, 0x1e, 0xad,
- 0x90, 0xfc, 0x50, 0x17, 0xee, 0x67, 0x30, 0x82, 0x28, 0x27, 0x89, 0x6f, 0x68, 0x82, 0x93, 0x7a,
- 0x8b, 0x1f, 0x19, 0x9e, 0xe9, 0x31, 0xb7, 0xf8, 0x2f, 0xc0, 0x64, 0x29, 0x08, 0xec, 0xc6, 0x3e,
- 0x6d, 0x56, 0xd8, 0xf6, 0xa4, 0xc4, 0x00, 0xb0, 0x05, 0x5c, 0x7d, 0x4e, 0x51, 0x71, 0x79, 0x4c,
- 0x2b, 0xdb, 0x17, 0xd6, 0x6e, 0x61, 0x4c, 0x2b, 0x06, 0xd1, 0x63, 0x5a, 0x31, 0x08, 0xb9, 0x0a,
- 0x63, 0xd5, 0xce, 0x03, 0x87, 0xf5, 0x49, 0x41, 0xc9, 0x53, 0xce, 0x41, 0xea, 0xe6, 0x2a, 0xb0,
- 0xc8, 0x9b, 0x8a, 0xb8, 0x3b, 0x1e, 0x5d, 0x6d, 0xb9, 0x32, 0x24, 0x74, 0x1f, 0x56, 0x45, 0xd9,
- 0x50, 0xfe, 0xbd, 0x01, 0x63, 0x52, 0xc7, 0x05, 0xd1, 0x75, 0x56, 0x50, 0x26, 0xfd, 0x14, 0x25,
- 0x32, 0x26, 0x7d, 0x53, 0xb2, 0x51, 0x4c, 0x28, 0x49, 0xdf, 0x94, 0x6c, 0x14, 0x5a, 0xd2, 0x37,
- 0x25, 0x2f, 0x45, 0xa8, 0x1e, 0x98, 0x3c, 0x56, 0x3d, 0x70, 0x1f, 0x26, 0x6b, 0xb6, 0x17, 0x38,
- 0x4c, 0x5c, 0xe8, 0x04, 0xfe, 0xc2, 0x94, 0xa6, 0x51, 0x53, 0x8a, 0x56, 0x9e, 0x97, 0x79, 0xca,
- 0xba, 0x0a, 0xbe, 0x9e, 0x50, 0x2b, 0x82, 0xa7, 0xdb, 0xba, 0x4d, 0x7f, 0x12, 0x5b, 0x37, 0xec,
- 0x54, 0xd4, 0xa2, 0xcc, 0x44, 0x77, 0x75, 0x14, 0x67, 0x63, 0xaa, 0x94, 0x10, 0x91, 0x7c, 0x19,
- 0x26, 0xd9, 0xdf, 0x98, 0x1a, 0xdc, 0xa1, 0xfe, 0x42, 0x11, 0x3f, 0xee, 0xf9, 0xd4, 0xd5, 0xcf,
- 0xf3, 0x87, 0xd7, 0x69, 0xc0, 0x17, 0x30, 0x32, 0x8e, 0xab, 0x47, 0x35, 0x6e, 0xe4, 0x3d, 0x98,
- 0x94, 0xe9, 0xeb, 0x71, 0x90, 0x66, 0x23, 0x6b, 0xc5, 0xa6, 0x80, 0x27, 0xc2, 0xca, 0xa9, 0x04,
- 0xec, 0x98, 0x2f, 0x75, 0xf9, 0x06, 0x49, 0x94, 0xd9, 0xde, 0x4d, 0x6c, 0x8e, 0x12, 0x8d, 0xbc,
- 0x0f, 0x93, 0xa5, 0x6e, 0x37, 0xda, 0x71, 0xe6, 0x14, 0x15, 0x49, 0xb7, 0x6b, 0xa5, 0xee, 0x3a,
- 0x1a, 0x45, 0x7c, 0x63, 0x9e, 0x3f, 0xd1, 0xc6, 0x4c, 0x5e, 0x0f, 0x05, 0xe7, 0x53, 0x91, 0xbe,
- 0x4f, 0x5c, 0x29, 0x34, 0x29, 0x9c, 0xcb, 0xd0, 0x65, 0x98, 0xe2, 0x0a, 0x30, 0x29, 0xcd, 0x9c,
- 0x4e, 0xac, 0x9e, 0x14, 0xa1, 0x46, 0xa7, 0x21, 0xab, 0x30, 0xcd, 0xbd, 0xbb, 0x5a, 0x22, 0xde,
- 0xdf, 0xc2, 0x99, 0x28, 0x01, 0x2d, 0x77, 0x0a, 0x6b, 0x61, 0x18, 0x68, 0x5b, 0xe3, 0x12, 0x23,
- 0x32, 0xfe, 0x20, 0x03, 0x67, 0xfa, 0x8c, 0x78, 0x18, 0x0d, 0x2e, 0x73, 0x4c, 0x0e, 0xfe, 0xab,
- 0x91, 0x94, 0xa5, 0xe8, 0x3b, 0x85, 0x94, 0xa5, 0x8e, 0x97, 0x94, 0xb7, 0x5c, 0x20, 0x22, 0x03,
- 0xbf, 0x92, 0xa9, 0x5e, 0x84, 0x24, 0x8d, 0x1d, 0x42, 0x5a, 0xa6, 0xfe, 0x15, 0xe3, 0xf1, 0xd1,
- 0xd2, 0xf3, 0x1e, 0x07, 0x85, 0xc3, 0xfa, 0x91, 0xab, 0xad, 0xe0, 0x14, 0xd6, 0xc6, 0x51, 0x06,
- 0x26, 0x94, 0x75, 0x48, 0xce, 0x2b, 0xbe, 0x62, 0x45, 0x1e, 0x62, 0x5e, 0xe1, 0x90, 0xe5, 0x27,
- 0x11, 0x2e, 0xaa, 0xec, 0xf1, 0xaa, 0xc9, 0xbb, 0x4c, 0x14, 0x52, 0x22, 0xe6, 0xb5, 0x35, 0x3d,
- 0xa2, 0x89, 0xe5, 0x98, 0x5e, 0xd1, 0xf6, 0x83, 0x52, 0x23, 0x70, 0x1e, 0xd0, 0x21, 0x0e, 0x9d,
- 0x28, 0xbd, 0xa2, 0xed, 0x07, 0x96, 0x8d, 0x64, 0x89, 0xf4, 0x8a, 0x21, 0x43, 0xe3, 0x87, 0x33,
- 0x00, 0xf7, 0xaa, 0x65, 0x0c, 0x79, 0xf9, 0x49, 0x85, 0x82, 0xf4, 0x30, 0x62, 0x92, 0xfb, 0x00,
- 0x71, 0xa0, 0x06, 0xd3, 0x3a, 0x16, 0x79, 0x17, 0x66, 0xea, 0x0d, 0xcf, 0x6d, 0xb5, 0x76, 0xec,
- 0xc6, 0xc1, 0xba, 0xd3, 0xa1, 0x3c, 0x7e, 0xd3, 0x08, 0x3f, 0x8a, 0xfc, 0xb0, 0xc8, 0x6a, 0xb1,
- 0x32, 0x33, 0x8e, 0x6c, 0xfc, 0x71, 0x06, 0x26, 0xaa, 0x1d, 0x3f, 0xb0, 0x5b, 0x2d, 0x14, 0x76,
- 0xbe, 0x9f, 0xb2, 0x8c, 0x84, 0xdf, 0x35, 0xa0, 0x47, 0xdf, 0x80, 0x99, 0x18, 0x1a, 0xbb, 0xa4,
- 0xd7, 0xd1, 0x31, 0x57, 0xbd, 0xa4, 0x73, 0x57, 0x5d, 0x53, 0x94, 0x18, 0xab, 0x0a, 0xd9, 0xfd,
- 0x6b, 0xf8, 0xd2, 0xb6, 0x0c, 0xe0, 0x48, 0x90, 0xbc, 0x52, 0x90, 0x78, 0x4b, 0xee, 0x5f, 0x33,
- 0x15, 0x2c, 0x63, 0x03, 0x46, 0xeb, 0xae, 0x17, 0xac, 0x1c, 0x72, 0x29, 0xbe, 0x42, 0xfd, 0x86,
- 0xfa, 0x94, 0xe6, 0xa0, 0xfa, 0xba, 0x61, 0x8a, 0x22, 0x76, 0x87, 0xbf, 0xe9, 0xd0, 0x56, 0x53,
- 0xb5, 0x99, 0xdc, 0x65, 0x00, 0x93, 0xc3, 0xd9, 0x4d, 0xe7, 0x74, 0x14, 0x92, 0x39, 0x32, 0xce,
- 0xfc, 0xa4, 0x13, 0xb6, 0xac, 0xf5, 0xef, 0x0b, 0x7a, 0x12, 0x4f, 0xad, 0xa6, 0x01, 0x5d, 0xfd,
- 0x1f, 0x65, 0x60, 0xb1, 0x3f, 0x89, 0x6a, 0xef, 0x99, 0x19, 0x60, 0xef, 0xf9, 0x52, 0xfc, 0xe9,
- 0x07, 0xd1, 0xc4, 0xd3, 0x4f, 0xf4, 0xe0, 0x53, 0x41, 0x73, 0xdb, 0x46, 0x98, 0x63, 0xf9, 0xfc,
- 0x80, 0x36, 0x23, 0x22, 0x1f, 0xe6, 0x00, 0x69, 0x4c, 0x41, 0x6b, 0xfc, 0x5a, 0x1e, 0xce, 0xf6,
- 0xa5, 0x20, 0x6b, 0x4a, 0x74, 0xf7, 0xe9, 0x30, 0xae, 0x74, 0x5f, 0xfc, 0x2b, 0xf8, 0x2f, 0x5a,
- 0x54, 0xc5, 0xbd, 0x40, 0x36, 0xc3, 0xa8, 0xde, 0x59, 0xe4, 0xf5, 0xea, 0xb1, 0xbc, 0x38, 0x3a,
- 0x32, 0x83, 0x64, 0x80, 0x6f, 0xf4, 0x17, 0xa2, 0x81, 0xed, 0xb4, 0x7c, 0x75, 0xd9, 0x35, 0x39,
- 0xc8, 0x94, 0x65, 0x91, 0x11, 0x6e, 0x3e, 0xdd, 0x08, 0xd7, 0xf8, 0xbf, 0x33, 0x30, 0x1e, 0x36,
- 0x9b, 0x2c, 0xc2, 0xe9, 0x2d, 0xb3, 0x54, 0x5e, 0xb5, 0xb6, 0x3e, 0xa8, 0xad, 0x5a, 0xf7, 0x36,
- 0xea, 0xb5, 0xd5, 0x72, 0xf5, 0x66, 0x75, 0xb5, 0x52, 0x7c, 0x86, 0xcc, 0xc2, 0xd4, 0xbd, 0x8d,
- 0x3b, 0x1b, 0x9b, 0xdb, 0x1b, 0xd6, 0xaa, 0x69, 0x6e, 0x9a, 0xc5, 0x0c, 0x99, 0x82, 0x71, 0x73,
- 0xa5, 0x54, 0xb6, 0x36, 0x36, 0x2b, 0xab, 0xc5, 0x2c, 0x29, 0xc2, 0x64, 0x79, 0x73, 0x63, 0x63,
- 0xb5, 0xbc, 0x55, 0xbd, 0x5f, 0xdd, 0xfa, 0xa0, 0x98, 0x23, 0x04, 0xa6, 0x11, 0xa1, 0x66, 0x56,
- 0x37, 0xca, 0xd5, 0x5a, 0x69, 0xbd, 0x98, 0x67, 0x30, 0x86, 0xaf, 0xc0, 0x46, 0x42, 0x46, 0x77,
- 0xee, 0xad, 0xac, 0x16, 0x47, 0x19, 0x0a, 0xfb, 0x4b, 0x41, 0x19, 0x63, 0xd5, 0x23, 0x4a, 0xa5,
- 0xb4, 0x55, 0x5a, 0x29, 0xd5, 0x57, 0x8b, 0x05, 0x72, 0x06, 0xe6, 0x34, 0x90, 0xb5, 0xbe, 0x79,
- 0xab, 0xba, 0x51, 0x1c, 0x27, 0xf3, 0x50, 0x0c, 0x61, 0x95, 0x15, 0xeb, 0x5e, 0x7d, 0xd5, 0x2c,
- 0x42, 0x1c, 0xba, 0x51, 0xba, 0xbb, 0x5a, 0x9c, 0x30, 0xde, 0xe1, 0xfe, 0x39, 0xbc, 0xab, 0xc9,
- 0x69, 0x20, 0xf5, 0xad, 0xd2, 0xd6, 0xbd, 0x7a, 0xec, 0xe3, 0x27, 0x60, 0xac, 0x7e, 0xaf, 0x5c,
- 0x5e, 0xad, 0xd7, 0x8b, 0x19, 0x02, 0x30, 0x7a, 0xb3, 0x54, 0x5d, 0x5f, 0xad, 0x14, 0xb3, 0xc6,
- 0x4f, 0x66, 0x60, 0x56, 0x8a, 0x5e, 0x52, 0x8f, 0xff, 0x09, 0xd7, 0xe2, 0xbb, 0xda, 0x8d, 0x52,
- 0xba, 0x4f, 0xc4, 0x2a, 0x19, 0xb0, 0x0c, 0x3d, 0x38, 0x95, 0x8a, 0x4c, 0x3e, 0x80, 0xa2, 0x6c,
- 0xc0, 0x5d, 0x3b, 0x68, 0xec, 0x47, 0xdb, 0xd8, 0xf3, 0xb1, 0x4a, 0x62, 0x68, 0x5c, 0xb3, 0x17,
- 0xa5, 0x31, 0x4b, 0xb0, 0x31, 0xbe, 0x93, 0x81, 0x33, 0x7d, 0x88, 0x49, 0x19, 0x46, 0xc3, 0x60,
- 0xd7, 0x03, 0x2c, 0x85, 0xe6, 0xbf, 0x7b, 0xb4, 0x24, 0x10, 0x31, 0x9b, 0x13, 0xfe, 0x65, 0x8e,
- 0x86, 0xd1, 0xab, 0x31, 0x84, 0x34, 0xef, 0x93, 0xb3, 0xb1, 0xee, 0x14, 0x35, 0x95, 0xb6, 0xeb,
- 0x2b, 0x13, 0xa2, 0x43, 0x72, 0xf6, 0x43, 0x1f, 0x63, 0x48, 0x1b, 0xdf, 0xce, 0x30, 0x51, 0x29,
- 0x8e, 0xc8, 0x24, 0xc8, 0x92, 0xef, 0xf7, 0xda, 0xd4, 0x74, 0x5b, 0xb4, 0x64, 0x6e, 0x88, 0xb3,
- 0x00, 0x65, 0x3f, 0x1b, 0x0b, 0x50, 0x48, 0xb7, 0x6c, 0xaf, 0xa3, 0xbd, 0x0a, 0xaa, 0x34, 0xe4,
- 0x4d, 0x80, 0x30, 0xab, 0xb6, 0xf4, 0x8b, 0xe7, 0x71, 0x21, 0x04, 0x54, 0x97, 0x5e, 0x15, 0x64,
- 0xe3, 0x2f, 0x66, 0x60, 0x52, 0x5c, 0x41, 0x4a, 0x2d, 0xea, 0x05, 0x9f, 0x6c, 0xce, 0xbc, 0xa9,
- 0xcd, 0x99, 0xd0, 0x30, 0x5e, 0xe1, 0xcf, 0x8a, 0x53, 0xa7, 0xcb, 0x7f, 0x91, 0x81, 0x62, 0x1c,
- 0x91, 0xbc, 0x0b, 0x85, 0x3a, 0x7d, 0x40, 0x3d, 0x27, 0x38, 0x8c, 0xe5, 0xfd, 0xe7, 0x38, 0xa2,
- 0x8c, 0x6b, 0x3a, 0x7d, 0xf1, 0xcb, 0x0c, 0x69, 0x86, 0xdd, 0xc4, 0x15, 0x25, 0x42, 0xee, 0x49,
- 0x29, 0x11, 0x8c, 0xff, 0x31, 0x0b, 0x67, 0x6e, 0xd1, 0x40, 0xfd, 0xa6, 0xf0, 0x19, 0xf7, 0x33,
- 0xc3, 0x7d, 0x97, 0xf2, 0x25, 0x0b, 0x30, 0x86, 0x45, 0x72, 0x7c, 0x4d, 0xf9, 0x93, 0xac, 0x84,
- 0xf3, 0x3a, 0xa7, 0xe5, 0x1d, 0xe8, 0x53, 0xf7, 0x15, 0x25, 0x12, 0x79, 0x38, 0xad, 0x2f, 0xc2,
- 0x34, 0x86, 0xda, 0xec, 0xb1, 0xe5, 0x40, 0x9b, 0x42, 0x99, 0x52, 0x30, 0x63, 0x50, 0xf2, 0x0a,
- 0x14, 0x19, 0xa4, 0xd4, 0x38, 0xe8, 0xb8, 0x0f, 0x5b, 0xb4, 0xb9, 0x47, 0x79, 0x1a, 0xe4, 0x82,
- 0x99, 0x80, 0x4b, 0x9e, 0xf7, 0x3a, 0xfc, 0x22, 0x44, 0x9b, 0xa8, 0xf1, 0x10, 0x3c, 0x23, 0xe8,
- 0xe2, 0x9b, 0x30, 0xf1, 0x31, 0xb3, 0x0a, 0x18, 0xff, 0x43, 0x06, 0xe6, 0xf1, 0xe3, 0x94, 0x8a,
- 0x51, 0x15, 0xfe, 0x99, 0xa8, 0xb7, 0x94, 0x40, 0xdb, 0x36, 0x03, 0xe9, 0x4b, 0x21, 0xec, 0xc5,
- 0x48, 0xc3, 0x92, 0x1d, 0x42, 0xc3, 0x52, 0x3f, 0x49, 0xd6, 0xc4, 0x21, 0x15, 0x44, 0x3c, 0xd7,
- 0x75, 0x34, 0xe4, 0xc6, 0x9f, 0xcf, 0xc2, 0x98, 0x49, 0x31, 0x9d, 0x1c, 0xb9, 0x08, 0x63, 0x1b,
- 0x6e, 0x40, 0xfd, 0xbb, 0x5a, 0xee, 0xc0, 0x0e, 0x03, 0x59, 0xed, 0xa6, 0x29, 0x0b, 0xd9, 0x84,
- 0xaf, 0x79, 0x6e, 0xb3, 0xd7, 0x08, 0xd4, 0x09, 0xdf, 0xe5, 0x20, 0x53, 0x96, 0x91, 0xd7, 0x60,
- 0x5c, 0x70, 0x0e, 0x1f, 0xcf, 0xd0, 0xe8, 0xd3, 0xa3, 0x61, 0x3a, 0xc2, 0x08, 0x01, 0x05, 0x55,
- 0x2e, 0x35, 0xe4, 0x15, 0x41, 0x35, 0x21, 0x08, 0x48, 0xf9, 0x7b, 0x64, 0x80, 0xfc, 0xfd, 0x19,
- 0x18, 0x2d, 0xf9, 0x3e, 0x0d, 0xa4, 0xcb, 0xf0, 0x64, 0x18, 0x74, 0xc5, 0xa7, 0x01, 0x67, 0x6c,
- 0x63, 0xb9, 0x29, 0xf0, 0x8c, 0x3f, 0xca, 0xc2, 0x08, 0xfe, 0x89, 0x0f, 0x86, 0x5e, 0x63, 0x5f,
- 0x7b, 0x30, 0xf4, 0x1a, 0xfb, 0x26, 0x42, 0xc9, 0x35, 0xbc, 0xf7, 0xcb, 0x98, 0xf0, 0xe2, 0xeb,
- 0x51, 0xa1, 0xdd, 0x8c, 0xc0, 0xa6, 0x8a, 0x13, 0xbe, 0xa4, 0xe6, 0x52, 0x03, 0x05, 0x9c, 0x86,
- 0xec, 0x66, 0x5d, 0x7c, 0x31, 0x46, 0x21, 0x71, 0x7d, 0x33, 0xbb, 0x59, 0xc7, 0xde, 0x58, 0x2b,
- 0x2d, 0xbf, 0x71, 0x43, 0x4d, 0x73, 0xe9, 0xef, 0xdb, 0xcb, 0x6f, 0xdc, 0x30, 0x45, 0x09, 0xeb,
- 0x5f, 0x6c, 0x33, 0xbe, 0x28, 0x72, 0x17, 0x57, 0xec, 0x5f, 0xfc, 0x36, 0x7c, 0x3d, 0x34, 0x23,
- 0x04, 0xb2, 0x0c, 0x13, 0xc2, 0xb1, 0x1a, 0xf1, 0x15, 0xc7, 0x67, 0xe1, 0x78, 0xcd, 0x29, 0x54,
- 0x24, 0xfe, 0xb6, 0x24, 0x06, 0x48, 0x66, 0xae, 0x12, 0x6f, 0x4b, 0x72, 0x08, 0x7d, 0x53, 0x41,
- 0x89, 0x3c, 0x74, 0x23, 0xd7, 0x55, 0xd5, 0x43, 0x17, 0x43, 0xa7, 0x86, 0x08, 0xc6, 0x2f, 0x66,
- 0xa1, 0x50, 0x6b, 0xf5, 0xf6, 0x9c, 0xce, 0xfd, 0x6b, 0x7f, 0xa2, 0xa9, 0xd6, 0x5f, 0x07, 0x3c,
- 0x24, 0xc4, 0x8d, 0x40, 0xaa, 0x87, 0x79, 0xd3, 0x84, 0xf0, 0xc1, 0x49, 0x10, 0x8d, 0x5c, 0x07,
- 0x31, 0x31, 0x45, 0xe6, 0xbd, 0x53, 0x3a, 0x01, 0xcf, 0x39, 0x23, 0x49, 0x04, 0x2a, 0x79, 0x1b,
- 0x26, 0xa2, 0x9c, 0xd7, 0x51, 0x42, 0x3d, 0x95, 0xb2, 0x1c, 0x95, 0xdf, 0xbf, 0x66, 0xaa, 0xe8,
- 0xc6, 0x2f, 0x8c, 0xc2, 0xa4, 0xda, 0x1e, 0x62, 0xc2, 0x9c, 0xdf, 0x62, 0x57, 0x61, 0x61, 0xd4,
- 0xd3, 0xc5, 0x42, 0x71, 0x9c, 0x9e, 0xd7, 0x1b, 0xc4, 0xf0, 0xb8, 0x85, 0x8f, 0xf4, 0x08, 0x5f,
- 0x7b, 0xc6, 0x9c, 0xf5, 0x23, 0x30, 0xc7, 0x23, 0x25, 0x28, 0xb8, 0x5d, 0x7f, 0x8f, 0x76, 0x1c,
- 0xf9, 0x7a, 0x71, 0x41, 0x63, 0xb4, 0x29, 0x0a, 0x13, 0xbc, 0x42, 0x32, 0xf2, 0x06, 0x8c, 0xba,
- 0x5d, 0xda, 0xb1, 0x1d, 0x71, 0xc6, 0x3d, 0x1b, 0x63, 0x40, 0x3b, 0xa5, 0xaa, 0x42, 0x28, 0x90,
- 0xc9, 0x55, 0xc8, 0xbb, 0x07, 0xe1, 0x78, 0x9d, 0xd5, 0x89, 0x0e, 0x02, 0x5b, 0x21, 0x41, 0x44,
- 0x46, 0xf0, 0x91, 0xdd, 0xde, 0x15, 0x23, 0xa6, 0x13, 0xdc, 0xb6, 0xdb, 0xbb, 0x2a, 0x01, 0x43,
- 0x24, 0xef, 0x01, 0x74, 0xed, 0x3d, 0xea, 0x59, 0xcd, 0x5e, 0x70, 0x28, 0xc6, 0xed, 0x79, 0x8d,
- 0xac, 0xc6, 0x8a, 0x2b, 0xbd, 0xe0, 0x50, 0xa1, 0x1d, 0xef, 0x4a, 0x20, 0x29, 0x01, 0xb4, 0xed,
- 0x20, 0xa0, 0x5e, 0xdb, 0x15, 0x56, 0x55, 0x13, 0xcb, 0x4b, 0x1a, 0x83, 0xbb, 0x61, 0xb1, 0xc2,
- 0x41, 0x21, 0xc2, 0x46, 0x3b, 0x9e, 0x2d, 0xf2, 0x1f, 0xc6, 0x1a, 0xed, 0x78, 0xda, 0x57, 0x32,
- 0x44, 0xf2, 0x79, 0x18, 0x6b, 0x3a, 0x7e, 0xc3, 0xf5, 0x9a, 0x22, 0x54, 0xc0, 0x73, 0x1a, 0x4d,
- 0x85, 0x97, 0x29, 0x64, 0x12, 0x9d, 0xb5, 0x56, 0x84, 0x10, 0xdb, 0x70, 0x1f, 0x8a, 0xdc, 0xfa,
- 0x7a, 0x6b, 0xeb, 0x61, 0xb1, 0xda, 0xda, 0x88, 0x88, 0x0d, 0xe5, 0x9e, 0x13, 0xb4, 0xec, 0x1d,
- 0xf1, 0x80, 0xab, 0x0f, 0xe5, 0x2d, 0x2c, 0x52, 0x87, 0x92, 0x23, 0x93, 0x37, 0xa1, 0x40, 0x3b,
- 0x81, 0x67, 0x5b, 0x4e, 0x53, 0x78, 0xa3, 0xe9, 0x8d, 0x66, 0x07, 0xb0, 0x5d, 0xad, 0xa8, 0x8d,
- 0x46, 0xfc, 0x6a, 0x93, 0xf5, 0x8f, 0xdf, 0x70, 0xda, 0xc2, 0x89, 0x4c, 0xef, 0x9f, 0x7a, 0xb9,
- 0x7a, 0x57, 0xed, 0x1f, 0x86, 0xf8, 0x85, 0xfc, 0xff, 0xf4, 0x73, 0x4b, 0x99, 0x15, 0x80, 0x82,
- 0x8c, 0x85, 0x60, 0xac, 0xc3, 0xd9, 0xbe, 0x93, 0x9e, 0x5c, 0x86, 0xe2, 0xae, 0x2d, 0x34, 0x48,
- 0x8d, 0x7d, 0xbb, 0xd3, 0xa1, 0x2d, 0xb1, 0xdd, 0xcc, 0x48, 0x78, 0x99, 0x83, 0x39, 0x67, 0xe3,
- 0x3d, 0x98, 0x4f, 0xfb, 0x5a, 0xf2, 0x02, 0x4c, 0xaa, 0x61, 0x1f, 0x04, 0x93, 0x09, 0xbb, 0xeb,
- 0xc8, 0xc0, 0x0f, 0x82, 0xc1, 0xaf, 0x66, 0xe0, 0xb9, 0x41, 0x6b, 0x87, 0x2c, 0x42, 0xa1, 0xeb,
- 0x39, 0x2e, 0xca, 0x68, 0x7c, 0x87, 0x0b, 0x7f, 0x93, 0x73, 0x00, 0x5c, 0x98, 0x08, 0xec, 0x3d,
- 0x61, 0x45, 0x6e, 0x8e, 0x23, 0x64, 0xcb, 0xde, 0xf3, 0xc9, 0xab, 0x30, 0xdb, 0xa4, 0xbb, 0x76,
- 0xaf, 0x15, 0x58, 0x7e, 0x63, 0x9f, 0x36, 0xd1, 0x71, 0x03, 0xad, 0x83, 0xcc, 0xa2, 0x28, 0xa8,
- 0x4b, 0x78, 0xa2, 0xc5, 0x23, 0x7d, 0x5a, 0x7c, 0x3b, 0x5f, 0xc8, 0x14, 0xb3, 0x26, 0x1a, 0xc9,
- 0x18, 0xdf, 0xcc, 0xc2, 0x42, 0xbf, 0xc9, 0x42, 0xde, 0x49, 0xeb, 0x03, 0xae, 0x03, 0x57, 0xe1,
- 0xaa, 0x0e, 0x5c, 0xa9, 0x8d, 0x2c, 0x43, 0xe8, 0x76, 0x71, 0x9c, 0x0b, 0xb5, 0x84, 0x31, 0x9a,
- 0xae, 0xed, 0xfb, 0x0f, 0xd9, 0x7a, 0xc8, 0x29, 0xb1, 0xd8, 0x04, 0x4c, 0xa5, 0x91, 0x30, 0xf2,
- 0x39, 0x80, 0x46, 0xcb, 0xf5, 0x29, 0x3e, 0x35, 0x8b, 0x83, 0x96, 0xdb, 0x9e, 0x86, 0x50, 0xf5,
- 0x6d, 0x11, 0xa1, 0x65, 0xb7, 0x49, 0xc5, 0x00, 0xda, 0x70, 0xa6, 0xcf, 0xee, 0xc0, 0x86, 0x27,
- 0x4a, 0xb7, 0x28, 0x83, 0xb7, 0xf7, 0xc2, 0xa4, 0x8b, 0xf1, 0x1e, 0xcf, 0xf6, 0x9b, 0x23, 0x87,
- 0x40, 0x92, 0x5b, 0x00, 0xe3, 0x2e, 0x2c, 0x28, 0x7b, 0x5e, 0xc8, 0x9d, 0x43, 0xee, 0x79, 0x2d,
- 0xb2, 0x04, 0x13, 0x32, 0x39, 0x0b, 0x13, 0x64, 0x39, 0x73, 0x10, 0xa0, 0x3b, 0x14, 0x27, 0x0f,
- 0x86, 0x0c, 0x44, 0xe7, 0x1a, 0x71, 0x44, 0x8e, 0x23, 0x84, 0xdd, 0xfd, 0x45, 0xd5, 0xcf, 0xc9,
- 0xf9, 0xad, 0x6f, 0xcc, 0xa2, 0xf4, 0xa7, 0x33, 0x72, 0xf8, 0x93, 0x3b, 0xdb, 0x71, 0xed, 0x23,
- 0x80, 0xae, 0x10, 0xa2, 0x61, 0xf8, 0x37, 0x3b, 0xb2, 0xe5, 0xaa, 0x13, 0x47, 0xb6, 0xf8, 0x49,
- 0x2e, 0xc2, 0x8c, 0xc7, 0x8d, 0xe5, 0x02, 0x57, 0xf4, 0x27, 0x8e, 0x94, 0x39, 0xc5, 0xc1, 0x5b,
- 0x2e, 0xf6, 0xa9, 0x68, 0xd7, 0xed, 0xb0, 0xc3, 0x94, 0x8d, 0x9e, 0x5c, 0x81, 0x71, 0xb6, 0xd1,
- 0x63, 0x54, 0x85, 0x98, 0x0d, 0x36, 0xe2, 0xe1, 0xb1, 0x69, 0x16, 0x3e, 0x12, 0x7f, 0x0b, 0x5e,
- 0xff, 0x24, 0x23, 0x99, 0xa9, 0xc7, 0x0c, 0x39, 0x03, 0x63, 0xae, 0xb7, 0xa7, 0x7c, 0xda, 0xa8,
- 0xeb, 0xed, 0xb1, 0xef, 0xba, 0x04, 0x45, 0xee, 0x12, 0xc0, 0x7d, 0xad, 0xfd, 0xc3, 0x0e, 0xbf,
- 0x87, 0x16, 0xcc, 0x69, 0x0e, 0xc7, 0x0c, 0x94, 0x87, 0x9d, 0x06, 0xc3, 0xf4, 0x7d, 0xd7, 0x52,
- 0x43, 0xa9, 0x88, 0xcf, 0x9e, 0xf6, 0x7d, 0x37, 0x8a, 0xa9, 0xd2, 0x24, 0x2b, 0x30, 0xc5, 0xf8,
- 0x84, 0x01, 0x5d, 0xc4, 0x29, 0x78, 0x2e, 0x79, 0x0a, 0x1e, 0x76, 0x1a, 0xb2, 0x89, 0xe6, 0xa4,
- 0xaf, 0xfc, 0x12, 0x5f, 0xf3, 0x33, 0x59, 0x38, 0x9d, 0x8e, 0x8e, 0xe3, 0xc5, 0x2a, 0x41, 0xcf,
- 0x18, 0xae, 0x93, 0x34, 0xc7, 0x19, 0x84, 0x3b, 0xff, 0xa7, 0xb5, 0x36, 0x9b, 0xda, 0xda, 0x57,
- 0x60, 0x16, 0x19, 0x09, 0xb9, 0xa3, 0xe5, 0xf8, 0x81, 0xf0, 0x69, 0x37, 0x67, 0x58, 0x01, 0xdf,
- 0xe0, 0xd6, 0x19, 0x98, 0xbc, 0x04, 0xd3, 0x72, 0x8b, 0x72, 0x1f, 0x76, 0x58, 0xc5, 0x7c, 0x7f,
- 0x9a, 0x12, 0xd0, 0x4d, 0x04, 0x92, 0x53, 0x30, 0x6a, 0x77, 0xbb, 0xac, 0x4a, 0xbe, 0x2d, 0x8d,
- 0xd8, 0xdd, 0x6e, 0xb5, 0x49, 0x2e, 0xc0, 0x14, 0xfa, 0x01, 0x59, 0xbb, 0x68, 0x81, 0x21, 0x2c,
- 0xaf, 0xcc, 0x49, 0x04, 0x72, 0xab, 0x0c, 0x9f, 0x2d, 0x04, 0x46, 0x2b, 0x51, 0xc6, 0x10, 0x05,
- 0xec, 0xae, 0x44, 0x10, 0x3d, 0xf3, 0x79, 0x98, 0x11, 0xa7, 0xa5, 0xd8, 0xe1, 0x91, 0x52, 0xcc,
- 0x3f, 0x26, 0xc6, 0x8a, 0xa8, 0xd5, 0x20, 0x40, 0xd5, 0xa6, 0xa4, 0xfc, 0xdd, 0x0c, 0x9c, 0x4a,
- 0x3d, 0x6e, 0xc9, 0xd7, 0x80, 0xbb, 0x45, 0x04, 0xae, 0xe5, 0xd1, 0x86, 0xd3, 0x75, 0xd0, 0x71,
- 0x9c, 0x2b, 0x99, 0x96, 0x07, 0x1d, 0xd4, 0xe8, 0x62, 0xb1, 0xe5, 0x9a, 0x21, 0x11, 0xbf, 0x27,
- 0x17, 0xbd, 0x18, 0x78, 0xf1, 0x43, 0x38, 0x95, 0x8a, 0x9a, 0x72, 0x7f, 0x7d, 0x4d, 0x4f, 0xee,
- 0x25, 0x5f, 0x0d, 0x62, 0x1f, 0xad, 0xdc, 0x6b, 0xc5, 0xe7, 0xfd, 0x7a, 0xf8, 0x79, 0xb1, 0x83,
- 0x99, 0xac, 0xc6, 0xa7, 0x65, 0x9a, 0x6c, 0x29, 0x89, 0xfa, 0xce, 0x4c, 0xf2, 0x21, 0x9c, 0x12,
- 0x53, 0x65, 0xcf, 0xb3, 0xbb, 0xfb, 0x11, 0x3b, 0xde, 0xd0, 0x97, 0xd3, 0xd8, 0xf1, 0x39, 0x74,
- 0x8b, 0xe1, 0x87, 0x5c, 0xe7, 0xec, 0x24, 0x50, 0x7c, 0x83, 0x27, 0x0f, 0xfd, 0x94, 0xd6, 0xa4,
- 0xcc, 0xc1, 0x4c, 0xda, 0x1c, 0x1c, 0x7a, 0x01, 0x88, 0x3a, 0x7f, 0x28, 0x03, 0xe7, 0x8f, 0x6b,
- 0x33, 0xd9, 0x86, 0xd3, 0xf8, 0xa0, 0xec, 0xbb, 0xe1, 0x67, 0x5b, 0x0d, 0xbb, 0xb1, 0x4f, 0xc5,
- 0x2c, 0x31, 0x52, 0x3f, 0xbe, 0xdb, 0xad, 0xd7, 0x37, 0x95, 0xef, 0xee, 0x76, 0xeb, 0xbe, 0x2b,
- 0x7f, 0x97, 0x19, 0xb9, 0x68, 0x43, 0x13, 0x9e, 0x1d, 0x40, 0xa9, 0x2c, 0xab, 0x8c, 0xba, 0xac,
- 0x2e, 0x41, 0x71, 0x97, 0x36, 0xa9, 0x87, 0x9e, 0x17, 0xac, 0x69, 0x0f, 0x96, 0x79, 0x86, 0x3c,
- 0x73, 0x3a, 0x84, 0xd7, 0x7d, 0xf7, 0xfe, 0xb2, 0xa8, 0xa5, 0x2d, 0x77, 0x48, 0x55, 0x04, 0x23,
- 0x57, 0x60, 0x2e, 0xe6, 0x04, 0x1f, 0x79, 0x55, 0x9a, 0xb3, 0xac, 0x48, 0x0f, 0x99, 0xf2, 0x02,
- 0x4c, 0xca, 0x61, 0xf0, 0x42, 0xdf, 0x0c, 0x73, 0x42, 0xc0, 0xd8, 0x2c, 0x17, 0xd5, 0xfd, 0xed,
- 0xac, 0x14, 0x99, 0x56, 0x5c, 0x37, 0xf0, 0x03, 0xcf, 0xee, 0x6a, 0xf7, 0x22, 0xd2, 0x86, 0xb3,
- 0xae, 0xdd, 0x0b, 0xf6, 0x97, 0x2d, 0xf6, 0xaf, 0xeb, 0x49, 0x47, 0xc9, 0x86, 0x34, 0x31, 0x9b,
- 0x58, 0xbe, 0xaa, 0x6f, 0x9d, 0x25, 0x86, 0x5d, 0x52, 0x91, 0xd9, 0x09, 0xaf, 0x70, 0x5d, 0x7b,
- 0xc6, 0x3c, 0xc3, 0x79, 0x26, 0xb0, 0xc8, 0x1a, 0x68, 0xf9, 0xd8, 0x53, 0x2f, 0x46, 0x4a, 0xee,
- 0x74, 0x9d, 0xeb, 0xc4, 0x8e, 0x92, 0xbc, 0xfd, 0x5d, 0x18, 0x77, 0x9a, 0x22, 0x30, 0x9b, 0xb8,
- 0x1e, 0xe9, 0x22, 0x79, 0xb5, 0xc9, 0xe3, 0xb4, 0x45, 0x3c, 0xd8, 0xdd, 0xca, 0x11, 0xd0, 0x95,
- 0x29, 0xed, 0x06, 0x69, 0xac, 0xc8, 0xd3, 0x39, 0x49, 0x46, 0xa6, 0x21, 0x1b, 0x0e, 0x7b, 0xd6,
- 0x69, 0x92, 0xd3, 0x30, 0xea, 0x2b, 0x91, 0xe2, 0x4c, 0xf1, 0xcb, 0xf8, 0x33, 0x70, 0x69, 0xd8,
- 0x3e, 0x22, 0xaf, 0x03, 0xe9, 0xd3, 0xe1, 0xe3, 0xe6, 0xac, 0x9d, 0xe8, 0xb7, 0x17, 0x40, 0x0d,
- 0x75, 0xe5, 0xc8, 0x01, 0x97, 0xb0, 0x7b, 0x9e, 0x63, 0xfc, 0x57, 0x59, 0x98, 0xd6, 0xef, 0xcc,
- 0xe4, 0x55, 0xc8, 0x87, 0x6c, 0xa7, 0x43, 0xdd, 0xae, 0x8a, 0xc4, 0x98, 0x9b, 0x88, 0xc4, 0x0e,
- 0x08, 0x7c, 0xdf, 0xb1, 0xda, 0xaa, 0xfa, 0xd5, 0x9c, 0x44, 0xa0, 0x54, 0xbb, 0xde, 0x06, 0x9e,
- 0x90, 0x15, 0xf7, 0xb2, 0x60, 0xb8, 0xf4, 0xe3, 0x05, 0x76, 0x73, 0x47, 0xbd, 0xd9, 0x24, 0xa3,
- 0x65, 0xfb, 0x09, 0x66, 0x1c, 0x8f, 0xae, 0x44, 0xf9, 0xfe, 0x57, 0x22, 0xf1, 0x29, 0x7d, 0xae,
- 0x44, 0x23, 0x03, 0xae, 0x44, 0x11, 0x65, 0x78, 0x25, 0x7a, 0x51, 0xb4, 0xde, 0xb3, 0x1f, 0x5a,
- 0xf8, 0x59, 0xdc, 0xa2, 0x8b, 0xb7, 0xcb, 0xb4, 0x1f, 0xe2, 0xc3, 0xd6, 0xca, 0x38, 0xc8, 0xd7,
- 0x30, 0xe3, 0xaf, 0x66, 0x62, 0x77, 0x16, 0xd9, 0xb3, 0x2f, 0xc1, 0xb4, 0xd3, 0x66, 0xc2, 0x14,
- 0x6d, 0x2a, 0x42, 0xc0, 0x94, 0x39, 0x25, 0xa1, 0x5c, 0x10, 0x78, 0x19, 0x66, 0x42, 0x34, 0xee,
- 0x85, 0xcb, 0x2d, 0xc5, 0xcd, 0x90, 0x5a, 0x78, 0xe1, 0xbe, 0x0a, 0xb3, 0x21, 0xa2, 0x90, 0x3b,
- 0xb9, 0x1c, 0x30, 0x65, 0x16, 0x65, 0x81, 0xc8, 0x14, 0xe8, 0x1b, 0x7b, 0xf1, 0x43, 0xe6, 0x53,
- 0x6a, 0x95, 0xf1, 0x2f, 0xb3, 0x30, 0x97, 0xa2, 0x4c, 0x21, 0x1f, 0xc2, 0x9c, 0xdc, 0x34, 0xf8,
- 0x61, 0xc4, 0x17, 0x33, 0xdf, 0x2e, 0x2e, 0xa7, 0x6d, 0x17, 0x88, 0x96, 0xb2, 0xa4, 0x67, 0xc5,
- 0x46, 0x11, 0x95, 0xff, 0xe9, 0xd9, 0x22, 0xc8, 0x07, 0x70, 0x5a, 0x24, 0xf8, 0x55, 0x76, 0x0a,
- 0xcb, 0xa3, 0xbb, 0x62, 0xc2, 0xbe, 0x90, 0x58, 0x50, 0x4e, 0x43, 0x69, 0x8e, 0x49, 0x77, 0xd7,
- 0x9e, 0x31, 0xe7, 0xfd, 0x14, 0x78, 0x7c, 0xf7, 0xf9, 0x3b, 0x19, 0x30, 0x8e, 0xef, 0x2f, 0xbc,
- 0x05, 0xc5, 0x3b, 0x9c, 0xdd, 0x82, 0x94, 0xde, 0xbb, 0x00, 0x53, 0x1e, 0xdd, 0xf5, 0xa8, 0xbf,
- 0xaf, 0x74, 0xdf, 0xb8, 0x39, 0x29, 0x80, 0xb2, 0x63, 0xa4, 0xff, 0xff, 0x89, 0x96, 0xaf, 0x24,
- 0x32, 0x6e, 0x86, 0x87, 0x4a, 0xea, 0x38, 0x90, 0x79, 0x18, 0x51, 0x1b, 0xc8, 0x7f, 0xdc, 0xce,
- 0x17, 0xb2, 0xc5, 0x9c, 0x29, 0xa2, 0x14, 0xec, 0x3a, 0x2d, 0x6a, 0xfc, 0xbd, 0x0c, 0x2c, 0xf6,
- 0xef, 0x3c, 0xf2, 0xa1, 0xf2, 0xfc, 0x97, 0xe3, 0x41, 0xda, 0x8e, 0xe9, 0x6f, 0xf5, 0xa5, 0x44,
- 0x38, 0xce, 0xc7, 0x73, 0xdb, 0x0a, 0x96, 0x9f, 0xe4, 0x0d, 0xe3, 0x4d, 0xa9, 0x3d, 0x64, 0x72,
- 0xf9, 0xfd, 0x6b, 0xe4, 0x32, 0x8c, 0x71, 0x85, 0xa1, 0x6c, 0xe8, 0x8c, 0xd6, 0xd0, 0xfb, 0xd7,
- 0x4c, 0x59, 0x6e, 0x7c, 0x27, 0x13, 0xaa, 0x54, 0xe2, 0xcd, 0xbf, 0x7f, 0x8d, 0x7c, 0x6e, 0xb8,
- 0x87, 0xbc, 0x82, 0x7c, 0xc8, 0x0b, 0x1f, 0xf1, 0x3e, 0xaf, 0x3d, 0xe2, 0xbd, 0x38, 0xb8, 0x9f,
- 0xc4, 0xe5, 0x2d, 0x9e, 0x7d, 0xf0, 0x5f, 0x67, 0xe0, 0xdc, 0x40, 0x0a, 0xf2, 0x1c, 0x14, 0x4a,
- 0xb5, 0xea, 0x56, 0x34, 0xb2, 0x6c, 0xb5, 0x48, 0x08, 0xb9, 0x05, 0xe3, 0x2b, 0xb6, 0xef, 0x34,
- 0xd8, 0x04, 0x4e, 0x15, 0x47, 0x13, 0x6c, 0x43, 0xf4, 0xb5, 0x67, 0xcc, 0x88, 0x96, 0x58, 0x30,
- 0x8b, 0xab, 0x20, 0x91, 0xdd, 0x2b, 0x2e, 0x8a, 0x24, 0x18, 0x26, 0xc8, 0xd8, 0x0e, 0x93, 0x00,
- 0xc6, 0x17, 0xdf, 0x03, 0x29, 0x7b, 0xf6, 0x6f, 0xe0, 0x09, 0x62, 0x5d, 0x5c, 0x82, 0x42, 0x4d,
- 0xaa, 0x55, 0x94, 0xe4, 0x9e, 0x52, 0x85, 0x62, 0x86, 0xa5, 0xc6, 0x5f, 0xce, 0x48, 0x79, 0xe1,
- 0xf8, 0x0f, 0x51, 0xc2, 0xd9, 0x36, 0x07, 0x87, 0xb3, 0x6d, 0x7e, 0xcc, 0x70, 0xb6, 0xc6, 0x2f,
- 0x8a, 0x48, 0x54, 0xd5, 0x66, 0x2d, 0x96, 0x16, 0xe1, 0x93, 0x9a, 0x25, 0xac, 0x6a, 0xb3, 0xf3,
- 0x82, 0x12, 0x17, 0x3b, 0x59, 0x57, 0x7f, 0xeb, 0x04, 0x65, 0xaa, 0xfe, 0xcb, 0x2c, 0x3c, 0x37,
- 0x88, 0x3c, 0x35, 0x83, 0x43, 0xe6, 0x64, 0x19, 0x1c, 0x2e, 0x43, 0x81, 0xc3, 0xf4, 0x4c, 0x74,
- 0x82, 0x94, 0x75, 0xb8, 0x2c, 0x26, 0x17, 0x60, 0xb4, 0x54, 0xae, 0x47, 0x31, 0x80, 0xf1, 0x1d,
- 0xcd, 0x6e, 0xf8, 0xf8, 0x42, 0x23, 0x8a, 0xc8, 0x57, 0x93, 0x61, 0xaf, 0x45, 0xf0, 0xdf, 0x67,
- 0x95, 0x0e, 0x49, 0x04, 0x89, 0xc3, 0xf6, 0x46, 0x41, 0xcd, 0x44, 0x9c, 0x20, 0x33, 0x19, 0x42,
- 0xdb, 0x80, 0xd1, 0x9a, 0x47, 0x7d, 0x1a, 0xa8, 0x6f, 0x5c, 0x5d, 0x84, 0x98, 0xa2, 0x44, 0xbc,
- 0x40, 0xd9, 0x87, 0xdc, 0x7c, 0x7f, 0x54, 0xf5, 0x6e, 0xc2, 0x27, 0x2b, 0x06, 0x36, 0x15, 0x14,
- 0xe3, 0x5b, 0x19, 0x98, 0x4f, 0x6b, 0x16, 0x79, 0x0e, 0xf2, 0x9d, 0xd4, 0x80, 0xdd, 0x1d, 0x6e,
- 0x44, 0x3c, 0x81, 0x59, 0xc0, 0x76, 0x5d, 0xaf, 0x6d, 0x07, 0xea, 0xc3, 0x9e, 0x02, 0x36, 0x81,
- 0xfd, 0xb8, 0x89, 0x7f, 0x93, 0x25, 0xb9, 0xd9, 0xe6, 0x12, 0x21, 0xbe, 0xf1, 0x3f, 0xa3, 0x04,
- 0x50, 0x6d, 0xd6, 0x36, 0xbb, 0x3c, 0xe6, 0xd8, 0x75, 0xc8, 0xb3, 0x66, 0xc5, 0x26, 0x23, 0x9b,
- 0x0e, 0xa5, 0xbb, 0xeb, 0x02, 0x89, 0xb7, 0x8a, 0xdd, 0x9d, 0x4c, 0x44, 0x36, 0xb6, 0x61, 0x5a,
- 0xc7, 0x20, 0xab, 0x7a, 0x94, 0x8a, 0x28, 0x41, 0xf9, 0x8a, 0xeb, 0x72, 0xe3, 0x92, 0x95, 0xb3,
- 0xdf, 0x3d, 0x5a, 0x02, 0xf6, 0x93, 0xd3, 0xa4, 0x45, 0xb1, 0x30, 0x7e, 0x22, 0x0b, 0xf3, 0x91,
- 0x75, 0xb8, 0x5c, 0x12, 0x4f, 0xad, 0xc5, 0x64, 0x49, 0xb3, 0xe8, 0x5b, 0x4a, 0xe4, 0x00, 0x96,
- 0x1f, 0x38, 0xc0, 0x90, 0xe8, 0x16, 0x2c, 0xf4, 0xc3, 0x27, 0xaf, 0x26, 0xb2, 0x74, 0x0a, 0x2f,
- 0xc6, 0x30, 0x9d, 0xa7, 0x92, 0xb4, 0xf3, 0x9f, 0x66, 0x60, 0x51, 0x98, 0x44, 0xdc, 0xb5, 0x9d,
- 0x0e, 0x66, 0x26, 0x6f, 0xd0, 0x27, 0x63, 0x6a, 0x7b, 0x4b, 0xdb, 0x96, 0x5e, 0xd2, 0x2d, 0x5f,
- 0x12, 0xb5, 0xf5, 0xff, 0x5a, 0x72, 0x19, 0xfd, 0x55, 0x1b, 0x7c, 0xf2, 0xe6, 0xb9, 0x6b, 0x43,
- 0x87, 0x01, 0x54, 0xd7, 0x06, 0xc4, 0x30, 0xfe, 0x1c, 0x3c, 0x3f, 0xb8, 0x02, 0xf2, 0x15, 0x98,
- 0x2a, 0xed, 0xd1, 0x4e, 0x70, 0xaf, 0xbb, 0xe7, 0xd9, 0x4d, 0x2a, 0x15, 0x45, 0xf2, 0xfd, 0x46,
- 0x2d, 0xe3, 0x3e, 0xba, 0xc2, 0xd4, 0x9e, 0xc1, 0xad, 0x9e, 0x20, 0xd2, 0xec, 0x8e, 0x54, 0x6e,
- 0xc6, 0x37, 0x33, 0x40, 0x92, 0x3c, 0xc8, 0x0d, 0x98, 0xbc, 0xb7, 0x55, 0xae, 0x07, 0xb6, 0x17,
- 0xac, 0xb9, 0x3d, 0x4f, 0xf8, 0xbe, 0x72, 0xcb, 0xeb, 0xa0, 0xc1, 0x76, 0x06, 0x2f, 0xb0, 0xf6,
- 0xdd, 0x9e, 0x67, 0x6a, 0x78, 0x18, 0x48, 0x96, 0xd2, 0x83, 0xa6, 0x7d, 0xa8, 0x07, 0x92, 0x15,
- 0x30, 0x2d, 0x90, 0xac, 0x80, 0x19, 0x7f, 0x2b, 0x03, 0xcf, 0xca, 0xb7, 0x94, 0x66, 0x4a, 0x5b,
- 0xca, 0xe8, 0x5f, 0xe4, 0xc9, 0xd8, 0x1f, 0x83, 0x64, 0xd3, 0x59, 0xe9, 0x82, 0x87, 0x0d, 0x44,
- 0x21, 0x95, 0xd3, 0x92, 0xf7, 0x21, 0x5f, 0x0f, 0xdc, 0xee, 0x10, 0x3e, 0x78, 0xc5, 0x70, 0x44,
- 0x03, 0xb7, 0x8b, 0x2c, 0x90, 0xd2, 0xa0, 0x30, 0xaf, 0x36, 0x4e, 0xb6, 0x98, 0xdc, 0x85, 0x31,
- 0xe1, 0x1c, 0x1d, 0xd3, 0x3b, 0x0d, 0xf8, 0xa6, 0x95, 0x19, 0xe9, 0xe8, 0x27, 0x62, 0x4f, 0x98,
- 0x92, 0x87, 0xf1, 0xe3, 0x19, 0x98, 0x60, 0xc2, 0x03, 0x5e, 0xb9, 0x3e, 0xe9, 0x94, 0xd6, 0xe5,
- 0x40, 0xa9, 0xb6, 0x0c, 0xd9, 0x0f, 0x75, 0xb8, 0xbe, 0x01, 0x33, 0x31, 0x02, 0x62, 0xa0, 0x8b,
- 0x47, 0xcb, 0xe1, 0x09, 0xee, 0xa5, 0xce, 0x4f, 0x83, 0x19, 0xff, 0x4e, 0x06, 0xe6, 0x37, 0x0f,
- 0x02, 0xbb, 0x8a, 0x57, 0x48, 0xb3, 0xd7, 0x92, 0xeb, 0x9d, 0x09, 0x44, 0xf2, 0x51, 0x8e, 0xdb,
- 0x9f, 0x73, 0x81, 0x48, 0xc0, 0xcc, 0xb0, 0x94, 0xac, 0x41, 0x41, 0x9c, 0x2f, 0xbe, 0x08, 0x19,
- 0x21, 0xdf, 0x94, 0x75, 0xc6, 0x02, 0x89, 0x7d, 0x09, 0x6e, 0x61, 0x82, 0xc6, 0x0c, 0xa9, 0x8d,
- 0x3f, 0xca, 0xc0, 0x99, 0x3e, 0x34, 0xe4, 0x1d, 0x18, 0x41, 0x63, 0x3e, 0x31, 0x7a, 0xcf, 0xf5,
- 0xa9, 0x22, 0x68, 0xec, 0xdf, 0xbf, 0xc6, 0x0f, 0xa2, 0x36, 0xfb, 0x61, 0x72, 0x2a, 0xf2, 0x21,
- 0x8c, 0x97, 0x9a, 0x4d, 0x71, 0x2f, 0xc9, 0x6a, 0xf7, 0x92, 0x3e, 0x35, 0x5e, 0x09, 0xf1, 0xf9,
- 0xbd, 0x84, 0x9b, 0x95, 0x34, 0x9b, 0x96, 0x30, 0x54, 0x8c, 0xf8, 0x2d, 0xbe, 0x0d, 0xd3, 0x3a,
- 0xf2, 0x89, 0xee, 0x25, 0xdf, 0xc9, 0x40, 0x51, 0x6f, 0xc3, 0xa7, 0xe3, 0xa2, 0x98, 0x36, 0xcc,
- 0xc7, 0x4c, 0xaa, 0x9f, 0xca, 0xc2, 0xa9, 0xd4, 0x1e, 0x26, 0xaf, 0xc3, 0x68, 0xa9, 0xdb, 0xad,
- 0x56, 0xc4, 0xac, 0x12, 0x02, 0x0f, 0x6a, 0x5a, 0xb5, 0x6b, 0x1b, 0x47, 0x22, 0xd7, 0xa1, 0x80,
- 0x33, 0x93, 0x11, 0x64, 0xa3, 0xe0, 0x0d, 0xfc, 0x69, 0x23, 0x16, 0xbc, 0x41, 0x22, 0x92, 0x9b,
- 0x30, 0x2d, 0xbc, 0x95, 0x4c, 0xba, 0x47, 0x1f, 0x85, 0x51, 0xc4, 0x30, 0xd0, 0x99, 0xf4, 0x6d,
- 0xb2, 0x3c, 0x5e, 0xa6, 0xfa, 0xeb, 0xe8, 0x54, 0x98, 0x35, 0x96, 0xf1, 0x54, 0x39, 0xf1, 0x08,
- 0x12, 0x3c, 0x6b, 0x2c, 0x36, 0xa2, 0x0f, 0xaf, 0x04, 0x65, 0x38, 0x5c, 0x25, 0xdf, 0x77, 0xf6,
- 0x3a, 0x6d, 0xda, 0x09, 0x3e, 0xbd, 0xe1, 0x8a, 0xea, 0x18, 0x6a, 0xb8, 0xbe, 0x9d, 0xe7, 0x8b,
- 0x39, 0x4e, 0x76, 0x4c, 0x62, 0xf4, 0x0a, 0x8c, 0x71, 0x3f, 0x29, 0xb9, 0x32, 0xce, 0xa5, 0x36,
- 0x81, 0xe3, 0xdc, 0xbf, 0xc6, 0xc5, 0x17, 0x6e, 0x55, 0xe8, 0x9b, 0x92, 0x94, 0xdc, 0x87, 0x89,
- 0x72, 0x8b, 0xda, 0x9d, 0x5e, 0x77, 0x6b, 0x38, 0x05, 0xe3, 0x82, 0xf8, 0x96, 0xc9, 0x06, 0x27,
- 0x43, 0xc5, 0x24, 0xee, 0xe4, 0x2a, 0x23, 0xb2, 0x15, 0x1a, 0x1a, 0xe5, 0x51, 0x1f, 0xfa, 0x99,
- 0x01, 0xfd, 0x13, 0x07, 0x22, 0x9d, 0x6e, 0x45, 0x27, 0x2c, 0x91, 0x2c, 0x98, 0x5e, 0xb7, 0xfd,
- 0x60, 0xcb, 0xb3, 0x3b, 0x3e, 0x86, 0x3a, 0x18, 0xc2, 0xff, 0x54, 0x26, 0x67, 0x9b, 0x41, 0x6d,
- 0x64, 0x10, 0x92, 0x62, 0x9b, 0x63, 0xec, 0x98, 0xbc, 0x74, 0xd3, 0xe9, 0xd8, 0x2d, 0xe7, 0x1b,
- 0xd2, 0x1e, 0x93, 0xcb, 0x4b, 0xbb, 0x12, 0x68, 0x46, 0xe5, 0xc6, 0x97, 0x13, 0xe3, 0xc6, 0x5b,
- 0x39, 0x01, 0x63, 0xc2, 0x04, 0x9f, 0x9b, 0xa4, 0xd7, 0x56, 0x37, 0x2a, 0xd5, 0x8d, 0x5b, 0xc5,
- 0x0c, 0x99, 0x06, 0xa8, 0x99, 0x9b, 0xe5, 0xd5, 0x7a, 0x9d, 0xfd, 0xce, 0xb2, 0xdf, 0xc2, 0x5e,
- 0xfd, 0xe6, 0xbd, 0xf5, 0x62, 0x4e, 0x31, 0x59, 0xcf, 0x1b, 0xff, 0x24, 0x03, 0xa7, 0xd3, 0x87,
- 0x92, 0x6c, 0x01, 0x3a, 0x2d, 0x08, 0x55, 0xf3, 0x8d, 0x81, 0xe3, 0x9e, 0x0a, 0x8e, 0x3b, 0x3f,
- 0x04, 0xdc, 0xa8, 0x3e, 0x2b, 0x5f, 0x8e, 0xa2, 0xb4, 0x62, 0x4e, 0xd3, 0x28, 0xc3, 0x42, 0x3f,
- 0x1e, 0xfa, 0xa7, 0xce, 0xc0, 0x44, 0xa9, 0x56, 0x5b, 0xaf, 0x96, 0x4b, 0x5b, 0xd5, 0xcd, 0x8d,
- 0x62, 0x86, 0x8c, 0xc3, 0xc8, 0x2d, 0x73, 0xf3, 0x5e, 0xad, 0x98, 0x35, 0xfe, 0x4a, 0x06, 0xa6,
- 0xaa, 0x9d, 0x80, 0xee, 0xf1, 0x18, 0xe6, 0x9f, 0x74, 0xf1, 0x7d, 0x41, 0x5b, 0x7c, 0x0b, 0xa1,
- 0x7b, 0x4f, 0x58, 0xc1, 0x50, 0x2b, 0xef, 0x9f, 0x65, 0x60, 0x36, 0x41, 0x43, 0xea, 0x30, 0x56,
- 0xda, 0xae, 0x6f, 0x56, 0x2b, 0x65, 0xd1, 0x32, 0x29, 0x95, 0x0b, 0x68, 0xb2, 0x16, 0x6e, 0x3d,
- 0xfb, 0xd0, 0xb7, 0x5c, 0xa7, 0xa9, 0xe4, 0x45, 0x58, 0x7b, 0xc6, 0x94, 0x9c, 0xf0, 0x24, 0xfb,
- 0x46, 0xcf, 0xfb, 0x7f, 0xa9, 0xbb, 0x9e, 0xde, 0x36, 0x8e, 0x2b, 0xae, 0x25, 0x25, 0x45, 0x7a,
- 0x94, 0xac, 0xd5, 0xd8, 0x91, 0x55, 0xd9, 0x96, 0x5d, 0xc2, 0x35, 0xea, 0x6d, 0xe3, 0x34, 0x71,
- 0x83, 0xc4, 0x29, 0x52, 0x63, 0x45, 0x0e, 0xc5, 0xb5, 0x96, 0xbb, 0xf4, 0xee, 0xd2, 0x8a, 0xdd,
- 0x3f, 0x0b, 0x5a, 0x5a, 0xdb, 0x6c, 0xe9, 0x25, 0x43, 0x52, 0x71, 0xdd, 0x5b, 0x2f, 0xb9, 0x14,
- 0x01, 0x8a, 0x5e, 0x7b, 0xe8, 0x25, 0x97, 0x7e, 0x86, 0x7e, 0x81, 0x00, 0x45, 0x81, 0xdc, 0x0b,
- 0x04, 0xad, 0x81, 0x5e, 0x7a, 0xef, 0x25, 0xa7, 0x62, 0xde, 0xcc, 0xec, 0xce, 0xee, 0x92, 0x8a,
- 0xe4, 0x18, 0x2d, 0x7a, 0x13, 0xdf, 0xbc, 0x19, 0xcd, 0xce, 0x9f, 0x37, 0xef, 0xcd, 0xbc, 0xf7,
- 0x7b, 0x11, 0x36, 0x5b, 0xca, 0xdc, 0x68, 0x26, 0xf4, 0x62, 0xc3, 0x3c, 0x65, 0x3a, 0x2b, 0x2f,
- 0x36, 0x9d, 0xb6, 0xb7, 0xb3, 0x0a, 0x15, 0x61, 0xb5, 0xa0, 0x41, 0xf0, 0xa9, 0x06, 0x9b, 0xb3,
- 0xfa, 0xca, 0x0c, 0xa1, 0xac, 0x2b, 0xfd, 0x46, 0x02, 0x92, 0x97, 0xf5, 0xa1, 0x97, 0x6c, 0xe4,
- 0x36, 0x54, 0x78, 0xae, 0x46, 0xff, 0x66, 0xc7, 0xb3, 0xc4, 0x02, 0xb9, 0xf4, 0xaf, 0x2f, 0x2f,
- 0x9f, 0x17, 0x69, 0xe5, 0xc7, 0x37, 0xb3, 0x39, 0xc6, 0x37, 0x35, 0x4f, 0xad, 0x51, 0xfd, 0x44,
- 0x83, 0xad, 0xd9, 0x1f, 0xc9, 0x4e, 0x99, 0x80, 0xe9, 0xe6, 0xa9, 0x37, 0x32, 0x9e, 0x32, 0xa8,
- 0xaf, 0xe7, 0xdc, 0x91, 0x13, 0x46, 0x56, 0x29, 0x97, 0xbb, 0x5e, 0x4d, 0x34, 0x92, 0xad, 0x24,
- 0x19, 0xab, 0x7f, 0x28, 0xc1, 0x06, 0x5b, 0x40, 0xfd, 0x68, 0x3c, 0x36, 0x8f, 0x26, 0x4f, 0xa2,
- 0x78, 0x22, 0x54, 0x2a, 0xf2, 0x2e, 0x2c, 0x3e, 0x39, 0xdd, 0x6d, 0x20, 0x67, 0x27, 0x04, 0x50,
- 0x28, 0x4b, 0x77, 0x11, 0xf6, 0x37, 0xb9, 0x04, 0x4a, 0x62, 0x17, 0x94, 0xa9, 0x2b, 0xde, 0xf2,
- 0x30, 0x49, 0xef, 0xf2, 0x1e, 0x2c, 0xa0, 0xf5, 0x2f, 0x44, 0xa3, 0x54, 0x69, 0xa7, 0xf7, 0x0c,
- 0xef, 0x06, 0x3c, 0x5e, 0x81, 0xbc, 0x09, 0x90, 0x82, 0xb1, 0x09, 0xd9, 0x27, 0xcd, 0xe8, 0x04,
- 0x8f, 0xcd, 0x5b, 0x7e, 0xfa, 0xa8, 0x2b, 0x10, 0xce, 0x0c, 0x58, 0x97, 0x43, 0x32, 0x94, 0xe1,
- 0xe6, 0xe2, 0x1d, 0x66, 0x8d, 0x17, 0x58, 0x43, 0x11, 0x72, 0x5e, 0xfd, 0x67, 0x09, 0x96, 0xf7,
- 0x99, 0xa2, 0x80, 0xe6, 0xef, 0xf1, 0xe6, 0xf4, 0xdb, 0x50, 0xb1, 0x07, 0x5d, 0x71, 0x77, 0x3f,
- 0x16, 0x88, 0x17, 0xe8, 0x92, 0xdb, 0x1f, 0x74, 0xe5, 0x33, 0xc0, 0xd8, 0x53, 0x99, 0xbe, 0xc6,
- 0x9d, 0xf8, 0x0e, 0x2c, 0x72, 0xbf, 0x07, 0x71, 0x51, 0x23, 0x55, 0xc5, 0xa4, 0x47, 0x37, 0x78,
- 0xb1, 0x72, 0xdd, 0xcc, 0x3d, 0x27, 0x54, 0xbd, 0x45, 0x00, 0x5e, 0x28, 0xc6, 0xfe, 0xc2, 0xc9,
- 0x8c, 0x7d, 0x25, 0xb0, 0x77, 0xf1, 0x24, 0x81, 0xbd, 0x5b, 0xb7, 0xa0, 0xa2, 0xf4, 0xe7, 0x54,
- 0x9a, 0xe3, 0x6f, 0x4a, 0xb0, 0x8a, 0x5f, 0x95, 0x3c, 0x25, 0xfd, 0x7f, 0x5e, 0x5d, 0xbc, 0x9f,
- 0xb9, 0xba, 0xd8, 0x54, 0xe7, 0x8b, 0x7f, 0xd9, 0x31, 0x77, 0x16, 0x77, 0x60, 0xbd, 0xc0, 0x48,
- 0xde, 0x81, 0x05, 0xd6, 0x7d, 0x69, 0xea, 0xe9, 0xf9, 0x15, 0x90, 0x82, 0xc0, 0xb0, 0x0f, 0x1f,
- 0x7b, 0x9c, 0xbb, 0xfa, 0x6f, 0x0d, 0x56, 0x04, 0x3a, 0x5f, 0xfc, 0x68, 0xf0, 0xb5, 0xc3, 0x79,
- 0x2d, 0x3f, 0x9c, 0x3c, 0x38, 0x46, 0x0c, 0xe7, 0x7f, 0x7b, 0x10, 0x6f, 0x65, 0x06, 0xf1, 0x7c,
- 0x12, 0x12, 0x2e, 0x3f, 0xe7, 0x98, 0x31, 0xfc, 0x33, 0x82, 0xa4, 0x64, 0x19, 0xc9, 0xcf, 0x61,
- 0xd9, 0x89, 0x9e, 0x65, 0x2c, 0xa6, 0x6b, 0x33, 0x1a, 0xbd, 0x91, 0x30, 0xf2, 0x3d, 0x85, 0x87,
- 0x4d, 0x1c, 0x3d, 0x0b, 0x0b, 0xcf, 0x38, 0x69, 0x93, 0xcc, 0x68, 0xca, 0x56, 0x3b, 0xcd, 0xd2,
- 0x17, 0x2e, 0x9a, 0x18, 0xef, 0xf5, 0xa7, 0x32, 0x40, 0xea, 0xdd, 0xc6, 0x36, 0x60, 0x94, 0xc1,
- 0xb0, 0x15, 0x77, 0xc7, 0x48, 0x52, 0xd7, 0xb8, 0x20, 0x91, 0x6b, 0xe2, 0x52, 0xb4, 0x34, 0x3b,
- 0x64, 0x1f, 0xaf, 0x47, 0x6b, 0xc2, 0x7b, 0xec, 0x30, 0xea, 0x77, 0xb9, 0x2c, 0x2e, 0xef, 0x5c,
- 0x45, 0x84, 0x96, 0x84, 0x3a, 0x23, 0xcd, 0x0a, 0xfa, 0x98, 0xd5, 0x19, 0x43, 0xc1, 0x63, 0x74,
- 0xfe, 0xe5, 0x3d, 0x46, 0x17, 0x5e, 0xc2, 0x63, 0x74, 0xf1, 0x84, 0x1e, 0xa3, 0x6d, 0x58, 0xee,
- 0xc5, 0x1f, 0x47, 0xf1, 0x64, 0x30, 0x7a, 0x8e, 0xfe, 0x64, 0xe9, 0x55, 0x16, 0x1b, 0x6a, 0x4b,
- 0x96, 0xf1, 0xf9, 0xc6, 0x03, 0x33, 0xe1, 0x57, 0xa7, 0x3b, 0x21, 0x0a, 0xc7, 0x96, 0xaf, 0x4a,
- 0x40, 0x8a, 0x0d, 0x90, 0xf7, 0xa1, 0xc2, 0x45, 0x70, 0x38, 0x1a, 0x7f, 0x24, 0xdc, 0x0d, 0x79,
- 0x5c, 0x9d, 0x42, 0x56, 0xe3, 0xea, 0x38, 0xd9, 0x1b, 0x7f, 0xd4, 0x27, 0x3f, 0x83, 0xb3, 0x38,
- 0x01, 0xc3, 0x68, 0xd4, 0x1b, 0x1c, 0x86, 0x08, 0x29, 0xd2, 0xed, 0x0b, 0xd0, 0xf4, 0x37, 0x30,
- 0xbb, 0x47, 0xb1, 0x78, 0xc6, 0x44, 0xa1, 0x57, 0x5f, 0x1b, 0x39, 0xdb, 0x9c, 0x91, 0x04, 0xa0,
- 0xab, 0xf5, 0x1f, 0x1d, 0xf5, 0xfb, 0x62, 0xee, 0x0d, 0xcc, 0xa2, 0x9c, 0x2b, 0x9b, 0xd1, 0xf0,
- 0x99, 0xb4, 0xe1, 0xc6, 0x51, 0xbf, 0x4f, 0xde, 0x05, 0x18, 0xc4, 0xe1, 0xd3, 0xde, 0x78, 0xcc,
- 0x1f, 0x14, 0x12, 0x8f, 0xdc, 0x94, 0xaa, 0x0e, 0xe3, 0x20, 0x6e, 0x71, 0x22, 0xf9, 0x21, 0xa0,
- 0x3b, 0x3e, 0xc6, 0xa9, 0xe0, 0x0a, 0x58, 0x10, 0x30, 0x88, 0x92, 0x98, 0x9d, 0xce, 0xc7, 0x91,
- 0xdf, 0xfb, 0xb5, 0xf4, 0x2a, 0x7a, 0x00, 0xeb, 0xc2, 0x21, 0x64, 0xbf, 0x37, 0x79, 0x22, 0xf4,
- 0xdf, 0x6f, 0xa2, 0x3c, 0x2b, 0x0a, 0xf0, 0xdf, 0xe6, 0x01, 0xcc, 0x7d, 0x5f, 0x86, 0x80, 0x5e,
- 0x87, 0x05, 0xa6, 0xd5, 0xcb, 0xdb, 0x01, 0xbc, 0x5b, 0xc5, 0x76, 0xd5, 0xbb, 0x55, 0xe4, 0x60,
- 0xfb, 0xd5, 0x8b, 0x1e, 0xe3, 0x05, 0x55, 0x29, 0xbd, 0x4a, 0x18, 0x71, 0x52, 0x46, 0x8b, 0xe4,
- 0x24, 0x62, 0x03, 0xa4, 0x41, 0x99, 0xc2, 0xce, 0x5c, 0x4f, 0xa3, 0x9b, 0x44, 0x81, 0xc0, 0xb7,
- 0x4b, 0x03, 0x3b, 0xd5, 0xe5, 0x93, 0xb2, 0x91, 0x3d, 0x98, 0x0f, 0xba, 0x89, 0xbf, 0xe9, 0x8c,
- 0x50, 0xd5, 0x2b, 0x02, 0xd4, 0x3e, 0x0d, 0x57, 0x3d, 0x33, 0xe9, 0x66, 0x72, 0x7f, 0x60, 0x23,
- 0x84, 0xc2, 0xa2, 0x48, 0x58, 0x34, 0x03, 0xb7, 0x40, 0xe4, 0x2b, 0x12, 0x30, 0x41, 0x48, 0x54,
- 0xb5, 0x0e, 0x91, 0x9a, 0xe8, 0x6d, 0x28, 0xfb, 0x7e, 0x4b, 0x04, 0x68, 0xac, 0xa6, 0x36, 0x83,
- 0xef, 0xb7, 0x64, 0x52, 0xb6, 0xa7, 0x4a, 0x35, 0xc6, 0x4c, 0x7e, 0x04, 0x15, 0x45, 0x21, 0x16,
- 0xa1, 0x4d, 0x38, 0x06, 0xbd, 0x94, 0xac, 0x8a, 0x15, 0x85, 0x9b, 0xd8, 0xa0, 0xef, 0x1d, 0x3d,
- 0x8c, 0xcc, 0xe1, 0x10, 0x7d, 0x25, 0x3f, 0x8e, 0x46, 0x1c, 0x7b, 0x6f, 0x29, 0x45, 0xd8, 0x09,
- 0xbb, 0xc3, 0x61, 0x78, 0x28, 0x4b, 0xd5, 0x1b, 0x92, 0x7c, 0x4d, 0xd2, 0x86, 0x75, 0x3f, 0x9a,
- 0x1c, 0x0d, 0xb9, 0x3b, 0x44, 0x63, 0x30, 0x62, 0x26, 0x02, 0x0f, 0x84, 0x42, 0x30, 0x92, 0x31,
- 0x2b, 0x94, 0x3e, 0x28, 0x8f, 0x06, 0xa3, 0x9c, 0xb9, 0x50, 0xac, 0x5c, 0x8d, 0xd4, 0x29, 0x67,
- 0xe7, 0x6e, 0xd6, 0xf0, 0xc0, 0x73, 0x57, 0x1a, 0x1e, 0xa9, 0xb9, 0xf1, 0xe6, 0x94, 0x60, 0x5d,
- 0x7c, 0xce, 0x52, 0x82, 0x75, 0x33, 0x21, 0xba, 0x9f, 0xcd, 0x2b, 0x20, 0x10, 0x62, 0x2e, 0x3e,
- 0x00, 0xb8, 0x33, 0xe8, 0xc5, 0xad, 0x68, 0xf2, 0x64, 0x70, 0xa8, 0xc4, 0x0c, 0x57, 0x7e, 0x31,
- 0xe8, 0xc5, 0xe1, 0x53, 0x24, 0x7f, 0xf5, 0xe5, 0x65, 0x85, 0xc9, 0x53, 0xfe, 0x26, 0xdf, 0x87,
- 0x65, 0xf6, 0x2b, 0x48, 0x9d, 0x3a, 0xf8, 0x45, 0x22, 0xd6, 0x16, 0xc9, 0x1d, 0x13, 0x06, 0x72,
- 0x0b, 0x01, 0x32, 0x7b, 0xc3, 0x89, 0xa2, 0xde, 0x4a, 0x34, 0xcc, 0xde, 0x70, 0x92, 0x07, 0xd4,
- 0x51, 0x98, 0x49, 0x33, 0xe9, 0xba, 0x84, 0x58, 0x15, 0x38, 0x9c, 0x78, 0x5b, 0x26, 0xd6, 0x5a,
- 0x28, 0x01, 0x59, 0xd5, 0x64, 0x18, 0xb9, 0x6a, 0xd8, 0x09, 0xbf, 0x59, 0xe7, 0xcf, 0x1b, 0xe2,
- 0x94, 0xe1, 0x9d, 0x18, 0x3f, 0x39, 0x0c, 0x0f, 0x90, 0x9c, 0xe9, 0x44, 0xc2, 0x4c, 0x76, 0x60,
- 0x8d, 0x47, 0xb6, 0x25, 0x50, 0xed, 0xe2, 0xc4, 0x41, 0xd9, 0x96, 0x62, 0xb9, 0xab, 0xff, 0x3e,
- 0x57, 0x81, 0x34, 0x60, 0x01, 0x4d, 0x3c, 0x11, 0x5e, 0x74, 0x41, 0xb5, 0x6d, 0xf3, 0xfb, 0x08,
- 0xe5, 0x0a, 0x5a, 0xb5, 0xaa, 0x5c, 0x41, 0x56, 0xf2, 0x21, 0x00, 0x8d, 0x47, 0x83, 0x7e, 0x1f,
- 0xb1, 0x66, 0x96, 0xd0, 0x40, 0xba, 0x94, 0xdd, 0x8f, 0xd8, 0x4a, 0xca, 0x24, 0x33, 0xfc, 0xb3,
- 0xdf, 0x61, 0x0e, 0x91, 0x46, 0x69, 0xab, 0x6a, 0xc1, 0x22, 0xdf, 0x8c, 0x88, 0xdb, 0x24, 0x40,
- 0x21, 0x15, 0xd4, 0x1f, 0x8e, 0xdb, 0x24, 0xe8, 0x45, 0xdc, 0x26, 0xa5, 0x42, 0x75, 0x0f, 0xce,
- 0x4d, 0xfb, 0xb0, 0x8c, 0x51, 0xaa, 0x9d, 0xd4, 0x28, 0xfd, 0x63, 0x19, 0x56, 0xb0, 0x35, 0x29,
- 0x85, 0x4d, 0x58, 0xf5, 0x8f, 0x1e, 0x26, 0x61, 0x98, 0x52, 0x1a, 0x63, 0xff, 0xc6, 0x6a, 0x81,
- 0xfa, 0xf0, 0x94, 0xa9, 0x41, 0x28, 0x9c, 0x91, 0x27, 0xc1, 0xae, 0xf4, 0x39, 0x4b, 0x20, 0x93,
- 0x24, 0x40, 0x40, 0x31, 0x55, 0x45, 0xae, 0x52, 0x7a, 0x1e, 0x94, 0x4f, 0x73, 0x1e, 0xcc, 0x9f,
- 0xe8, 0x3c, 0xf8, 0x09, 0xac, 0xc8, 0xff, 0x86, 0x92, 0x7c, 0xe1, 0x9b, 0x49, 0xf2, 0x4c, 0x63,
- 0xc4, 0x4e, 0x24, 0xfa, 0xe2, 0xb1, 0x12, 0x1d, 0x5f, 0xf3, 0xe4, 0x2e, 0x2b, 0x64, 0x9f, 0x13,
- 0x6d, 0x20, 0x96, 0xfb, 0x6e, 0xad, 0xfd, 0x12, 0xa7, 0xe4, 0x3b, 0xb0, 0x6c, 0x0f, 0xe4, 0x43,
- 0x8e, 0x72, 0x83, 0xde, 0x97, 0x44, 0x55, 0x5d, 0x48, 0x38, 0x93, 0xd3, 0xad, 0xfc, 0x2a, 0x4e,
- 0xb7, 0x5b, 0x00, 0xc2, 0x99, 0x31, 0xc5, 0x60, 0xc6, 0x2d, 0x23, 0xa3, 0x70, 0xb2, 0x17, 0xf9,
- 0x0a, 0x33, 0x93, 0x4e, 0xc2, 0xe5, 0xc3, 0x3c, 0x38, 0x18, 0x1c, 0xc5, 0x93, 0x4c, 0xd2, 0x12,
- 0x11, 0x70, 0xc7, 0x8e, 0x04, 0x2c, 0x53, 0xc5, 0x43, 0xae, 0xda, 0xab, 0x9d, 0x10, 0x72, 0x37,
- 0xf1, 0x55, 0x3b, 0x36, 0x87, 0x63, 0xb5, 0x30, 0x42, 0x33, 0x3d, 0xd4, 0xaa, 0x7f, 0xd1, 0x54,
- 0xbc, 0xba, 0x97, 0x98, 0xea, 0xf7, 0x00, 0x92, 0x97, 0x74, 0x39, 0xd7, 0xdc, 0xa2, 0x4a, 0xa8,
- 0xea, 0x28, 0xa7, 0xbc, 0xca, 0xd7, 0x94, 0x5f, 0xd5, 0xd7, 0x04, 0x50, 0x71, 0x7f, 0x39, 0xe9,
- 0xa6, 0xae, 0x17, 0xe0, 0x27, 0x9a, 0x2c, 0x4a, 0x26, 0x99, 0x6b, 0x32, 0xd5, 0x83, 0x67, 0xe6,
- 0x9a, 0x4c, 0x2a, 0x56, 0xef, 0xc2, 0x9a, 0x1a, 0x2a, 0xf0, 0x3c, 0x3e, 0x20, 0x3f, 0xe6, 0x78,
- 0x1f, 0x5a, 0xc6, 0xd6, 0x50, 0x98, 0x98, 0xc4, 0x7d, 0x1e, 0x1f, 0x70, 0xfd, 0xa7, 0xfb, 0x4c,
- 0xed, 0x2b, 0x5a, 0x81, 0x5f, 0x68, 0x40, 0x8a, 0xec, 0xaa, 0x34, 0xd1, 0xfe, 0x07, 0xda, 0x65,
- 0x4e, 0x2b, 0x9b, 0x3f, 0x8d, 0x56, 0x66, 0xfc, 0x4e, 0x83, 0x35, 0xcb, 0x6c, 0x09, 0x70, 0x39,
- 0xfe, 0x22, 0xf0, 0x6d, 0xb8, 0x64, 0x99, 0xad, 0xb0, 0xed, 0xda, 0x56, 0xed, 0x7e, 0x38, 0x15,
- 0xba, 0xe6, 0x12, 0x7c, 0xab, 0xc8, 0x92, 0xbe, 0x1c, 0x5c, 0x84, 0xcd, 0x62, 0xb1, 0x84, 0xb7,
- 0x99, 0x5e, 0x59, 0x22, 0xe1, 0x94, 0x8d, 0xdb, 0xb0, 0x26, 0x51, 0x5f, 0x02, 0xdb, 0x47, 0x94,
- 0xb6, 0x35, 0xa8, 0xdc, 0xa3, 0x9e, 0xd5, 0xb8, 0x1f, 0x36, 0x3a, 0xb6, 0xad, 0xcf, 0x91, 0x55,
- 0x58, 0x16, 0x84, 0x9a, 0xa9, 0x6b, 0x64, 0x05, 0x96, 0x2c, 0xc7, 0xa7, 0xb5, 0x8e, 0x47, 0xf5,
- 0x92, 0x71, 0x1b, 0xce, 0xa4, 0x09, 0xf9, 0xf1, 0xe2, 0xff, 0x35, 0x28, 0x7b, 0xe6, 0xbe, 0x3e,
- 0x47, 0x00, 0x16, 0xdb, 0x7b, 0x35, 0xff, 0xad, 0xb7, 0x74, 0x8d, 0x54, 0xe0, 0xb5, 0xdd, 0x5a,
- 0x3b, 0xdc, 0x6b, 0xf9, 0x7a, 0x89, 0xfd, 0x30, 0xf7, 0x7d, 0xfc, 0x51, 0x36, 0x7e, 0x00, 0xeb,
- 0xa8, 0x2b, 0xd8, 0xbd, 0xf1, 0x24, 0x8a, 0xa3, 0x11, 0xf6, 0x61, 0x05, 0x96, 0xfc, 0x88, 0x6d,
- 0xf2, 0x49, 0xc4, 0x3b, 0xd0, 0x3a, 0xea, 0x4f, 0x7a, 0xc3, 0x7e, 0xf4, 0x2b, 0x5d, 0x33, 0x6e,
- 0xc1, 0x9a, 0x37, 0x38, 0x9a, 0xf4, 0xe2, 0xc7, 0xfe, 0x84, 0x71, 0x3c, 0x7e, 0x4e, 0x5e, 0x87,
- 0xf5, 0x8e, 0x63, 0xb6, 0x76, 0xac, 0xdd, 0x8e, 0xdb, 0xf1, 0xc3, 0x96, 0x19, 0xd4, 0x9a, 0xfc,
- 0xd9, 0xa1, 0xe5, 0xfa, 0x41, 0xe8, 0xd1, 0x1a, 0x75, 0x02, 0x5d, 0x33, 0x7e, 0xab, 0xc1, 0x99,
- 0xce, 0x58, 0xb8, 0xca, 0x76, 0xd0, 0x95, 0xfe, 0x0a, 0x5c, 0xec, 0xf8, 0xd4, 0x0b, 0x03, 0x77,
- 0x8f, 0x3a, 0x61, 0xc7, 0x37, 0x77, 0xf3, 0xb8, 0x49, 0x97, 0xe1, 0x82, 0xc2, 0xe1, 0xd1, 0x9a,
- 0x7b, 0x8f, 0x7a, 0x61, 0xdb, 0xf4, 0xfd, 0x7d, 0xd7, 0xab, 0xeb, 0x1a, 0xd9, 0x82, 0x8d, 0x29,
- 0x0c, 0xad, 0x86, 0xa9, 0x97, 0x0a, 0x65, 0x0e, 0xdd, 0x37, 0xed, 0x70, 0xc7, 0x0d, 0xf4, 0xb2,
- 0xd1, 0x62, 0x07, 0x1d, 0x42, 0x8b, 0x70, 0x44, 0xd6, 0x25, 0x98, 0x77, 0x5c, 0x87, 0xe6, 0x9f,
- 0x86, 0x56, 0x60, 0xc9, 0x6c, 0xb7, 0x3d, 0xf7, 0x1e, 0x4e, 0x28, 0xc0, 0x62, 0x9d, 0x3a, 0xac,
- 0x67, 0x65, 0x56, 0xd2, 0xf6, 0xdc, 0x96, 0x1b, 0xd0, 0xba, 0x3e, 0x6f, 0x78, 0x72, 0xc3, 0xc8,
- 0x46, 0x0f, 0x06, 0xfc, 0x1d, 0xa6, 0x4e, 0x1b, 0x66, 0xc7, 0x0e, 0xc4, 0x80, 0xdc, 0x0f, 0x3d,
- 0x7a, 0xb7, 0x43, 0xfd, 0xc0, 0xd7, 0x35, 0xa2, 0xc3, 0x8a, 0x43, 0x69, 0xdd, 0x0f, 0x3d, 0x7a,
- 0xcf, 0xa2, 0xfb, 0x7a, 0x89, 0xb5, 0xc9, 0xff, 0x66, 0xff, 0xc1, 0xf8, 0x4c, 0x03, 0xc2, 0x61,
- 0x59, 0x24, 0x72, 0x26, 0xce, 0xcf, 0x36, 0x6c, 0x35, 0xd9, 0xc0, 0xe2, 0xa7, 0xb5, 0xdc, 0x7a,
- 0x7e, 0xc8, 0x36, 0x80, 0xe4, 0xca, 0xdd, 0x46, 0x43, 0xd7, 0xc8, 0x05, 0x38, 0x9b, 0xa3, 0xd7,
- 0x3d, 0xb7, 0xad, 0x97, 0xb6, 0x4a, 0x4b, 0x1a, 0x39, 0x5f, 0x28, 0xdc, 0xa3, 0xb4, 0xad, 0x97,
- 0xd9, 0x14, 0xe5, 0x0a, 0xe4, 0x02, 0xe4, 0xd5, 0xe7, 0x8d, 0x4f, 0x34, 0xd8, 0xe0, 0xdd, 0x94,
- 0xab, 0x39, 0xe9, 0xea, 0x45, 0xd8, 0x14, 0x08, 0x52, 0xd3, 0x3a, 0x7a, 0x0e, 0xf4, 0x4c, 0x29,
- 0xef, 0xe6, 0xeb, 0xb0, 0x9e, 0xa1, 0x62, 0x3f, 0x4a, 0x6c, 0xaf, 0x66, 0xc8, 0x3b, 0xd4, 0x0f,
- 0x42, 0xda, 0x68, 0xb8, 0x5e, 0xc0, 0x3b, 0x52, 0x36, 0xaa, 0xb0, 0x5e, 0x8b, 0x46, 0x13, 0x66,
- 0x83, 0xc4, 0xe3, 0xde, 0x20, 0xc6, 0x2e, 0xac, 0xc2, 0x32, 0xfd, 0x30, 0xa0, 0x8e, 0x6f, 0xb9,
- 0x8e, 0x3e, 0x67, 0x5c, 0xcc, 0xf1, 0xc8, 0x5d, 0xe3, 0xfb, 0x4d, 0x7d, 0xce, 0xe8, 0xc2, 0xaa,
- 0x74, 0x4d, 0xe5, 0xab, 0x62, 0x1b, 0xb6, 0xe4, 0x5a, 0xc3, 0xfd, 0x9b, 0xff, 0x84, 0x4d, 0x38,
- 0x57, 0x2c, 0xa7, 0x81, 0xae, 0xb1, 0x59, 0xc8, 0x95, 0x30, 0x7a, 0xc9, 0xf8, 0x29, 0xac, 0x64,
- 0x20, 0xa6, 0xcf, 0xc3, 0x59, 0xf5, 0x77, 0x3b, 0x8a, 0x0f, 0x7b, 0xf1, 0x63, 0x7d, 0x2e, 0x5f,
- 0xe0, 0x1d, 0xc5, 0x31, 0x2b, 0xc0, 0x15, 0xaf, 0x16, 0x04, 0xd1, 0xe8, 0x69, 0x2f, 0xee, 0x4e,
- 0xa2, 0x43, 0xbd, 0x64, 0xdc, 0x80, 0xd5, 0x0c, 0x14, 0x0f, 0xfb, 0x34, 0xdb, 0x15, 0x02, 0xa1,
- 0x45, 0xeb, 0x56, 0xa7, 0xa5, 0x2f, 0xb0, 0xb5, 0xde, 0xb4, 0x76, 0x9b, 0x3a, 0x18, 0xbf, 0xd7,
- 0x98, 0x4a, 0x8a, 0x70, 0x95, 0xad, 0x86, 0x29, 0x07, 0x83, 0x4d, 0x04, 0x47, 0xed, 0xa2, 0xbe,
- 0xcf, 0xdf, 0x0c, 0x2f, 0xc2, 0xa6, 0xf8, 0x11, 0x9a, 0x4e, 0x3d, 0x6c, 0x9a, 0x5e, 0x7d, 0xdf,
- 0xf4, 0xd8, 0xec, 0xdc, 0xd7, 0x4b, 0xb8, 0xe4, 0x14, 0x4a, 0x18, 0xb8, 0x9d, 0x5a, 0x53, 0x2f,
- 0xb3, 0x19, 0xce, 0xd0, 0xdb, 0x96, 0xa3, 0xcf, 0xe3, 0x02, 0x2e, 0x70, 0x63, 0xb3, 0xac, 0x7c,
- 0xc1, 0xe8, 0x81, 0x9e, 0x8f, 0xcf, 0x29, 0x3c, 0xde, 0x7a, 0x1d, 0xc7, 0xe1, 0x3b, 0x74, 0x0d,
- 0x2a, 0x6e, 0xd0, 0xa4, 0x9e, 0xc0, 0x55, 0x43, 0x20, 0xb5, 0x8e, 0x63, 0x76, 0x82, 0xa6, 0xeb,
- 0x59, 0x0f, 0x70, 0xab, 0x6e, 0xc2, 0x39, 0xdf, 0x36, 0x6b, 0x7b, 0xa1, 0xe3, 0x06, 0xa1, 0xe5,
- 0x84, 0xb5, 0xa6, 0xe9, 0x38, 0xd4, 0xd6, 0xc1, 0xf8, 0xab, 0x06, 0x17, 0x8e, 0x79, 0xe0, 0x21,
- 0x6f, 0xc0, 0xf5, 0x26, 0x35, 0xeb, 0x36, 0xf5, 0xfd, 0x90, 0x35, 0x49, 0x9d, 0x40, 0xbc, 0xa3,
- 0x4e, 0x5d, 0x0e, 0xd7, 0xe1, 0x3b, 0xc7, 0xb3, 0xa7, 0x82, 0xe5, 0xbb, 0x70, 0xf5, 0x78, 0x56,
- 0x21, 0x68, 0x4a, 0xc4, 0x80, 0x6b, 0xc7, 0x73, 0x26, 0x02, 0xaa, 0x6c, 0x7c, 0xaa, 0xc1, 0xc6,
- 0x74, 0x7b, 0x8c, 0xf5, 0xcd, 0x72, 0xfc, 0xc0, 0xb4, 0xed, 0xb0, 0x6d, 0x7a, 0x66, 0x2b, 0xa4,
- 0x8e, 0xe7, 0xda, 0xf6, 0xb4, 0x8d, 0x79, 0x15, 0xae, 0xcc, 0x66, 0xf5, 0x6b, 0x9e, 0xd5, 0x66,
- 0x2b, 0xbc, 0x0a, 0xdb, 0xb3, 0xb9, 0xa8, 0x55, 0xa3, 0x7a, 0x69, 0xe7, 0x83, 0xcf, 0xff, 0xb1,
- 0x3d, 0xf7, 0xf9, 0x8b, 0x6d, 0xed, 0x8b, 0x17, 0xdb, 0xda, 0xdf, 0x5f, 0x6c, 0x6b, 0x0f, 0xbe,
- 0x77, 0x8a, 0x54, 0x86, 0x0f, 0x17, 0xd1, 0x71, 0xe0, 0xe6, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff,
- 0x72, 0x39, 0x20, 0x2a, 0xc5, 0x81, 0x01, 0x00,
+ 0x39, 0xe7, 0x7e, 0xbe, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, 0xe1, 0x85, 0x80, 0xb6, 0x68, 0xd7,
+ 0xf5, 0x82, 0xab, 0x2d, 0xba, 0x67, 0x37, 0x0e, 0xaf, 0x06, 0x87, 0x5d, 0xea, 0xf3, 0x7f, 0xaf,
+ 0x74, 0x3d, 0x37, 0x70, 0xc9, 0x08, 0xfe, 0x58, 0x9c, 0xdf, 0x73, 0xf7, 0x5c, 0x84, 0x5c, 0x65,
+ 0x7f, 0xf1, 0xc2, 0xc5, 0xa5, 0x3d, 0xd7, 0xdd, 0x6b, 0xd1, 0xab, 0xf8, 0x6b, 0xa7, 0xb7, 0x7b,
+ 0x35, 0x70, 0xda, 0xd4, 0x0f, 0xec, 0x76, 0x57, 0x20, 0x5c, 0x0e, 0x2b, 0xb0, 0x83, 0x80, 0x95,
+ 0x04, 0x8e, 0xdb, 0xb9, 0xfa, 0xe0, 0x9a, 0xfa, 0x53, 0xa0, 0xbe, 0x9e, 0xde, 0x96, 0x87, 0x9e,
+ 0xdd, 0xed, 0x52, 0x2f, 0xfa, 0x83, 0xa3, 0x1b, 0xff, 0x20, 0x07, 0xe3, 0x77, 0x28, 0xed, 0x96,
+ 0x5a, 0xce, 0x03, 0x4a, 0x2e, 0x40, 0x7e, 0xc3, 0x6e, 0xd3, 0x85, 0xcc, 0xf9, 0xcc, 0xa5, 0xf1,
+ 0x95, 0x99, 0xc7, 0x47, 0x4b, 0x13, 0x3e, 0xf5, 0x1e, 0x50, 0xcf, 0xea, 0xd8, 0x6d, 0x6a, 0x62,
+ 0x21, 0x79, 0x15, 0xc6, 0xd9, 0xff, 0x7e, 0xd7, 0x6e, 0xd0, 0x85, 0x2c, 0x62, 0x4e, 0x3d, 0x3e,
+ 0x5a, 0x1a, 0xef, 0x48, 0xa0, 0x19, 0x95, 0x93, 0x8b, 0x30, 0xb6, 0x4e, 0x6d, 0x9f, 0x56, 0x2b,
+ 0x0b, 0xb9, 0xf3, 0x99, 0x4b, 0xb9, 0x95, 0xc9, 0xc7, 0x47, 0x4b, 0x85, 0x16, 0x03, 0x59, 0x4e,
+ 0xd3, 0x94, 0x85, 0xa4, 0x0a, 0x63, 0xab, 0x8f, 0xba, 0x8e, 0x47, 0xfd, 0x85, 0xfc, 0xf9, 0xcc,
+ 0xa5, 0x89, 0xe5, 0xc5, 0x2b, 0x7c, 0x50, 0xae, 0xc8, 0x41, 0xb9, 0xb2, 0x25, 0x07, 0x65, 0x65,
+ 0xee, 0xb7, 0x8e, 0x96, 0x9e, 0x79, 0x7c, 0xb4, 0x34, 0x46, 0x39, 0xc9, 0x4f, 0xfe, 0xde, 0x52,
+ 0xc6, 0x94, 0xf4, 0xe4, 0x6d, 0xc8, 0x6f, 0x1d, 0x76, 0xe9, 0xc2, 0xf8, 0xf9, 0xcc, 0xa5, 0xe9,
+ 0xe5, 0xe7, 0xaf, 0xf0, 0x69, 0x08, 0x3b, 0x19, 0xfd, 0xc5, 0xb0, 0x56, 0x0a, 0x8f, 0x8f, 0x96,
+ 0xf2, 0x0c, 0xc5, 0x44, 0x2a, 0xf2, 0x3a, 0x8c, 0xae, 0xb9, 0x7e, 0x50, 0xad, 0x2c, 0x00, 0x76,
+ 0xed, 0xd4, 0xe3, 0xa3, 0xa5, 0xd9, 0x7d, 0xd7, 0x0f, 0x2c, 0xa7, 0xf9, 0x9a, 0xdb, 0x76, 0x02,
+ 0xda, 0xee, 0x06, 0x87, 0xa6, 0x40, 0x32, 0x1e, 0xc1, 0x94, 0xc6, 0x8f, 0x4c, 0xc0, 0xd8, 0xbd,
+ 0x8d, 0x3b, 0x1b, 0x9b, 0xdb, 0x1b, 0xc5, 0x67, 0x48, 0x01, 0xf2, 0x1b, 0x9b, 0x95, 0xd5, 0x62,
+ 0x86, 0x8c, 0x41, 0xae, 0x54, 0xab, 0x15, 0xb3, 0x64, 0x12, 0x0a, 0x95, 0xd2, 0x56, 0x69, 0xa5,
+ 0x54, 0x5f, 0x2d, 0xe6, 0xc8, 0x1c, 0xcc, 0x6c, 0x57, 0x37, 0x2a, 0x9b, 0xdb, 0x75, 0xab, 0xb2,
+ 0x5a, 0xbf, 0xb3, 0xb5, 0x59, 0x2b, 0xe6, 0xc9, 0x34, 0xc0, 0x9d, 0x7b, 0x2b, 0xab, 0xe6, 0xc6,
+ 0xea, 0xd6, 0x6a, 0xbd, 0x38, 0x42, 0xe6, 0xa1, 0x28, 0x49, 0xac, 0xfa, 0xaa, 0x79, 0xbf, 0x5a,
+ 0x5e, 0x2d, 0x8e, 0x1a, 0xff, 0x28, 0x07, 0x85, 0xbb, 0x34, 0xb0, 0x9b, 0x76, 0x60, 0x93, 0xe7,
+ 0xb4, 0x89, 0xc3, 0x3e, 0x29, 0x33, 0x76, 0x21, 0x39, 0x63, 0x23, 0x8f, 0x8f, 0x96, 0x32, 0xaf,
+ 0xab, 0x33, 0xf5, 0x16, 0x4c, 0x54, 0xa8, 0xdf, 0xf0, 0x9c, 0x2e, 0x5b, 0x4d, 0x38, 0x5b, 0xe3,
+ 0x2b, 0x67, 0x1f, 0x1f, 0x2d, 0x9d, 0x6a, 0x46, 0x60, 0x65, 0x04, 0x54, 0x6c, 0x52, 0x85, 0xd1,
+ 0x75, 0x7b, 0x87, 0xb6, 0xfc, 0x85, 0x91, 0xf3, 0xb9, 0x4b, 0x13, 0xcb, 0xcf, 0x8a, 0x51, 0x97,
+ 0x0d, 0xbc, 0xc2, 0x4b, 0x57, 0x3b, 0x81, 0x77, 0xb8, 0x32, 0xff, 0xf8, 0x68, 0xa9, 0xd8, 0x42,
+ 0x80, 0x3a, 0xa2, 0x1c, 0x85, 0xd4, 0xa3, 0x95, 0x30, 0x7a, 0xec, 0x4a, 0x38, 0xf7, 0x5b, 0x47,
+ 0x4b, 0x19, 0x36, 0x43, 0x62, 0x25, 0x44, 0xfc, 0xf4, 0x35, 0x61, 0x40, 0xb6, 0x5a, 0x59, 0x18,
+ 0xc3, 0x15, 0x48, 0x1e, 0x1f, 0x2d, 0x4d, 0xaa, 0x93, 0xb9, 0x90, 0x31, 0xb3, 0xd5, 0x0a, 0x59,
+ 0x86, 0x82, 0x49, 0x1f, 0x38, 0x3e, 0xeb, 0x7d, 0x01, 0x7b, 0x7f, 0xfa, 0xf1, 0xd1, 0x12, 0xf1,
+ 0x04, 0x4c, 0x69, 0x6a, 0x88, 0xb7, 0xf8, 0x26, 0x4c, 0x28, 0x3d, 0x23, 0x45, 0xc8, 0x1d, 0xd0,
+ 0x43, 0x3e, 0x0b, 0x26, 0xfb, 0x93, 0xcc, 0xc3, 0xc8, 0x03, 0xbb, 0xd5, 0x13, 0xc3, 0x6e, 0xf2,
+ 0x1f, 0x5f, 0xc8, 0x7e, 0x3e, 0x63, 0xfc, 0x95, 0x3c, 0x14, 0x4c, 0x97, 0x7f, 0xbb, 0xe4, 0x32,
+ 0x8c, 0xd4, 0x03, 0x3b, 0x90, 0x13, 0x38, 0xf7, 0xf8, 0x68, 0x69, 0x86, 0x7d, 0xd7, 0x54, 0xa9,
+ 0x95, 0x63, 0x30, 0xd4, 0xda, 0xbe, 0xed, 0xcb, 0x89, 0x44, 0xd4, 0x2e, 0x03, 0xa8, 0xa8, 0x88,
+ 0x41, 0x2e, 0x42, 0xfe, 0xae, 0xdb, 0xa4, 0x62, 0x2e, 0x59, 0xbf, 0xa7, 0xdb, 0x6e, 0x53, 0x45,
+ 0xc4, 0x72, 0xf2, 0x1a, 0x8c, 0x97, 0x7b, 0x9e, 0x47, 0x3b, 0x6c, 0xd9, 0xe7, 0x11, 0x79, 0xfa,
+ 0xf1, 0xd1, 0x12, 0x34, 0x38, 0x90, 0x7d, 0xa8, 0x11, 0x02, 0x9b, 0xa0, 0x7a, 0x60, 0x7b, 0x01,
+ 0x6d, 0x2e, 0x8c, 0x0c, 0x35, 0x41, 0xec, 0x53, 0x9d, 0xf5, 0x39, 0x49, 0x7c, 0x82, 0x04, 0x27,
+ 0xb2, 0x06, 0x13, 0xb7, 0x3c, 0xbb, 0x41, 0x6b, 0xd4, 0x73, 0xdc, 0x26, 0xce, 0x7c, 0x6e, 0xe5,
+ 0xe2, 0xe3, 0xa3, 0xa5, 0xd3, 0x7b, 0x0c, 0x6c, 0x75, 0x11, 0x1e, 0x51, 0x7f, 0xef, 0x68, 0xa9,
+ 0x50, 0xe9, 0x79, 0x38, 0x7a, 0xa6, 0x4a, 0x4a, 0xbe, 0xc6, 0xa6, 0xc4, 0x0f, 0x70, 0x68, 0x69,
+ 0x13, 0xe7, 0x7c, 0x70, 0x13, 0x0d, 0xd1, 0xc4, 0xd3, 0x2d, 0xdb, 0x0f, 0x2c, 0x8f, 0xd3, 0xc5,
+ 0xda, 0xa9, 0xb2, 0x24, 0x9b, 0x50, 0xa8, 0x37, 0xf6, 0x69, 0xb3, 0xd7, 0xa2, 0xb8, 0x50, 0x26,
+ 0x96, 0xcf, 0x88, 0xe5, 0x2e, 0xe7, 0x53, 0x16, 0xaf, 0x2c, 0x0a, 0xde, 0xc4, 0x17, 0x10, 0x75,
+ 0x15, 0x49, 0xac, 0x2f, 0x14, 0xbe, 0xf3, 0x73, 0x4b, 0xcf, 0x7c, 0xf3, 0x77, 0xcf, 0x3f, 0x63,
+ 0xfc, 0x83, 0x2c, 0x14, 0xe3, 0x4c, 0xc8, 0x2e, 0x4c, 0xdd, 0xeb, 0x36, 0xed, 0x80, 0x96, 0x5b,
+ 0x0e, 0xed, 0x04, 0x3e, 0x2e, 0x92, 0xc1, 0x7d, 0x7a, 0x51, 0xd4, 0xbb, 0xd0, 0x43, 0x42, 0xab,
+ 0xc1, 0x29, 0x63, 0xbd, 0xd2, 0xd9, 0x46, 0xf5, 0xd4, 0x51, 0xe6, 0xfb, 0xb8, 0xc2, 0x4e, 0x56,
+ 0x0f, 0xdf, 0x2d, 0xfa, 0xd4, 0x23, 0xd8, 0x8a, 0x05, 0xd4, 0x69, 0xee, 0x1c, 0xe2, 0xca, 0x1c,
+ 0x7e, 0x01, 0x31, 0x92, 0x94, 0x05, 0xc4, 0xc0, 0xc6, 0x3f, 0xcf, 0xc0, 0xb4, 0x49, 0x7d, 0xb7,
+ 0xe7, 0x35, 0xe8, 0x1a, 0xb5, 0x9b, 0xd4, 0x63, 0xcb, 0xff, 0x8e, 0xd3, 0x69, 0x8a, 0x6f, 0x0a,
+ 0x97, 0xff, 0x81, 0xd3, 0x51, 0xa5, 0x38, 0x96, 0x93, 0xcf, 0xc0, 0x58, 0xbd, 0xb7, 0x83, 0xa8,
+ 0xd9, 0xe8, 0xbb, 0xf7, 0x7b, 0x3b, 0x56, 0x0c, 0x5d, 0xa2, 0x91, 0xab, 0x30, 0x76, 0x9f, 0x7a,
+ 0x7e, 0x24, 0x27, 0x71, 0x97, 0x78, 0xc0, 0x41, 0x2a, 0x81, 0xc0, 0x22, 0xb7, 0x22, 0x59, 0x2d,
+ 0xf6, 0xb7, 0x99, 0x98, 0x84, 0x8c, 0x96, 0x4a, 0x5b, 0x40, 0xd4, 0xa5, 0x22, 0xb1, 0x8c, 0x9f,
+ 0xca, 0x42, 0xb1, 0x62, 0x07, 0xf6, 0x8e, 0xed, 0x8b, 0xf1, 0xbc, 0x7f, 0x9d, 0x49, 0x7f, 0xa5,
+ 0xa3, 0x28, 0xfd, 0x59, 0xcb, 0x3f, 0x76, 0xf7, 0x5e, 0x8a, 0x77, 0x6f, 0x82, 0x6d, 0xb6, 0xa2,
+ 0x7b, 0x51, 0xa7, 0xde, 0x39, 0xbe, 0x53, 0x45, 0xd1, 0xa9, 0x82, 0xec, 0x54, 0xd4, 0x15, 0xf2,
+ 0x0e, 0xe4, 0xeb, 0x5d, 0xda, 0x10, 0x42, 0x44, 0xee, 0x18, 0x7a, 0xe7, 0x18, 0xc2, 0xfd, 0xeb,
+ 0x2b, 0x93, 0x82, 0x4d, 0xde, 0xef, 0xd2, 0x86, 0x89, 0x64, 0xca, 0x47, 0xf3, 0x0f, 0x73, 0x30,
+ 0x9f, 0x46, 0xa6, 0xf6, 0x63, 0x74, 0x40, 0x3f, 0x2e, 0x41, 0x81, 0xed, 0xe6, 0x6c, 0xc3, 0x44,
+ 0x71, 0x31, 0xce, 0x95, 0x94, 0x7d, 0x01, 0x33, 0xc3, 0x52, 0x72, 0x21, 0x54, 0x0e, 0x0a, 0x11,
+ 0x3f, 0xa1, 0x1c, 0x48, 0x95, 0x80, 0xcd, 0xb5, 0xfc, 0x84, 0x51, 0x87, 0x88, 0x86, 0x45, 0x82,
+ 0xa3, 0xb9, 0xf6, 0x04, 0x44, 0xdb, 0x5c, 0xe4, 0xa6, 0xb0, 0x0a, 0x05, 0xd9, 0xad, 0x85, 0x49,
+ 0x64, 0x34, 0x1b, 0x1b, 0xa4, 0xfb, 0xd7, 0xf9, 0x64, 0x36, 0xc5, 0x6f, 0x95, 0x8d, 0xc4, 0x21,
+ 0xd7, 0xa1, 0x50, 0xf3, 0xdc, 0x47, 0x87, 0xd5, 0x8a, 0xbf, 0x30, 0x75, 0x3e, 0x77, 0x69, 0x7c,
+ 0xe5, 0xcc, 0xe3, 0xa3, 0xa5, 0xb9, 0x2e, 0x83, 0x59, 0x4e, 0x53, 0xdd, 0x83, 0x43, 0xc4, 0xdb,
+ 0xf9, 0x42, 0xa6, 0x98, 0xbd, 0x9d, 0x2f, 0x64, 0x8b, 0xb9, 0xdb, 0xf9, 0x42, 0xae, 0x98, 0xbf,
+ 0x9d, 0x2f, 0xe4, 0x8b, 0x23, 0xb7, 0xf3, 0x85, 0x91, 0xe2, 0xe8, 0xed, 0x7c, 0x61, 0xbc, 0x08,
+ 0xb7, 0xf3, 0x85, 0x89, 0xe2, 0xa4, 0xa6, 0x07, 0x20, 0x83, 0xc0, 0x6d, 0xb8, 0x2d, 0x33, 0x77,
+ 0xcf, 0xac, 0x9a, 0xa3, 0xe5, 0x52, 0x99, 0x7a, 0x81, 0x99, 0x2b, 0x6d, 0xd7, 0xcd, 0xa9, 0xca,
+ 0x61, 0xc7, 0x6e, 0x3b, 0x0d, 0xbe, 0x61, 0x9a, 0xb9, 0x5b, 0xe5, 0x9a, 0x51, 0x82, 0xe9, 0xa8,
+ 0x2f, 0xeb, 0x8e, 0x1f, 0x90, 0xab, 0x30, 0x2e, 0x21, 0x4c, 0xd0, 0xe5, 0x52, 0x7b, 0x6d, 0x46,
+ 0x38, 0xc6, 0x6f, 0x66, 0x01, 0xa2, 0x92, 0xa7, 0xf4, 0x5b, 0xf8, 0x9c, 0xf6, 0x2d, 0x9c, 0x8a,
+ 0x7f, 0x0b, 0x7d, 0xbf, 0x02, 0xf2, 0x1e, 0x8c, 0x32, 0xb5, 0xa0, 0x27, 0x95, 0xa5, 0x33, 0x71,
+ 0x52, 0x2c, 0xbc, 0x7f, 0x7d, 0x65, 0x5a, 0x10, 0x8f, 0xfa, 0x08, 0x31, 0x05, 0x99, 0xf2, 0x19,
+ 0xfd, 0xec, 0x58, 0x34, 0x19, 0xe2, 0x03, 0xba, 0x04, 0xe1, 0x84, 0x8a, 0x01, 0xc5, 0x2f, 0xa3,
+ 0x2b, 0x27, 0x39, 0x2c, 0x25, 0x67, 0x81, 0x4d, 0xb8, 0x18, 0xd4, 0xb1, 0xc7, 0x47, 0x4b, 0xb9,
+ 0x9e, 0xe7, 0xe0, 0x22, 0x20, 0x57, 0x41, 0x2c, 0x03, 0x31, 0x80, 0x6c, 0xf5, 0xcd, 0x36, 0x6c,
+ 0xab, 0x41, 0xbd, 0x40, 0x53, 0xc2, 0x04, 0x1a, 0xe9, 0x82, 0xbe, 0x54, 0x16, 0xf2, 0xb8, 0x0c,
+ 0x2e, 0xa5, 0x8e, 0xca, 0x15, 0x0d, 0x95, 0x2b, 0x98, 0xe7, 0xe5, 0xae, 0xd4, 0xe4, 0x65, 0x56,
+ 0x42, 0xd9, 0xd4, 0x2b, 0x20, 0xd7, 0x81, 0xad, 0x50, 0x31, 0xfa, 0x20, 0xea, 0x29, 0x6d, 0xd7,
+ 0x57, 0x4e, 0x09, 0x4e, 0x53, 0xf6, 0x43, 0x95, 0x9c, 0x61, 0x93, 0xb7, 0x80, 0x2d, 0x61, 0x31,
+ 0xee, 0x44, 0x10, 0xdd, 0x2a, 0xd7, 0xca, 0x2d, 0xb7, 0xd7, 0xac, 0x7f, 0x71, 0x3d, 0x22, 0xde,
+ 0x6b, 0x74, 0x55, 0xe2, 0x5b, 0xe5, 0x1a, 0x79, 0x0b, 0x46, 0x4a, 0xdf, 0xe8, 0x79, 0x54, 0xe8,
+ 0x27, 0x93, 0xb2, 0x4e, 0x06, 0x5b, 0x39, 0x23, 0x08, 0x67, 0x6c, 0xf6, 0x53, 0xd5, 0xeb, 0xb0,
+ 0x9c, 0xd5, 0xbc, 0xb5, 0x5e, 0x17, 0xba, 0x07, 0x89, 0x0d, 0xcb, 0xd6, 0xba, 0xd2, 0xec, 0x40,
+ 0xeb, 0x35, 0xa3, 0x22, 0x57, 0x21, 0x5b, 0xaa, 0xe0, 0xe1, 0x68, 0x62, 0x79, 0x5c, 0x56, 0x5b,
+ 0x59, 0x99, 0x17, 0x24, 0x93, 0xb6, 0xfa, 0x19, 0x64, 0x4b, 0x15, 0xb2, 0x02, 0x23, 0x77, 0x0f,
+ 0xeb, 0x5f, 0x5c, 0x17, 0xc2, 0x6c, 0x4e, 0xae, 0x6b, 0x06, 0xdb, 0xc4, 0xcf, 0xde, 0x8f, 0x5a,
+ 0xdc, 0x3e, 0xf4, 0xbf, 0xde, 0x52, 0x5b, 0x8c, 0x68, 0xa4, 0x06, 0xe3, 0xa5, 0x66, 0xdb, 0xe9,
+ 0xdc, 0xf3, 0xa9, 0xb7, 0x30, 0x81, 0x7c, 0x16, 0x62, 0xed, 0x0e, 0xcb, 0x57, 0x16, 0x1e, 0x1f,
+ 0x2d, 0xcd, 0xdb, 0xec, 0xa7, 0xd5, 0xf3, 0xa9, 0xa7, 0x70, 0x8b, 0x98, 0x90, 0x1a, 0xc0, 0x5d,
+ 0xb7, 0xb3, 0xe7, 0x96, 0x82, 0x96, 0xed, 0xc7, 0xc4, 0x63, 0x54, 0x10, 0xaa, 0x0f, 0xa7, 0xda,
+ 0x0c, 0x66, 0xd9, 0x0c, 0xa8, 0x30, 0x54, 0x78, 0x90, 0x9b, 0x30, 0xba, 0xe9, 0xd9, 0x8d, 0x16,
+ 0x5d, 0x98, 0x42, 0x6e, 0xf3, 0x82, 0x1b, 0x07, 0xca, 0x9e, 0x2e, 0x08, 0x86, 0x45, 0x17, 0xc1,
+ 0xea, 0x01, 0x86, 0x23, 0x2e, 0x6e, 0x03, 0x49, 0xae, 0xc9, 0x94, 0xa3, 0xc1, 0xab, 0xea, 0xd1,
+ 0x20, 0xfa, 0xe8, 0xcb, 0x6e, 0xbb, 0x6d, 0x77, 0x9a, 0x48, 0x7b, 0x7f, 0x59, 0x3d, 0x31, 0x7c,
+ 0x1d, 0x66, 0x13, 0x83, 0x75, 0xcc, 0xc9, 0xef, 0x5d, 0x98, 0xa9, 0xd0, 0x5d, 0xbb, 0xd7, 0x0a,
+ 0xc2, 0x9d, 0x84, 0x7f, 0xa2, 0x78, 0x06, 0x6b, 0xf2, 0x22, 0x4b, 0x6e, 0x1f, 0x66, 0x1c, 0xd9,
+ 0x78, 0x07, 0xa6, 0xb4, 0xee, 0xb3, 0xa3, 0x42, 0xa9, 0xd7, 0x74, 0x02, 0x9c, 0xc8, 0x4c, 0x74,
+ 0x54, 0xb0, 0x19, 0x10, 0xa7, 0xcb, 0x8c, 0x10, 0x8c, 0xbf, 0xa5, 0x6a, 0x2b, 0x42, 0x12, 0xb1,
+ 0x13, 0xb6, 0x90, 0x07, 0x99, 0x48, 0x77, 0x4a, 0xc8, 0x83, 0x50, 0x1a, 0x5c, 0xe6, 0xdf, 0x66,
+ 0x36, 0xf1, 0x6d, 0x4e, 0x88, 0x99, 0xc8, 0xd9, 0x0f, 0x7d, 0xfe, 0x45, 0x86, 0x2b, 0x35, 0xf7,
+ 0xf1, 0x57, 0xea, 0x7b, 0x30, 0x79, 0xd7, 0xee, 0xd8, 0x7b, 0xb4, 0xc9, 0x7a, 0xc0, 0x65, 0xcf,
+ 0xf8, 0xca, 0xb3, 0x8f, 0x8f, 0x96, 0xce, 0xb4, 0x39, 0x1c, 0x7b, 0xa9, 0x2e, 0x22, 0x8d, 0x80,
+ 0x5c, 0x93, 0x5f, 0xf6, 0x48, 0xca, 0x97, 0x3d, 0x25, 0x6a, 0x1f, 0xc1, 0x2f, 0x5b, 0x7c, 0xcf,
+ 0xc6, 0xff, 0x51, 0xc0, 0x3e, 0x92, 0xd7, 0x60, 0xd4, 0xa4, 0x7b, 0x6c, 0xab, 0xc9, 0x44, 0x93,
+ 0xe4, 0x21, 0x44, 0x1d, 0x18, 0x8e, 0x83, 0x7a, 0x06, 0x6d, 0xfa, 0xfb, 0xce, 0x6e, 0x20, 0x46,
+ 0x27, 0xd4, 0x33, 0x04, 0x58, 0xd1, 0x33, 0x04, 0x44, 0x3f, 0xc4, 0x72, 0x18, 0x93, 0x7e, 0x66,
+ 0xa5, 0x2e, 0x06, 0x4d, 0x8e, 0xb0, 0x59, 0x51, 0xc4, 0x88, 0xa7, 0x69, 0x09, 0x0c, 0x9b, 0xdc,
+ 0x80, 0xf1, 0x52, 0xa3, 0xe1, 0xf6, 0x94, 0x33, 0x23, 0xff, 0x6e, 0x39, 0x50, 0xb7, 0x96, 0x44,
+ 0xa8, 0xa4, 0x0e, 0x13, 0xab, 0xec, 0xa0, 0xe5, 0x94, 0xed, 0xc6, 0xbe, 0x1c, 0x24, 0x29, 0xc3,
+ 0x94, 0x92, 0xe8, 0xcb, 0xa5, 0x08, 0x6c, 0x30, 0xa0, 0x6a, 0x7e, 0x50, 0x70, 0xc9, 0x16, 0x4c,
+ 0xd4, 0x69, 0xc3, 0xa3, 0x41, 0x3d, 0x70, 0x3d, 0x1a, 0x13, 0xc9, 0x4a, 0xc9, 0xca, 0xf3, 0xf2,
+ 0xac, 0xe7, 0x23, 0xd0, 0xf2, 0x19, 0x54, 0xe5, 0xaa, 0x20, 0x73, 0xa5, 0xbd, 0xed, 0x7a, 0x87,
+ 0x95, 0x15, 0x21, 0xa6, 0xa3, 0x3d, 0x9d, 0x83, 0x55, 0xa5, 0x9d, 0x41, 0x9a, 0x3b, 0xba, 0xd2,
+ 0xce, 0xb1, 0x70, 0xa6, 0x2a, 0x75, 0xd4, 0xad, 0x84, 0xd0, 0x9e, 0x89, 0x46, 0x19, 0xc1, 0xca,
+ 0x4c, 0x35, 0x7d, 0xd4, 0xcc, 0xb4, 0x99, 0x12, 0x58, 0xa4, 0x0b, 0x44, 0xce, 0x1a, 0x57, 0x74,
+ 0x5b, 0xd4, 0xf7, 0x85, 0x2c, 0x3f, 0x1b, 0x9b, 0xfc, 0x08, 0x61, 0xe5, 0x25, 0xc1, 0xfc, 0x9c,
+ 0x5c, 0x06, 0xe2, 0x9c, 0xc6, 0x0a, 0x95, 0x7a, 0x52, 0x78, 0x93, 0x37, 0x01, 0x56, 0x1f, 0x05,
+ 0xd4, 0xeb, 0xd8, 0xad, 0xd0, 0x24, 0x86, 0x46, 0x21, 0x2a, 0xa0, 0xfa, 0x44, 0x2b, 0xc8, 0xa4,
+ 0x0c, 0x53, 0x25, 0xdf, 0xef, 0xb5, 0xa9, 0xe9, 0xb6, 0x68, 0xc9, 0xdc, 0x40, 0xb9, 0x3f, 0xbe,
+ 0x72, 0xee, 0xf1, 0xd1, 0xd2, 0x59, 0x1b, 0x0b, 0x2c, 0xcf, 0x6d, 0x51, 0xcb, 0xf6, 0xd4, 0xd5,
+ 0xad, 0xd3, 0x90, 0x4d, 0x80, 0xcd, 0x2e, 0xed, 0xd4, 0xa9, 0xed, 0x35, 0xf6, 0x63, 0x62, 0x3e,
+ 0x2a, 0x58, 0x79, 0x4e, 0xf4, 0x70, 0xde, 0xed, 0xd2, 0x8e, 0x8f, 0x30, 0xb5, 0x55, 0x11, 0x26,
+ 0xd9, 0x86, 0x99, 0x6a, 0xe9, 0x6e, 0xcd, 0x6d, 0x39, 0x8d, 0x43, 0xa1, 0x39, 0x4d, 0xa3, 0xa1,
+ 0xf0, 0xb4, 0xe0, 0x1a, 0x2b, 0xe5, 0xe2, 0xc9, 0xb1, 0xdb, 0x56, 0x17, 0xa1, 0x96, 0xd0, 0x9f,
+ 0xe2, 0x5c, 0xc8, 0x07, 0x6c, 0x0d, 0xfa, 0x4c, 0x19, 0xdc, 0xb2, 0xf7, 0xfc, 0x85, 0x19, 0xcd,
+ 0x0e, 0x56, 0xda, 0xae, 0x5f, 0x51, 0x4a, 0xb9, 0x9a, 0xb2, 0xc8, 0x17, 0x22, 0x42, 0xad, 0xc0,
+ 0xde, 0xf3, 0xf5, 0x85, 0x18, 0x62, 0x2f, 0xbe, 0x0b, 0xc5, 0x38, 0xf1, 0x49, 0x4c, 0x4d, 0xb7,
+ 0xf3, 0x85, 0xa9, 0xe2, 0xb4, 0xd2, 0xe2, 0xd5, 0x47, 0x8e, 0x1f, 0xf8, 0xc6, 0x0f, 0x6a, 0x5f,
+ 0x0d, 0xfb, 0xa2, 0xef, 0xd0, 0xc3, 0x9a, 0x47, 0x77, 0x9d, 0x47, 0x42, 0x00, 0xe1, 0x17, 0x7d,
+ 0x40, 0x0f, 0xad, 0x2e, 0x42, 0xd5, 0x2f, 0x3a, 0x44, 0x25, 0x9f, 0x85, 0xc2, 0x9d, 0xbb, 0xf5,
+ 0x3b, 0xf4, 0xb0, 0x5a, 0x11, 0x9b, 0x0b, 0x27, 0x6b, 0xfb, 0x16, 0x23, 0xd5, 0xd6, 0x47, 0x88,
+ 0x69, 0xac, 0x44, 0xd2, 0x8b, 0xd5, 0x5c, 0x6e, 0xf5, 0xfc, 0x80, 0x7a, 0xd5, 0x8a, 0x5a, 0x73,
+ 0x83, 0x03, 0x63, 0xb2, 0x24, 0x44, 0x35, 0xfe, 0x61, 0x16, 0x25, 0x17, 0x5b, 0xa4, 0xd5, 0x8e,
+ 0x1f, 0xd8, 0x9d, 0x06, 0x0d, 0x19, 0xe0, 0x22, 0x75, 0x04, 0x34, 0xb6, 0x48, 0x23, 0x64, 0xbd,
+ 0xea, 0xec, 0xd0, 0x55, 0xb3, 0x2a, 0xa5, 0xb5, 0x41, 0x98, 0xb6, 0x45, 0x95, 0x9e, 0x80, 0xc6,
+ 0xaa, 0x8c, 0x90, 0xc9, 0x45, 0x18, 0xab, 0x96, 0xee, 0x96, 0x7a, 0xc1, 0x3e, 0xca, 0xcd, 0x02,
+ 0xd7, 0xa9, 0xd9, 0x0a, 0xb3, 0x7b, 0xc1, 0xbe, 0x29, 0x0b, 0xc9, 0x55, 0x3c, 0xab, 0x74, 0x68,
+ 0xc0, 0x8d, 0xaa, 0x62, 0xa3, 0xf4, 0x39, 0x28, 0x76, 0x54, 0x61, 0x20, 0xf2, 0x0a, 0x8c, 0xdc,
+ 0xaf, 0x95, 0xab, 0x15, 0x71, 0xd8, 0xc5, 0xdd, 0xe3, 0x41, 0xb7, 0xa1, 0xb7, 0x84, 0xa3, 0x18,
+ 0xbf, 0x9e, 0x89, 0x64, 0x12, 0xb9, 0xa8, 0xe9, 0x10, 0x68, 0x28, 0x61, 0x3a, 0x84, 0x6a, 0x28,
+ 0x41, 0x6d, 0xc2, 0x04, 0x52, 0xee, 0xf9, 0x81, 0xdb, 0x5e, 0xed, 0x34, 0xbb, 0xae, 0xd3, 0x09,
+ 0x90, 0x8a, 0x8f, 0x9a, 0xf1, 0xf8, 0x68, 0xe9, 0xf9, 0x06, 0x96, 0x5a, 0x54, 0x14, 0x5b, 0x31,
+ 0x2e, 0x29, 0xd4, 0x9f, 0x60, 0x20, 0x8d, 0xdf, 0xce, 0x6a, 0x7b, 0x09, 0x6b, 0x9e, 0x49, 0xbb,
+ 0x2d, 0xa7, 0x81, 0xc7, 0xe7, 0x5b, 0x9e, 0xdb, 0xeb, 0x86, 0xcb, 0x01, 0x9b, 0xe7, 0x45, 0xa5,
+ 0xd6, 0x1e, 0x2b, 0xd6, 0x79, 0xa7, 0x50, 0x93, 0xf7, 0x61, 0x92, 0x6d, 0xeb, 0xe2, 0xa7, 0xbf,
+ 0x90, 0xc5, 0x99, 0x78, 0x0e, 0x4d, 0x5e, 0x3e, 0xf5, 0x42, 0x36, 0x9a, 0x3e, 0xa0, 0x52, 0x90,
+ 0x26, 0x2c, 0x6c, 0x79, 0x76, 0xc7, 0x77, 0x82, 0xd5, 0x4e, 0xc3, 0x3b, 0x44, 0x35, 0x64, 0xb5,
+ 0x63, 0xef, 0xb4, 0x68, 0x13, 0xbb, 0x5b, 0x58, 0xb9, 0xf4, 0xf8, 0x68, 0xe9, 0xc5, 0x80, 0xe3,
+ 0x58, 0x34, 0x44, 0xb2, 0x28, 0xc7, 0x52, 0x38, 0xf7, 0xe5, 0xc4, 0xd4, 0x16, 0x39, 0xac, 0x78,
+ 0xf9, 0xc1, 0x77, 0x64, 0x54, 0x5b, 0xc2, 0xd9, 0x60, 0xa2, 0x48, 0x6d, 0xa6, 0x4a, 0x60, 0xfc,
+ 0xab, 0x4c, 0xb4, 0xdb, 0x91, 0xb7, 0x61, 0x42, 0x2c, 0x75, 0x65, 0x5d, 0xa0, 0xb8, 0x92, 0xdf,
+ 0x45, 0x6c, 0x66, 0x55, 0x74, 0x76, 0xc8, 0x2e, 0x95, 0xd7, 0x95, 0xb5, 0x81, 0x87, 0x6c, 0xbb,
+ 0xd1, 0x8a, 0x53, 0x49, 0x34, 0xb6, 0x08, 0xb6, 0xd6, 0xeb, 0xfa, 0xa8, 0xe0, 0x22, 0x08, 0x5a,
+ 0x7e, 0xca, 0x30, 0x28, 0xc8, 0x9f, 0xbc, 0xe3, 0xff, 0x5d, 0x26, 0x6d, 0x53, 0x25, 0x2b, 0x30,
+ 0xb5, 0xed, 0x7a, 0x07, 0x38, 0xbf, 0xca, 0x20, 0xe0, 0xcc, 0x3f, 0x94, 0x05, 0xf1, 0x0e, 0xe9,
+ 0x24, 0x6a, 0xdb, 0x94, 0xd1, 0xd0, 0xdb, 0x16, 0xe3, 0xa0, 0x11, 0xb0, 0x79, 0x08, 0x39, 0x86,
+ 0x5f, 0x07, 0xce, 0x43, 0xd4, 0x04, 0x6d, 0x09, 0xab, 0xe8, 0xc6, 0x3f, 0xca, 0xa8, 0x9b, 0x27,
+ 0x1b, 0xe4, 0x8a, 0xdb, 0xb6, 0x9d, 0x8e, 0xd2, 0x1d, 0x7e, 0xbf, 0x83, 0xd0, 0x78, 0x4b, 0x14,
+ 0x64, 0x72, 0x1d, 0x0a, 0xfc, 0x57, 0x28, 0x24, 0xd1, 0x84, 0x24, 0x08, 0x75, 0x09, 0x2f, 0x11,
+ 0x13, 0x33, 0x93, 0x3b, 0xe9, 0xcc, 0x7c, 0x33, 0x03, 0x13, 0xca, 0x79, 0x9a, 0xc9, 0xea, 0x9a,
+ 0xe7, 0x7e, 0x44, 0x1b, 0x81, 0xbe, 0x4d, 0x74, 0x39, 0x30, 0x26, 0xab, 0x43, 0xd4, 0xd8, 0xf6,
+ 0x90, 0x3d, 0xc1, 0xf6, 0x60, 0xfc, 0xcb, 0x8c, 0xd0, 0xe6, 0x87, 0x96, 0x91, 0xba, 0x3c, 0xcb,
+ 0x9e, 0x64, 0x63, 0x78, 0x1f, 0x46, 0x4c, 0xda, 0x74, 0x7c, 0xa1, 0x89, 0xcf, 0xaa, 0x27, 0x07,
+ 0x2c, 0x88, 0x0e, 0x2f, 0x1e, 0xfb, 0xa9, 0x4a, 0x75, 0x2c, 0x67, 0x2a, 0x57, 0xd5, 0xbf, 0xd9,
+ 0xa2, 0x8f, 0x1c, 0xbe, 0x92, 0xc5, 0x06, 0x83, 0x2a, 0x97, 0xe3, 0x5b, 0xbb, 0xac, 0x44, 0xe8,
+ 0x7e, 0xea, 0xaa, 0xd5, 0x68, 0x8c, 0x0f, 0x00, 0xa2, 0x2a, 0xc9, 0x1d, 0x28, 0x8a, 0x6f, 0xdb,
+ 0xe9, 0xec, 0x71, 0xf5, 0x41, 0x8c, 0xc1, 0xd2, 0xe3, 0xa3, 0xa5, 0x67, 0x1b, 0x61, 0x99, 0xd0,
+ 0x8f, 0x14, 0xbe, 0x09, 0x42, 0xe3, 0xdf, 0xcb, 0x42, 0xb6, 0x84, 0x13, 0x72, 0x87, 0x1e, 0x06,
+ 0xf6, 0xce, 0x4d, 0xa7, 0xa5, 0xad, 0xc4, 0x03, 0x84, 0x5a, 0xbb, 0x8e, 0x76, 0xb0, 0x56, 0x90,
+ 0xd9, 0x4a, 0xbc, 0xe3, 0xed, 0xbc, 0x81, 0x84, 0xca, 0x4a, 0x3c, 0xf0, 0x76, 0xde, 0x88, 0x93,
+ 0x85, 0x88, 0xc4, 0x80, 0x51, 0xbe, 0x2a, 0xc5, 0x1a, 0x84, 0xc7, 0x47, 0x4b, 0xa3, 0x7c, 0xf1,
+ 0x9a, 0xa2, 0x84, 0x9c, 0x85, 0x5c, 0xbd, 0xb6, 0x21, 0xc4, 0x07, 0x1a, 0xb0, 0xfc, 0x6e, 0xc7,
+ 0x64, 0x30, 0x56, 0xe7, 0x7a, 0xa5, 0x54, 0xc3, 0x23, 0xeb, 0x48, 0x54, 0x67, 0xab, 0x69, 0x77,
+ 0xe3, 0x87, 0xd6, 0x10, 0x91, 0xbc, 0x03, 0x13, 0x77, 0x2a, 0xe5, 0x35, 0xd7, 0xe7, 0x9f, 0xfe,
+ 0x68, 0xb4, 0xf8, 0x0f, 0x9a, 0x0d, 0x0b, 0x6d, 0xc6, 0x71, 0x19, 0xaa, 0xe0, 0x1b, 0x3f, 0x92,
+ 0x85, 0x09, 0xc5, 0xa2, 0x43, 0x3e, 0x2b, 0xae, 0xf2, 0x32, 0x9a, 0xae, 0xaa, 0x60, 0xb0, 0x52,
+ 0x7e, 0xfc, 0x6f, 0xbb, 0x4d, 0x2a, 0x2e, 0xf6, 0xa2, 0xa3, 0x76, 0x76, 0x98, 0xa3, 0xf6, 0x9b,
+ 0x00, 0x7c, 0x0d, 0x60, 0x93, 0x95, 0xbd, 0x58, 0x71, 0x02, 0x50, 0xe7, 0x25, 0x42, 0x26, 0xf7,
+ 0x61, 0x6e, 0xcb, 0xeb, 0xf9, 0x41, 0xfd, 0xd0, 0x0f, 0x68, 0x9b, 0x71, 0xab, 0xb9, 0x6e, 0x4b,
+ 0xac, 0xbf, 0x17, 0x1f, 0x1f, 0x2d, 0x9d, 0x0f, 0x58, 0xb1, 0xe5, 0x63, 0x39, 0x36, 0xc0, 0xea,
+ 0xba, 0xae, 0x7a, 0x00, 0x4f, 0x63, 0x60, 0x98, 0x30, 0xa9, 0x1e, 0xdf, 0x99, 0x58, 0x16, 0xd7,
+ 0x1e, 0xc2, 0x28, 0xab, 0x88, 0x65, 0xd1, 0xca, 0xe4, 0x35, 0x8c, 0x4e, 0x62, 0x7c, 0x56, 0x35,
+ 0x1d, 0x0d, 0xfb, 0x61, 0x1b, 0x3f, 0x9c, 0x89, 0xc4, 0xc8, 0xfd, 0x6b, 0xe4, 0x2d, 0x18, 0xe5,
+ 0xd7, 0x4c, 0xe2, 0x36, 0xee, 0x54, 0x78, 0xfc, 0x52, 0xef, 0xa0, 0xb8, 0xcd, 0xf6, 0x77, 0xf8,
+ 0x25, 0xf5, 0x33, 0xa6, 0x20, 0x09, 0xcd, 0xbd, 0xba, 0xe5, 0x47, 0x72, 0x47, 0xc3, 0xe6, 0xb5,
+ 0x34, 0x73, 0xaf, 0xf1, 0x1b, 0x79, 0x98, 0xd6, 0xd1, 0xd4, 0xbb, 0xa8, 0xcc, 0x50, 0x77, 0x51,
+ 0xef, 0x43, 0x81, 0x8d, 0x87, 0xd3, 0xa0, 0x52, 0x9d, 0x79, 0x11, 0x8d, 0xe0, 0x02, 0xa6, 0xdd,
+ 0xb1, 0x02, 0x9f, 0x0e, 0x76, 0x1a, 0x33, 0x43, 0x2a, 0xb2, 0xac, 0x5c, 0x98, 0xe4, 0xa2, 0x1d,
+ 0x5e, 0x5e, 0x98, 0xa8, 0xdf, 0x43, 0x78, 0x75, 0xf2, 0x3a, 0x8c, 0x32, 0xad, 0x36, 0x34, 0x16,
+ 0x60, 0x2b, 0x99, 0xc2, 0x1b, 0xf3, 0xab, 0xe0, 0x48, 0x64, 0x1b, 0x0a, 0xeb, 0xb6, 0x1f, 0xd4,
+ 0x29, 0xed, 0x0c, 0x71, 0xcb, 0xbc, 0x24, 0x86, 0x6a, 0x0e, 0xaf, 0x70, 0x7d, 0x4a, 0x3b, 0xb1,
+ 0x6b, 0xc2, 0x90, 0x19, 0xf9, 0x0a, 0x40, 0xd9, 0xed, 0x04, 0x9e, 0xdb, 0x5a, 0x77, 0xf7, 0x16,
+ 0x46, 0xf1, 0x94, 0xf6, 0x7c, 0x6c, 0x02, 0x22, 0x04, 0x7e, 0x50, 0x0b, 0x4d, 0x11, 0x0d, 0x5e,
+ 0x60, 0xb5, 0xdc, 0x3d, 0xf5, 0x3b, 0x88, 0xf0, 0xc9, 0x4d, 0x28, 0xca, 0x23, 0xf0, 0xbd, 0xee,
+ 0x9e, 0x87, 0x0b, 0x64, 0x2c, 0xda, 0xb6, 0xe9, 0xa3, 0xc0, 0xea, 0x09, 0xb8, 0x2a, 0x29, 0xe3,
+ 0x34, 0xe4, 0xcb, 0x70, 0x26, 0x0e, 0x93, 0xb3, 0x5c, 0x88, 0x14, 0x5a, 0x95, 0x5d, 0xca, 0xba,
+ 0xef, 0xc7, 0xc2, 0xf8, 0x5e, 0x16, 0xce, 0xf4, 0xe9, 0x2c, 0xfb, 0x1e, 0x70, 0xbb, 0x56, 0xbe,
+ 0x87, 0xd8, 0x2e, 0xcd, 0x1d, 0x65, 0xce, 0xa3, 0x4b, 0x05, 0x5b, 0xc1, 0xf9, 0x95, 0x62, 0xdc,
+ 0xa5, 0x02, 0x1d, 0x2a, 0x6e, 0x43, 0x9e, 0x4d, 0xd1, 0x10, 0x97, 0xbc, 0xd2, 0xfa, 0x31, 0x1d,
+ 0x38, 0xea, 0xf2, 0xc1, 0xa9, 0x43, 0x1e, 0xe4, 0xb3, 0x90, 0xdb, 0xda, 0x5a, 0xc7, 0xb5, 0x93,
+ 0xc3, 0xbe, 0x4f, 0x05, 0x41, 0x4b, 0x5b, 0xaa, 0x53, 0x8c, 0xf6, 0x4a, 0xe8, 0x13, 0xc0, 0xd0,
+ 0xc9, 0x97, 0x62, 0x6e, 0x29, 0xaf, 0x0c, 0x9e, 0xe8, 0xe1, 0xbd, 0x54, 0x3e, 0x89, 0xe3, 0xc7,
+ 0xdf, 0xc8, 0x46, 0xdf, 0xf0, 0x4d, 0xa7, 0x15, 0x50, 0x8f, 0x2c, 0xf2, 0x4f, 0x32, 0x3a, 0xff,
+ 0x9a, 0xe1, 0x6f, 0xb2, 0x10, 0x7d, 0xdf, 0x9c, 0x55, 0xf8, 0x21, 0xbf, 0xa2, 0x7c, 0xc8, 0x39,
+ 0xfc, 0x90, 0xa7, 0xfb, 0x7e, 0xb2, 0xaf, 0xa4, 0xac, 0x4b, 0xfc, 0x10, 0x53, 0xd6, 0xde, 0x8b,
+ 0x30, 0xb5, 0xe1, 0xae, 0x3e, 0x0a, 0x42, 0x44, 0xf6, 0x01, 0x16, 0x4c, 0x1d, 0xc8, 0x38, 0x6e,
+ 0xb6, 0x9a, 0xd4, 0xdb, 0xda, 0xb7, 0x3b, 0xda, 0x2d, 0xab, 0x99, 0x80, 0x33, 0xdc, 0x0d, 0xfa,
+ 0x50, 0xc7, 0x1d, 0xe3, 0xb8, 0x71, 0xb8, 0xf1, 0x43, 0x59, 0x39, 0x18, 0xf7, 0x97, 0x9f, 0xd2,
+ 0xdb, 0xbc, 0x37, 0xb4, 0xdb, 0xbc, 0xb9, 0xd0, 0x0e, 0x19, 0x5e, 0x4d, 0x2f, 0x1f, 0x73, 0xa3,
+ 0xfd, 0xdf, 0x8f, 0xc0, 0xa4, 0x8a, 0xce, 0xc6, 0xa1, 0xd4, 0x6c, 0x7a, 0xea, 0x38, 0xd8, 0xcd,
+ 0xa6, 0x67, 0x22, 0x54, 0xbb, 0xc0, 0xce, 0x0d, 0xbc, 0xc0, 0xfe, 0x2a, 0x8c, 0x97, 0xdb, 0x4d,
+ 0xed, 0x5a, 0xcd, 0x48, 0x69, 0xde, 0x95, 0x10, 0x89, 0x7f, 0x0b, 0xa1, 0x79, 0xad, 0xd1, 0x6e,
+ 0x26, 0x2f, 0xd3, 0x22, 0x96, 0xda, 0xdd, 0xf7, 0xc8, 0x27, 0xb9, 0xfb, 0xbe, 0x01, 0xe3, 0xf7,
+ 0x7c, 0xba, 0xd5, 0xeb, 0x74, 0x68, 0x0b, 0x97, 0x55, 0x81, 0xeb, 0xfa, 0x3d, 0x9f, 0x5a, 0x01,
+ 0x42, 0xd5, 0x06, 0x84, 0xa8, 0xea, 0x04, 0x8f, 0x0d, 0x98, 0xe0, 0xeb, 0x50, 0xa8, 0x51, 0xea,
+ 0xe1, 0x98, 0x4e, 0x44, 0x2a, 0x5d, 0x97, 0x52, 0xcf, 0x62, 0x03, 0xab, 0xdd, 0x89, 0x0b, 0x44,
+ 0xed, 0x22, 0x7d, 0x72, 0xc8, 0x8b, 0x74, 0xf2, 0x02, 0x4c, 0x76, 0x7b, 0x3b, 0x2d, 0xa7, 0x81,
+ 0x7c, 0xc5, 0x0d, 0xbc, 0x39, 0xc1, 0x61, 0x8c, 0xad, 0x4f, 0xbe, 0x04, 0x53, 0x78, 0xc6, 0x09,
+ 0x97, 0xdc, 0xb4, 0x76, 0xff, 0xa4, 0x95, 0x71, 0x4d, 0xa7, 0xc1, 0x40, 0x56, 0x8a, 0xa3, 0x88,
+ 0xce, 0x68, 0xb1, 0x0e, 0xd3, 0xfa, 0x4c, 0x3e, 0x81, 0x6b, 0xa8, 0xd0, 0x29, 0xa0, 0x50, 0x1c,
+ 0xbf, 0x9d, 0x2f, 0x40, 0x71, 0x82, 0xbb, 0x03, 0x98, 0x50, 0x0b, 0xfb, 0x64, 0x92, 0x3b, 0xbd,
+ 0x1d, 0xea, 0x75, 0x68, 0x40, 0x7d, 0x71, 0x08, 0xf0, 0xcd, 0x7c, 0xa9, 0xdb, 0xf5, 0x8d, 0xbf,
+ 0x97, 0x85, 0xb1, 0xd2, 0x76, 0xbd, 0xda, 0xd9, 0x75, 0xf1, 0x32, 0x29, 0xbc, 0x43, 0x50, 0x2f,
+ 0x93, 0xc2, 0x3b, 0x04, 0xf5, 0xe6, 0xe0, 0x6a, 0xca, 0x31, 0x0e, 0x5d, 0x54, 0x95, 0x63, 0x9c,
+ 0x66, 0xdb, 0x8b, 0xae, 0x53, 0x72, 0x43, 0x5c, 0xa7, 0x84, 0xd6, 0xb3, 0xfc, 0xb1, 0xd6, 0x33,
+ 0xf2, 0x16, 0x4c, 0x54, 0x3b, 0x01, 0xdd, 0xf3, 0xa2, 0x95, 0x1e, 0x1e, 0x29, 0x43, 0xb0, 0xaa,
+ 0xda, 0x2b, 0xd8, 0x6c, 0x19, 0x71, 0x8b, 0x5d, 0x68, 0xa9, 0xc3, 0x65, 0xc4, 0x0d, 0x7b, 0xb1,
+ 0xc3, 0xb4, 0x44, 0x34, 0x2a, 0xb1, 0x35, 0x22, 0xaf, 0xac, 0xb9, 0xf2, 0x39, 0x1d, 0x99, 0x99,
+ 0xd9, 0xc0, 0xae, 0xcc, 0xa6, 0x5f, 0x59, 0x1b, 0xdf, 0xca, 0xc2, 0x44, 0xa9, 0xdb, 0x7d, 0xca,
+ 0x1d, 0x87, 0x3e, 0xaf, 0x89, 0x57, 0x79, 0x16, 0x0a, 0xfb, 0x35, 0x94, 0xcf, 0xd0, 0x2f, 0x65,
+ 0x61, 0x26, 0x46, 0xa1, 0xb6, 0x3e, 0x33, 0xa4, 0xbb, 0x50, 0x76, 0x48, 0x77, 0xa1, 0xdc, 0x70,
+ 0xee, 0x42, 0xf9, 0x4f, 0x22, 0x32, 0x5f, 0x86, 0x5c, 0xa9, 0xdb, 0x8d, 0x5f, 0x3b, 0x76, 0xbb,
+ 0xf7, 0xaf, 0xf3, 0xf3, 0xac, 0xdd, 0xed, 0x9a, 0x0c, 0x43, 0x93, 0x63, 0xa3, 0x43, 0xca, 0x31,
+ 0xe3, 0x75, 0x18, 0x47, 0x5e, 0xe8, 0xa4, 0x73, 0x1e, 0xf0, 0x63, 0x16, 0xfe, 0x39, 0x5a, 0x5d,
+ 0xe2, 0x33, 0xff, 0xbf, 0x33, 0x30, 0x82, 0xbf, 0x9f, 0xd2, 0x35, 0xb6, 0xac, 0xad, 0xb1, 0xa2,
+ 0xb2, 0xc6, 0x86, 0x59, 0x5d, 0xff, 0x5b, 0x1e, 0x47, 0x4b, 0xac, 0x2b, 0xe1, 0x1b, 0x93, 0x49,
+ 0xf1, 0x8d, 0x79, 0x13, 0x14, 0xa9, 0xa9, 0x5a, 0x8b, 0x94, 0x3d, 0x43, 0x3d, 0x69, 0x44, 0xc8,
+ 0xe4, 0x20, 0xee, 0x25, 0x93, 0xc3, 0xc9, 0xb8, 0x10, 0x6f, 0xea, 0x13, 0x71, 0x90, 0x59, 0x03,
+ 0x52, 0xed, 0xf8, 0xb4, 0xd1, 0xf3, 0x68, 0xfd, 0xc0, 0xe9, 0xde, 0xa7, 0x9e, 0xb3, 0x7b, 0x28,
+ 0x4e, 0xf7, 0xb8, 0x2f, 0x3b, 0xa2, 0xd4, 0xf2, 0x0f, 0x9c, 0x2e, 0x3b, 0x8a, 0x38, 0xbb, 0x87,
+ 0x66, 0x0a, 0x0d, 0x79, 0x0f, 0xc6, 0x4c, 0xfa, 0xd0, 0x73, 0x02, 0x79, 0xf7, 0x3b, 0x1d, 0x1e,
+ 0x9c, 0x11, 0xca, 0x0f, 0x86, 0x1e, 0xff, 0xa1, 0xce, 0xbf, 0x28, 0x27, 0xcb, 0x5c, 0xf0, 0xf1,
+ 0x3b, 0xde, 0xa9, 0xa8, 0xb7, 0xa5, 0xed, 0x7a, 0x3f, 0xb9, 0x47, 0x2e, 0xc3, 0x08, 0x4a, 0x4f,
+ 0xa1, 0x13, 0xa0, 0xcf, 0x34, 0xee, 0xa1, 0xaa, 0x68, 0x47, 0x0c, 0xf2, 0x3c, 0x40, 0x68, 0xbe,
+ 0xf7, 0x17, 0x0a, 0xb8, 0x5b, 0x2b, 0x90, 0xb8, 0xe8, 0x1f, 0x3f, 0x89, 0xe8, 0xff, 0xf4, 0x5c,
+ 0x43, 0xfe, 0x4e, 0x16, 0x2e, 0x84, 0xe2, 0x6c, 0xd3, 0xab, 0x97, 0xee, 0xae, 0x57, 0x9b, 0x35,
+ 0xa1, 0xfd, 0xd7, 0x3c, 0xf7, 0x81, 0xc3, 0x4e, 0x7f, 0xd7, 0x8e, 0xf9, 0x18, 0xd7, 0xf9, 0xaa,
+ 0xe5, 0xa6, 0xc3, 0xac, 0x76, 0x89, 0xae, 0xec, 0x1a, 0xe2, 0x9e, 0xbf, 0xdb, 0x4d, 0x58, 0x12,
+ 0xd7, 0x9e, 0x31, 0x23, 0x06, 0xe4, 0x87, 0x33, 0x70, 0x3a, 0xbd, 0x21, 0xe2, 0x44, 0xb8, 0x24,
+ 0x35, 0xcf, 0x3e, 0xad, 0x5d, 0x79, 0xf9, 0xf1, 0xd1, 0xd2, 0x05, 0xdf, 0x6e, 0xb7, 0x2c, 0xa7,
+ 0xc9, 0x6b, 0x73, 0x1a, 0xd4, 0xea, 0x0a, 0x04, 0xad, 0xde, 0x3e, 0x35, 0x45, 0xdf, 0xe4, 0x0a,
+ 0x40, 0x41, 0xda, 0x66, 0x8c, 0xbf, 0x9f, 0x01, 0x65, 0x3d, 0x15, 0x4c, 0xda, 0x74, 0x3c, 0xda,
+ 0x08, 0x50, 0x9e, 0x85, 0x6e, 0xff, 0x1c, 0x16, 0xf3, 0x98, 0x40, 0x18, 0x79, 0x17, 0xc6, 0xb8,
+ 0x25, 0x87, 0x5b, 0x50, 0xa2, 0x75, 0x28, 0xac, 0x3e, 0x3c, 0x68, 0x84, 0x63, 0xa8, 0x6b, 0x58,
+ 0x10, 0x31, 0xed, 0xf6, 0xf6, 0xf6, 0x56, 0xb9, 0x65, 0x3b, 0x6d, 0x5f, 0x48, 0x31, 0x1c, 0xd4,
+ 0x8f, 0x1e, 0x06, 0x56, 0x03, 0xa1, 0xaa, 0x76, 0x1b, 0xa2, 0x1a, 0xb7, 0xa4, 0xd1, 0xe9, 0x18,
+ 0xb7, 0x9f, 0x25, 0x18, 0xb9, 0x1f, 0x1d, 0x3e, 0x57, 0xc6, 0x1f, 0x1f, 0x2d, 0xf1, 0xc5, 0x62,
+ 0x72, 0xb8, 0xf1, 0x97, 0x32, 0x30, 0xad, 0xaf, 0x26, 0x72, 0x05, 0x46, 0x85, 0xf3, 0x7d, 0x06,
+ 0x0f, 0xd9, 0x6c, 0x14, 0x46, 0xb9, 0xdb, 0xbd, 0xe6, 0x6c, 0x2f, 0xb0, 0x98, 0x1c, 0x16, 0x1c,
+ 0x84, 0x15, 0x09, 0xe5, 0x70, 0x83, 0x83, 0x4c, 0x59, 0x46, 0x0c, 0xa6, 0x84, 0xf9, 0xbd, 0x56,
+ 0xa0, 0xda, 0x5e, 0x3d, 0x84, 0x98, 0xa2, 0xc4, 0x28, 0xc3, 0x28, 0xff, 0x80, 0x63, 0xee, 0x06,
+ 0x99, 0x13, 0xb8, 0x1b, 0x18, 0x47, 0x19, 0x80, 0x7a, 0x7d, 0xed, 0x0e, 0x3d, 0xac, 0xd9, 0x8e,
+ 0x87, 0x97, 0x05, 0x28, 0x2c, 0xef, 0x88, 0x4f, 0x6b, 0x52, 0x5c, 0x16, 0x70, 0xc1, 0x7a, 0x40,
+ 0x0f, 0xb5, 0xcb, 0x02, 0x89, 0x8a, 0x12, 0xd9, 0x73, 0x1e, 0xd8, 0x01, 0x65, 0x84, 0x59, 0x24,
+ 0xe4, 0x12, 0x99, 0x43, 0x63, 0x94, 0x0a, 0x32, 0xf9, 0x0a, 0x4c, 0x47, 0xbf, 0xc2, 0x2b, 0x8f,
+ 0xe9, 0xf0, 0xf3, 0xd5, 0x0b, 0x57, 0x9e, 0x7f, 0x7c, 0xb4, 0xb4, 0xa8, 0x70, 0x8d, 0x5f, 0x86,
+ 0xc4, 0x98, 0x19, 0x3f, 0x9f, 0xc1, 0x5b, 0x32, 0xd9, 0xc1, 0x8b, 0x90, 0x0f, 0x9d, 0xa8, 0x26,
+ 0xb9, 0x9d, 0x26, 0x66, 0xd6, 0xc5, 0x72, 0x72, 0x01, 0x72, 0x51, 0x4f, 0x50, 0x40, 0xea, 0x3d,
+ 0x60, 0xa5, 0xe4, 0x16, 0x8c, 0x0d, 0xd5, 0x66, 0xfc, 0x34, 0x52, 0xda, 0x2a, 0xa9, 0x71, 0x16,
+ 0x6e, 0x6f, 0x6f, 0x7d, 0xff, 0xce, 0xc2, 0x4f, 0x64, 0x61, 0x86, 0x8d, 0x6b, 0xa9, 0x17, 0xec,
+ 0xbb, 0x9e, 0x13, 0x1c, 0x3e, 0xb5, 0x56, 0x8a, 0xb7, 0x35, 0x15, 0x67, 0x51, 0xee, 0x31, 0x6a,
+ 0xdf, 0x86, 0x32, 0x56, 0xfc, 0xe6, 0x08, 0xcc, 0xa5, 0x50, 0x91, 0xd7, 0x34, 0x43, 0xe2, 0x82,
+ 0x8c, 0xb3, 0xfb, 0xde, 0xd1, 0xd2, 0xa4, 0x44, 0xdf, 0x8a, 0xe2, 0xee, 0x96, 0xf5, 0x2b, 0x67,
+ 0x3e, 0x52, 0x68, 0x57, 0x54, 0xaf, 0x9c, 0xf5, 0x8b, 0xe6, 0xcb, 0x30, 0x62, 0xba, 0x2d, 0x2a,
+ 0xfd, 0x23, 0x70, 0x5b, 0xf7, 0x18, 0x40, 0xbb, 0x19, 0x63, 0x00, 0xb2, 0x06, 0x63, 0xec, 0x8f,
+ 0xbb, 0x76, 0x57, 0xd8, 0x7c, 0x49, 0xa8, 0x64, 0x23, 0xb4, 0xeb, 0x74, 0xf6, 0x54, 0x3d, 0xbb,
+ 0x45, 0xad, 0xb6, 0xdd, 0xd5, 0xf4, 0x0f, 0x8e, 0xa8, 0xe9, 0xeb, 0x85, 0xfe, 0xfa, 0x7a, 0xe6,
+ 0x58, 0x7d, 0xbd, 0x09, 0x50, 0x77, 0xf6, 0x3a, 0x4e, 0x67, 0xaf, 0xd4, 0xda, 0x13, 0xd1, 0x8a,
+ 0x97, 0xfb, 0xcf, 0xc2, 0x95, 0x08, 0x19, 0x17, 0x2e, 0xbf, 0x98, 0xe1, 0x30, 0xcb, 0x6e, 0x69,
+ 0x06, 0xe9, 0x08, 0x95, 0x6c, 0x00, 0x94, 0x1a, 0x81, 0xf3, 0x80, 0x2d, 0x60, 0x5f, 0xb8, 0xde,
+ 0xca, 0x06, 0x97, 0x4b, 0x77, 0xe8, 0x61, 0x9d, 0x06, 0x91, 0x81, 0xdb, 0x46, 0x54, 0xf6, 0x1d,
+ 0x68, 0x5e, 0xb2, 0x11, 0x07, 0xd2, 0x85, 0x53, 0xa5, 0x66, 0xd3, 0x61, 0x3d, 0xb0, 0x5b, 0x78,
+ 0x63, 0x43, 0x9b, 0xc8, 0x7a, 0x32, 0x9d, 0xf5, 0x65, 0xc1, 0xfa, 0x05, 0x3b, 0xa4, 0xb2, 0x02,
+ 0x4e, 0x16, 0xaf, 0x26, 0x9d, 0xb1, 0xb1, 0x09, 0xd3, 0x7a, 0xd7, 0xf5, 0x18, 0xcb, 0x49, 0x28,
+ 0x98, 0xf5, 0x92, 0x55, 0x5f, 0x2b, 0x5d, 0x2b, 0x66, 0x48, 0x11, 0x26, 0xc5, 0xaf, 0x65, 0x6b,
+ 0xf9, 0x8d, 0x1b, 0xc5, 0xac, 0x06, 0x79, 0xe3, 0xda, 0x72, 0x22, 0x9e, 0x61, 0xac, 0x58, 0xe0,
+ 0x66, 0x0c, 0xe3, 0x97, 0x33, 0x50, 0x90, 0xed, 0x26, 0x37, 0x20, 0x57, 0xaf, 0xaf, 0xc5, 0x22,
+ 0x10, 0xa2, 0xfd, 0x85, 0x4b, 0x52, 0xdf, 0x57, 0xdd, 0xcc, 0x18, 0x01, 0xa3, 0xdb, 0x5a, 0xaf,
+ 0x0b, 0xb5, 0x40, 0xd2, 0x45, 0x62, 0x9b, 0xd3, 0xa5, 0xb8, 0x65, 0xdf, 0x80, 0xdc, 0xed, 0xed,
+ 0x2d, 0xa1, 0xc4, 0x4b, 0xba, 0x48, 0x92, 0x72, 0xba, 0x8f, 0x1e, 0xaa, 0xf2, 0x9d, 0x11, 0x18,
+ 0x26, 0x4c, 0x28, 0x4b, 0x98, 0x6f, 0xb7, 0x6d, 0x37, 0x8c, 0x24, 0x14, 0xdb, 0x2d, 0x83, 0x98,
+ 0xa2, 0x84, 0x69, 0x07, 0xeb, 0x6e, 0xc3, 0x6e, 0x89, 0x7d, 0x1b, 0xb5, 0x83, 0x16, 0x03, 0x98,
+ 0x1c, 0x6e, 0xfc, 0x7a, 0x06, 0x8a, 0xa8, 0x41, 0xa1, 0xcb, 0x99, 0x7b, 0x40, 0x3b, 0xf7, 0xaf,
+ 0x91, 0xd7, 0xe5, 0xc7, 0x96, 0x09, 0x8f, 0x8c, 0x23, 0xf8, 0xb1, 0xc5, 0x6c, 0xce, 0xe2, 0x83,
+ 0x53, 0xc2, 0x38, 0xb3, 0xc3, 0x07, 0x79, 0x1d, 0x13, 0xc6, 0xb9, 0x04, 0x23, 0xd8, 0x1c, 0x21,
+ 0x16, 0xb1, 0xe5, 0x01, 0x03, 0x98, 0x1c, 0xae, 0x48, 0xa5, 0x9f, 0xca, 0x26, 0xfa, 0xb0, 0xfc,
+ 0x7d, 0x15, 0x28, 0xa5, 0x77, 0x6e, 0x28, 0x49, 0xfd, 0x01, 0xcc, 0xc7, 0x87, 0x04, 0x8f, 0xf3,
+ 0x25, 0x98, 0xd1, 0xe1, 0xf2, 0x64, 0x7f, 0x26, 0xb5, 0xae, 0xfb, 0xcb, 0x66, 0x1c, 0xdf, 0xf8,
+ 0x67, 0x19, 0x18, 0xc7, 0x3f, 0xcd, 0x5e, 0x0b, 0x9d, 0x20, 0x4a, 0xdb, 0x75, 0x61, 0xba, 0x53,
+ 0xd5, 0x38, 0xfb, 0xa1, 0x6f, 0x09, 0xeb, 0x9e, 0x26, 0x5f, 0x42, 0x64, 0x41, 0xca, 0x6d, 0x72,
+ 0xf2, 0x7e, 0x32, 0x24, 0xe5, 0xc6, 0x3b, 0x3f, 0x46, 0x2a, 0x90, 0xd1, 0xef, 0x68, 0xbb, 0xce,
+ 0x96, 0x9f, 0x7a, 0x2b, 0x89, 0x74, 0x6e, 0x4b, 0xf7, 0x3b, 0xe2, 0x68, 0x78, 0x29, 0xb9, 0x5d,
+ 0x2f, 0x99, 0x1b, 0xda, 0xa5, 0x24, 0x6b, 0xa3, 0xe6, 0x93, 0x2a, 0x90, 0x8c, 0x7f, 0x3a, 0x1e,
+ 0x1f, 0x40, 0xb1, 0xd5, 0x9d, 0xf0, 0xdb, 0x78, 0x0b, 0x46, 0x4a, 0xad, 0x96, 0xfb, 0x50, 0x48,
+ 0x09, 0x69, 0x5d, 0x08, 0xc7, 0x8f, 0xef, 0x64, 0x36, 0x43, 0xd1, 0x82, 0x3f, 0x18, 0x80, 0x94,
+ 0x61, 0xbc, 0xb4, 0x5d, 0xaf, 0x56, 0x2b, 0x5b, 0x5b, 0xeb, 0x22, 0xa6, 0xfe, 0x25, 0x39, 0x3e,
+ 0x8e, 0xd3, 0xb4, 0xe2, 0xf7, 0x62, 0x91, 0xe6, 0x1e, 0xd1, 0x91, 0x77, 0x00, 0x6e, 0xbb, 0x4e,
+ 0xe7, 0x2e, 0x0d, 0xf6, 0xdd, 0xa6, 0xe8, 0xfc, 0xb9, 0xc7, 0x47, 0x4b, 0x13, 0x1f, 0xb9, 0x4e,
+ 0xc7, 0x6a, 0x23, 0x98, 0xb5, 0x3d, 0x42, 0x32, 0x95, 0xbf, 0xd9, 0x48, 0xaf, 0xb8, 0xdc, 0xb1,
+ 0x61, 0x24, 0x1a, 0xe9, 0x1d, 0x37, 0xe1, 0xd3, 0x20, 0xd1, 0x48, 0x1b, 0x66, 0xea, 0xbd, 0xbd,
+ 0x3d, 0xca, 0xa4, 0xba, 0xb0, 0x57, 0x8c, 0x8a, 0xb3, 0x6d, 0x98, 0x91, 0x80, 0x9f, 0x44, 0xd8,
+ 0xf9, 0xc4, 0x5f, 0x79, 0x8d, 0x2d, 0xe4, 0xef, 0x1e, 0x2d, 0x89, 0xfb, 0x36, 0xa6, 0xa4, 0xf9,
+ 0x92, 0x3e, 0x69, 0xad, 0x88, 0xf3, 0x26, 0x9b, 0x30, 0x7a, 0xcb, 0x09, 0xd6, 0x7a, 0x3b, 0xc2,
+ 0x71, 0xfb, 0x85, 0x01, 0x1f, 0x0d, 0x47, 0xe4, 0x06, 0xdf, 0x3d, 0x27, 0xd8, 0xef, 0xa9, 0x4e,
+ 0xdc, 0x82, 0x0d, 0xd9, 0x86, 0x42, 0xd9, 0xf1, 0x1a, 0x2d, 0x5a, 0xae, 0x8a, 0x5d, 0xff, 0xc2,
+ 0x00, 0x96, 0x12, 0x95, 0x8f, 0x4b, 0x03, 0x7f, 0x35, 0x1c, 0x55, 0x0b, 0x90, 0x18, 0xe4, 0xaf,
+ 0x66, 0xe0, 0xd9, 0xb0, 0xf5, 0xa5, 0x3d, 0xda, 0x09, 0xee, 0xda, 0x41, 0x63, 0x9f, 0x7a, 0x62,
+ 0x94, 0xc6, 0x07, 0x8d, 0xd2, 0x17, 0x12, 0xa3, 0x74, 0x29, 0x1a, 0x25, 0x9b, 0x31, 0xb3, 0xda,
+ 0x9c, 0x5b, 0x72, 0xcc, 0x06, 0xd5, 0x4a, 0x2c, 0x80, 0xc8, 0x82, 0x2f, 0x02, 0x7f, 0x5e, 0x1a,
+ 0xd0, 0xe1, 0x08, 0x59, 0x38, 0xff, 0x86, 0xbf, 0x35, 0x3f, 0x9e, 0x10, 0x4a, 0xee, 0xc8, 0x28,
+ 0x09, 0xae, 0x91, 0x9c, 0x1f, 0xc0, 0x9b, 0x47, 0x4e, 0xcc, 0x0d, 0x88, 0x87, 0xe2, 0xb3, 0xbd,
+ 0x6e, 0xef, 0x08, 0x25, 0xe4, 0x98, 0xd9, 0x5e, 0xb7, 0xa3, 0xd9, 0x6e, 0xd9, 0xf1, 0xd9, 0x5e,
+ 0xb7, 0x77, 0x48, 0x99, 0x87, 0x76, 0xf1, 0x38, 0xa0, 0xe7, 0x07, 0x71, 0x2b, 0xd7, 0xf8, 0xce,
+ 0x9c, 0x12, 0xe2, 0xf5, 0x21, 0x8c, 0xd7, 0xbb, 0x76, 0x83, 0xb6, 0x9c, 0xdd, 0x40, 0x5c, 0xe9,
+ 0xbc, 0x38, 0x80, 0x55, 0x88, 0x2b, 0xae, 0x03, 0xe4, 0x4f, 0xf5, 0x80, 0x14, 0xe2, 0xb0, 0x16,
+ 0x6e, 0xd5, 0xee, 0x2e, 0xcc, 0x1c, 0xdb, 0xc2, 0xad, 0xda, 0x5d, 0xa1, 0x73, 0x74, 0xdb, 0x9a,
+ 0xce, 0x51, 0xbb, 0x6b, 0xfc, 0x6a, 0x0e, 0xce, 0xf4, 0xa1, 0x21, 0x1b, 0x52, 0x46, 0x65, 0x34,
+ 0xb3, 0x62, 0x1f, 0xf4, 0x2b, 0xc7, 0x8a, 0xad, 0x75, 0x28, 0xae, 0xde, 0x41, 0xb5, 0x96, 0xfd,
+ 0xa4, 0xcd, 0x72, 0x49, 0x4a, 0xf7, 0xf3, 0x8f, 0x8f, 0x96, 0x9e, 0xa3, 0x07, 0xe8, 0x12, 0x64,
+ 0xf3, 0x42, 0xab, 0xa1, 0x45, 0x69, 0x25, 0x28, 0x17, 0x7f, 0x28, 0x0b, 0x79, 0xdc, 0x69, 0x62,
+ 0x59, 0x2b, 0x32, 0x27, 0xca, 0x5a, 0xf1, 0x3e, 0x4c, 0xae, 0xde, 0xe1, 0x87, 0xce, 0x35, 0xdb,
+ 0xdf, 0x17, 0x72, 0x10, 0x6f, 0xd8, 0xe8, 0x81, 0x25, 0xce, 0xa8, 0xfb, 0xb6, 0xa6, 0xe4, 0x69,
+ 0x14, 0xe4, 0x1e, 0xcc, 0xf1, 0xb6, 0x39, 0xbb, 0x4e, 0x83, 0x87, 0xb8, 0x3b, 0x76, 0x4b, 0x08,
+ 0xc5, 0x0b, 0x8f, 0x8f, 0x96, 0x96, 0xe8, 0x01, 0x3a, 0x3b, 0x89, 0x72, 0xcb, 0x47, 0x04, 0xd5,
+ 0xeb, 0x29, 0x85, 0x5e, 0x8d, 0xbb, 0x35, 0xc7, 0xb1, 0x42, 0x56, 0x1b, 0xab, 0x9b, 0xe1, 0x72,
+ 0x24, 0xe3, 0xef, 0x8f, 0xc0, 0x62, 0x7f, 0x79, 0x46, 0xbe, 0xa8, 0x4f, 0xe0, 0xc5, 0x63, 0x25,
+ 0xe0, 0xf1, 0x73, 0xf8, 0x25, 0x98, 0x5f, 0xed, 0x04, 0xd4, 0xeb, 0x7a, 0x8e, 0x8c, 0xb4, 0x5e,
+ 0x73, 0x7d, 0xe9, 0x5c, 0x86, 0x5e, 0x5e, 0x34, 0x2c, 0x17, 0xd6, 0x41, 0x74, 0x75, 0x53, 0x58,
+ 0xa5, 0x72, 0x20, 0xab, 0x30, 0xad, 0xc0, 0x5b, 0xbd, 0x3d, 0xb1, 0x83, 0xa3, 0xe7, 0xa2, 0xca,
+ 0xb3, 0xd5, 0x53, 0x0f, 0x3a, 0x31, 0xa2, 0xc5, 0x9f, 0xcf, 0x89, 0x65, 0x71, 0x01, 0x72, 0xf5,
+ 0xde, 0x8e, 0x58, 0x0e, 0x5c, 0x55, 0xd7, 0xc4, 0x3a, 0x2b, 0x25, 0x9f, 0x07, 0x30, 0x69, 0xd7,
+ 0xf5, 0x9d, 0xc0, 0xf5, 0x0e, 0x55, 0xe7, 0x7f, 0x2f, 0x84, 0xea, 0x9e, 0x9a, 0x12, 0x4a, 0xd6,
+ 0x60, 0x26, 0xfa, 0xb5, 0xf9, 0xb0, 0x23, 0x4c, 0x9a, 0xe3, 0xdc, 0x9a, 0x10, 0x91, 0x5b, 0x2e,
+ 0x2b, 0x53, 0x37, 0xaa, 0x18, 0x19, 0x59, 0x86, 0xc2, 0xb6, 0xeb, 0x1d, 0xec, 0xb2, 0x89, 0xca,
+ 0x47, 0x5b, 0xe9, 0x43, 0x01, 0x53, 0xb7, 0x0c, 0x89, 0xc7, 0xd6, 0xfc, 0x6a, 0xe7, 0x81, 0xe3,
+ 0xb9, 0x9d, 0x36, 0xed, 0x04, 0xea, 0xed, 0x23, 0x8d, 0xc0, 0x5a, 0xa8, 0x54, 0x04, 0x66, 0x67,
+ 0xe6, 0x52, 0x23, 0x70, 0x3d, 0x71, 0xf5, 0xc8, 0xa7, 0x9b, 0x01, 0xb4, 0xe9, 0x66, 0x00, 0x36,
+ 0x88, 0x26, 0xdd, 0x15, 0x36, 0x73, 0x1c, 0x44, 0x8f, 0xee, 0x6a, 0x71, 0x60, 0x74, 0x97, 0xa9,
+ 0x02, 0x26, 0xdd, 0xc5, 0x83, 0xbe, 0x96, 0x34, 0x65, 0x37, 0x61, 0x22, 0x12, 0x68, 0xc6, 0x6f,
+ 0x8d, 0xf7, 0x5d, 0xb7, 0x4c, 0xf6, 0x9e, 0x6c, 0xdd, 0xae, 0xdb, 0x43, 0xac, 0xdb, 0xd7, 0x42,
+ 0xff, 0x4f, 0x35, 0xf8, 0x11, 0x21, 0xaa, 0xf0, 0xe7, 0x38, 0x8b, 0xbf, 0x58, 0x38, 0xc9, 0x22,
+ 0x12, 0x83, 0x94, 0x1d, 0x76, 0x90, 0x72, 0x43, 0x0d, 0x12, 0x59, 0x81, 0xa9, 0x30, 0x35, 0x4f,
+ 0xcd, 0x0e, 0x34, 0xd9, 0x14, 0x26, 0x5a, 0xb2, 0xba, 0x76, 0xa0, 0xca, 0x26, 0x9d, 0x84, 0xbc,
+ 0x0d, 0x13, 0xc2, 0x09, 0x1a, 0x39, 0x8c, 0x44, 0x6e, 0x68, 0xd2, 0x63, 0x3a, 0x46, 0xaf, 0xa2,
+ 0xb3, 0x4f, 0xb2, 0xe6, 0x74, 0x69, 0xcb, 0xe9, 0xd0, 0x3a, 0x5a, 0xcd, 0xc5, 0x8a, 0xc1, 0x4f,
+ 0xb2, 0x2b, 0x4a, 0x2c, 0x6e, 0x50, 0xd7, 0xec, 0x65, 0x1a, 0x51, 0x7c, 0xb1, 0x8e, 0x9d, 0x68,
+ 0xb1, 0x72, 0x2f, 0x10, 0x6f, 0xdd, 0xdd, 0x73, 0xa4, 0xdf, 0x9b, 0xf4, 0x02, 0xf1, 0xac, 0x16,
+ 0x83, 0xc6, 0xbc, 0x40, 0x38, 0x2a, 0xd3, 0xeb, 0xd9, 0x8f, 0x6a, 0x45, 0xdc, 0xcf, 0xa0, 0x5e,
+ 0x8f, 0x44, 0xba, 0xb3, 0x21, 0x47, 0x92, 0xd5, 0xac, 0xb6, 0x6d, 0xa7, 0x25, 0x62, 0xdc, 0xa2,
+ 0x6a, 0x28, 0x83, 0xc6, 0xab, 0x41, 0x54, 0xd2, 0x80, 0x49, 0x93, 0xee, 0xd6, 0x3c, 0x37, 0xa0,
+ 0x8d, 0x80, 0x36, 0x85, 0x2e, 0x23, 0xd5, 0xf9, 0x15, 0xd7, 0xe5, 0x7a, 0xda, 0xca, 0xeb, 0xbf,
+ 0x75, 0xb4, 0x94, 0xf9, 0xee, 0xd1, 0x12, 0x30, 0x10, 0xf7, 0x64, 0x7d, 0x7c, 0xb4, 0x74, 0x86,
+ 0xcd, 0x7f, 0x57, 0x12, 0xab, 0x5b, 0x8c, 0xca, 0x94, 0xfc, 0x20, 0x13, 0xba, 0xe1, 0x90, 0x44,
+ 0x95, 0x4d, 0xf6, 0xa9, 0xec, 0x8d, 0xd4, 0xca, 0x96, 0x94, 0xd1, 0x4e, 0xad, 0x34, 0xb5, 0x12,
+ 0xf2, 0x0e, 0x4c, 0x94, 0xab, 0x65, 0xb7, 0xb3, 0xeb, 0xec, 0xd5, 0xd7, 0x4a, 0xa8, 0x10, 0x09,
+ 0x2f, 0xe6, 0x86, 0x63, 0x35, 0x10, 0x6e, 0xf9, 0xfb, 0xb6, 0x16, 0x09, 0x12, 0xe1, 0x93, 0x5b,
+ 0x30, 0x2d, 0x7f, 0x9a, 0x74, 0xf7, 0x9e, 0x59, 0x45, 0x3d, 0x48, 0xba, 0x8e, 0x87, 0x1c, 0xd8,
+ 0x40, 0xf4, 0x3c, 0x55, 0x3f, 0x8e, 0x91, 0xb1, 0xc5, 0x58, 0xa1, 0xdd, 0x96, 0x7b, 0xc8, 0x9a,
+ 0xb7, 0xe5, 0x50, 0x0f, 0x35, 0x1f, 0xb1, 0x18, 0x9b, 0x61, 0x89, 0x15, 0x38, 0x9a, 0xb8, 0x8d,
+ 0x11, 0x91, 0x0d, 0x98, 0x15, 0x4b, 0xfc, 0xbe, 0xe3, 0x3b, 0x3b, 0x4e, 0xcb, 0x09, 0x0e, 0x17,
+ 0x8a, 0xc8, 0x09, 0xb5, 0x10, 0xf9, 0x5d, 0x3c, 0x08, 0x4b, 0x15, 0x66, 0x49, 0x52, 0xe3, 0x97,
+ 0xb3, 0xf0, 0xdc, 0x20, 0xfd, 0x9f, 0xd4, 0x75, 0x61, 0x76, 0x69, 0x88, 0x33, 0xc3, 0xf1, 0xe2,
+ 0x6c, 0x15, 0xa6, 0x37, 0xbd, 0x3d, 0xbb, 0xe3, 0x7c, 0x03, 0xcf, 0x75, 0xa1, 0x33, 0x0c, 0x0e,
+ 0x86, 0xab, 0x94, 0xe8, 0xab, 0x3d, 0x46, 0xb4, 0xf8, 0x40, 0x88, 0xb9, 0x8f, 0x1b, 0x56, 0x71,
+ 0x03, 0xc6, 0xcb, 0x6e, 0x27, 0xa0, 0x8f, 0x82, 0x58, 0xe8, 0x1c, 0x07, 0xc6, 0x43, 0xe7, 0x24,
+ 0xaa, 0xf1, 0xff, 0x64, 0xe1, 0xdc, 0x40, 0x05, 0x98, 0x6c, 0xe9, 0xa3, 0x76, 0x79, 0x18, 0xad,
+ 0xf9, 0xf8, 0x61, 0x5b, 0x4e, 0xf8, 0x6d, 0x1c, 0xeb, 0xb5, 0xbc, 0xf8, 0x5f, 0x67, 0xc4, 0x20,
+ 0x7d, 0x06, 0xc6, 0xb0, 0xaa, 0x70, 0x88, 0xb8, 0x6d, 0x08, 0xa5, 0xb0, 0xa3, 0xdb, 0x86, 0x38,
+ 0x1a, 0xb9, 0x0e, 0x85, 0xb2, 0xdd, 0x6a, 0x29, 0x81, 0x85, 0xa8, 0xd7, 0x37, 0x10, 0x16, 0x73,
+ 0xf3, 0x91, 0x88, 0xe4, 0x4d, 0x00, 0xfe, 0xb7, 0xb2, 0x57, 0xa0, 0xb0, 0x14, 0x64, 0xb1, 0xed,
+ 0x42, 0x41, 0xc6, 0x14, 0x62, 0x0d, 0x37, 0x8c, 0x80, 0xe2, 0x29, 0xc4, 0x18, 0x40, 0x4b, 0x21,
+ 0xc6, 0x00, 0xc6, 0xaf, 0xe4, 0xe0, 0xf9, 0xc1, 0xa7, 0x38, 0x72, 0x4f, 0x9f, 0x82, 0x57, 0x86,
+ 0x3a, 0xfb, 0x1d, 0x3f, 0x07, 0x32, 0x37, 0x1f, 0x1f, 0x90, 0x4b, 0x49, 0xe7, 0xe2, 0xef, 0x1d,
+ 0x2d, 0x29, 0xbe, 0x63, 0xb7, 0x5d, 0xa7, 0xa3, 0xdc, 0x11, 0x7c, 0x1d, 0xa0, 0x1e, 0xd8, 0x81,
+ 0xd3, 0xb8, 0xbd, 0x7d, 0x47, 0xc6, 0xab, 0xdf, 0x18, 0xae, 0x65, 0x11, 0x1d, 0x97, 0x2b, 0xc2,
+ 0x7c, 0x8e, 0x50, 0xeb, 0xa3, 0x87, 0x07, 0xda, 0x39, 0x35, 0x42, 0x5e, 0xfc, 0x02, 0x14, 0xe3,
+ 0xa4, 0xe4, 0x22, 0xe4, 0xb1, 0x01, 0x8a, 0x87, 0x74, 0x8c, 0x03, 0x96, 0x2f, 0xde, 0x15, 0x6b,
+ 0x67, 0x15, 0xa6, 0xc5, 0xb5, 0xb4, 0x6e, 0x11, 0xc3, 0xef, 0x55, 0xde, 0x6a, 0x27, 0xad, 0x62,
+ 0x31, 0x22, 0xe3, 0x8f, 0x33, 0x70, 0xb6, 0xef, 0xf9, 0x98, 0xd4, 0xf4, 0x09, 0x7b, 0xe9, 0xb8,
+ 0x03, 0xf5, 0xb1, 0x73, 0xb5, 0xf8, 0x63, 0x72, 0xed, 0xbf, 0x0b, 0x93, 0xf5, 0xde, 0x4e, 0xfc,
+ 0x90, 0xc5, 0xa3, 0x97, 0x15, 0xb8, 0xba, 0x83, 0xa9, 0xf8, 0xac, 0xff, 0xf2, 0xe6, 0x5d, 0xb8,
+ 0x55, 0xf0, 0x83, 0x1f, 0xf6, 0x3f, 0x0c, 0x8b, 0xc2, 0xa8, 0x35, 0x75, 0x10, 0x63, 0x44, 0xc6,
+ 0x2f, 0x65, 0xd3, 0x4f, 0xab, 0xec, 0xac, 0x7d, 0x82, 0xd3, 0xea, 0xad, 0x72, 0xed, 0xf8, 0xbe,
+ 0xff, 0x67, 0xb2, 0xef, 0x78, 0x11, 0x29, 0x24, 0x9e, 0x34, 0xef, 0x89, 0x8b, 0x48, 0x29, 0x1d,
+ 0x7d, 0xfd, 0x22, 0x52, 0x22, 0x93, 0x37, 0x60, 0x7c, 0xdd, 0xe5, 0xd1, 0xa4, 0xb2, 0xc7, 0x3c,
+ 0x6e, 0x48, 0x02, 0x55, 0xf1, 0x18, 0x62, 0xb2, 0xb3, 0x85, 0x3e, 0xf1, 0xd2, 0xb9, 0x1b, 0xcf,
+ 0x16, 0xb1, 0xe5, 0xa2, 0x1b, 0xc1, 0x74, 0x32, 0xe3, 0xc7, 0xb2, 0x30, 0xcd, 0x17, 0x2f, 0x37,
+ 0xd2, 0x3e, 0xb5, 0x06, 0xf0, 0xb7, 0x34, 0x03, 0xb8, 0x4c, 0x74, 0xa0, 0x76, 0x6d, 0x28, 0xf3,
+ 0xf7, 0x3e, 0x90, 0x24, 0x0d, 0x31, 0x61, 0x52, 0x85, 0x0e, 0xb6, 0x7c, 0x5f, 0x8b, 0x72, 0x62,
+ 0x08, 0xd9, 0x81, 0xd7, 0x0f, 0xbe, 0xa9, 0xf1, 0x30, 0xfe, 0x52, 0x16, 0xa6, 0x94, 0x8b, 0xca,
+ 0xa7, 0x76, 0xe0, 0xbf, 0xa0, 0x0d, 0xfc, 0x42, 0xe8, 0x90, 0x1c, 0xf6, 0x6c, 0xa8, 0x71, 0xef,
+ 0xc1, 0x6c, 0x82, 0x24, 0x7e, 0xdf, 0x9b, 0x19, 0xe6, 0xbe, 0xf7, 0xb5, 0x64, 0xb0, 0x3e, 0xcf,
+ 0x53, 0x19, 0x06, 0xeb, 0xab, 0xd9, 0x01, 0x7e, 0x22, 0x0b, 0xf3, 0xe2, 0x17, 0x66, 0xa4, 0xe1,
+ 0xd2, 0xfb, 0xa9, 0x9d, 0x8b, 0x92, 0x36, 0x17, 0x4b, 0xfa, 0x5c, 0x28, 0x1d, 0xec, 0x3f, 0x25,
+ 0xc6, 0x5f, 0x00, 0x58, 0xe8, 0x47, 0x30, 0x74, 0xdc, 0x4f, 0xe4, 0x55, 0x9d, 0x1d, 0xc2, 0xab,
+ 0x7a, 0x1d, 0x8a, 0x58, 0x95, 0xc8, 0x5f, 0xe1, 0xb3, 0x33, 0x40, 0x2e, 0x52, 0xb8, 0x79, 0xda,
+ 0x20, 0x91, 0x03, 0xc3, 0x8f, 0x1d, 0x02, 0x12, 0x94, 0xe4, 0xe7, 0x33, 0x30, 0x8d, 0xc0, 0xd5,
+ 0x07, 0xb4, 0x13, 0x20, 0xb3, 0xbc, 0x70, 0x02, 0x0e, 0xed, 0xe3, 0xf5, 0xc0, 0x73, 0x3a, 0x7b,
+ 0xc2, 0x40, 0xbe, 0x23, 0x0c, 0xe4, 0x6f, 0x73, 0xc3, 0xfe, 0x95, 0x86, 0xdb, 0xbe, 0xba, 0xe7,
+ 0xd9, 0x0f, 0x1c, 0x7e, 0x07, 0x6f, 0xb7, 0xae, 0x46, 0x99, 0x95, 0xbb, 0x4e, 0x2c, 0x57, 0xb2,
+ 0x60, 0x85, 0x97, 0x0f, 0xbc, 0xa1, 0x14, 0xab, 0x8d, 0x9f, 0x55, 0xf4, 0x16, 0x91, 0x1f, 0x80,
+ 0x33, 0x3c, 0x38, 0x9d, 0xa9, 0xbc, 0x4e, 0xa7, 0xe7, 0xf6, 0xfc, 0x15, 0xbb, 0x71, 0xc0, 0xf6,
+ 0x3d, 0x1e, 0xc8, 0x80, 0x3d, 0x6f, 0x84, 0x85, 0xd6, 0x0e, 0x2f, 0xd5, 0x02, 0xb7, 0xd2, 0x19,
+ 0x90, 0x35, 0x98, 0xe5, 0x45, 0xa5, 0x5e, 0xe0, 0xd6, 0x1b, 0x76, 0xcb, 0xe9, 0xec, 0xe1, 0x99,
+ 0xba, 0xc0, 0xf7, 0x63, 0xbb, 0x17, 0xb8, 0x96, 0xcf, 0xe1, 0xea, 0xd1, 0x25, 0x41, 0x44, 0xaa,
+ 0x30, 0x63, 0x52, 0xbb, 0x79, 0xd7, 0x7e, 0x54, 0xb6, 0xbb, 0x76, 0x83, 0x1d, 0x84, 0x0a, 0x78,
+ 0x99, 0x84, 0x67, 0x33, 0x8f, 0xda, 0x4d, 0xab, 0x6d, 0x3f, 0xb2, 0x1a, 0xa2, 0x50, 0xb7, 0x61,
+ 0x69, 0x74, 0x21, 0x2b, 0xa7, 0x13, 0xb2, 0x1a, 0x8f, 0xb3, 0x72, 0x3a, 0xfd, 0x59, 0x45, 0x74,
+ 0x92, 0xd5, 0x96, 0xed, 0xed, 0xd1, 0x80, 0xbb, 0xb0, 0xb1, 0xf3, 0x78, 0x46, 0x61, 0x15, 0x60,
+ 0x99, 0x85, 0xee, 0x6c, 0x71, 0x56, 0x0a, 0x1d, 0x5b, 0x79, 0xdb, 0x9e, 0x13, 0x50, 0xb5, 0x87,
+ 0x13, 0xd8, 0x2c, 0x1c, 0x7f, 0x74, 0xfe, 0xeb, 0xd7, 0xc5, 0x04, 0x65, 0xc4, 0x4d, 0xe9, 0xe4,
+ 0x64, 0x82, 0x5b, 0x7a, 0x2f, 0x13, 0x94, 0x21, 0x37, 0xb5, 0x9f, 0x53, 0xd8, 0x4f, 0x85, 0x5b,
+ 0x9f, 0x8e, 0x26, 0x28, 0xc9, 0x06, 0x1b, 0xb4, 0x80, 0x76, 0xd8, 0x8a, 0x16, 0x2e, 0x7c, 0xd3,
+ 0xd8, 0xb4, 0x17, 0x85, 0x1f, 0x4a, 0xd1, 0x93, 0xc5, 0x56, 0x8a, 0x43, 0x5f, 0x9c, 0x98, 0xfc,
+ 0x19, 0x98, 0xb9, 0xe7, 0xd3, 0x9b, 0xd5, 0x5a, 0x5d, 0x86, 0xe3, 0xe3, 0x69, 0x7b, 0x7a, 0xf9,
+ 0xda, 0x31, 0x42, 0xe7, 0x8a, 0x4a, 0x83, 0xd9, 0x8a, 0xf9, 0xbc, 0xf5, 0x7c, 0x6a, 0xed, 0x3a,
+ 0x5d, 0x3f, 0x4c, 0x0c, 0xa2, 0xce, 0x5b, 0xac, 0x2a, 0x63, 0x0d, 0x66, 0x13, 0x6c, 0xc8, 0x34,
+ 0x00, 0x03, 0x5a, 0xf7, 0x36, 0xea, 0xab, 0x5b, 0xc5, 0x67, 0x48, 0x11, 0x26, 0xf1, 0xf7, 0xea,
+ 0x46, 0x69, 0x65, 0x7d, 0xb5, 0x52, 0xcc, 0x90, 0x59, 0x98, 0x42, 0x48, 0xa5, 0x5a, 0xe7, 0xa0,
+ 0x2c, 0xcf, 0x55, 0x69, 0x16, 0xf9, 0xa7, 0x1b, 0xb0, 0x0f, 0x00, 0xf7, 0x14, 0xe3, 0xaf, 0x67,
+ 0xe1, 0xac, 0xdc, 0x56, 0x68, 0xf0, 0xd0, 0xf5, 0x0e, 0x9c, 0xce, 0xde, 0x53, 0xbe, 0x3b, 0xdc,
+ 0xd4, 0x76, 0x87, 0x17, 0x63, 0x3b, 0x75, 0xac, 0x97, 0x03, 0xb6, 0x88, 0xff, 0xa5, 0x00, 0xe7,
+ 0x06, 0x52, 0x91, 0x2f, 0xb2, 0xdd, 0xdc, 0xa1, 0x9d, 0xa0, 0xda, 0x6c, 0xd1, 0x2d, 0xa7, 0x4d,
+ 0xdd, 0x5e, 0x20, 0x5c, 0x46, 0x2f, 0xe0, 0x01, 0x17, 0x0b, 0x2d, 0xa7, 0xd9, 0xa2, 0x56, 0xc0,
+ 0x8b, 0xb5, 0xe5, 0x96, 0xa4, 0x66, 0x2c, 0xc3, 0x24, 0xea, 0xd5, 0x4e, 0x40, 0xbd, 0x07, 0xe8,
+ 0x9c, 0x12, 0xb2, 0x3c, 0xa0, 0xb4, 0x6b, 0xd9, 0xac, 0xd4, 0x72, 0x44, 0xb1, 0xce, 0x32, 0x41,
+ 0x4d, 0x6e, 0x2a, 0x2c, 0xcb, 0x4c, 0x1d, 0xbe, 0x6b, 0x3f, 0x12, 0xb7, 0xe5, 0x22, 0xa9, 0x51,
+ 0xc8, 0x92, 0xc7, 0x1a, 0xb5, 0xed, 0x47, 0x66, 0x92, 0x84, 0x7c, 0x05, 0x4e, 0x89, 0x0d, 0x48,
+ 0xc4, 0x8a, 0xca, 0x1e, 0xf3, 0x48, 0xd4, 0x97, 0x1f, 0x1f, 0x2d, 0x9d, 0x91, 0x29, 0x9c, 0x64,
+ 0x74, 0x70, 0x5a, 0xaf, 0xd3, 0xb9, 0x90, 0x2d, 0xb6, 0x21, 0xc7, 0x86, 0xe3, 0x2e, 0xf5, 0x7d,
+ 0x7b, 0x4f, 0xde, 0xac, 0x73, 0xef, 0x7a, 0x65, 0x30, 0xad, 0x36, 0x2f, 0x37, 0xfb, 0x52, 0x92,
+ 0x35, 0x98, 0xde, 0xa6, 0x3b, 0xea, 0xfc, 0x8c, 0x86, 0xa2, 0xaa, 0xf8, 0x90, 0xee, 0xf4, 0x9f,
+ 0x9c, 0x18, 0x1d, 0x71, 0xd0, 0x60, 0xf6, 0xe8, 0x70, 0xdd, 0xf1, 0x03, 0xda, 0xa1, 0x1e, 0xe6,
+ 0x20, 0x18, 0x43, 0x61, 0xb0, 0x10, 0x69, 0xc8, 0x7a, 0xf9, 0xca, 0x0b, 0x8f, 0x8f, 0x96, 0xce,
+ 0xf1, 0x68, 0x92, 0x96, 0x80, 0x5b, 0xb1, 0xbc, 0xe3, 0x49, 0xae, 0xe4, 0x6b, 0x30, 0x63, 0xba,
+ 0xbd, 0xc0, 0xe9, 0xec, 0xd5, 0x03, 0xcf, 0x0e, 0xe8, 0x1e, 0xdf, 0x90, 0xa2, 0x64, 0x07, 0xb1,
+ 0x52, 0x71, 0xd7, 0xc2, 0x81, 0x96, 0x2f, 0xa0, 0xda, 0x8e, 0xa0, 0x13, 0x90, 0xaf, 0xc2, 0x34,
+ 0x8f, 0x12, 0x0c, 0x2b, 0x18, 0xd7, 0x72, 0xa6, 0xea, 0x85, 0xf7, 0xaf, 0xf1, 0x03, 0x2a, 0x8f,
+ 0x36, 0x4c, 0xab, 0x20, 0xc6, 0x8d, 0x7c, 0x28, 0x06, 0xab, 0xe6, 0x74, 0xf6, 0xc2, 0x65, 0x0c,
+ 0x38, 0xf2, 0xaf, 0x47, 0x43, 0xd2, 0x65, 0xcd, 0x95, 0xcb, 0xb8, 0x8f, 0xa7, 0x46, 0x92, 0x0f,
+ 0x09, 0xe0, 0x5c, 0xc9, 0xf7, 0x1d, 0x3f, 0x10, 0x8e, 0xd5, 0xab, 0x8f, 0x68, 0xa3, 0xc7, 0x90,
+ 0xb7, 0x5d, 0xef, 0x80, 0x7a, 0xdc, 0xb5, 0x6f, 0x64, 0xe5, 0xca, 0xe3, 0xa3, 0xa5, 0x57, 0x6c,
+ 0x44, 0xb4, 0x84, 0x2f, 0xb6, 0x45, 0x25, 0xaa, 0xf5, 0x90, 0xe3, 0x2a, 0x7d, 0x18, 0xcc, 0x94,
+ 0x7c, 0x15, 0x4e, 0x97, 0x6d, 0x9f, 0x56, 0x3b, 0x3e, 0xed, 0xf8, 0x4e, 0xe0, 0x3c, 0xa0, 0x62,
+ 0x50, 0x71, 0xf3, 0x2b, 0x60, 0x86, 0x76, 0xa3, 0x81, 0x8f, 0x39, 0x44, 0x28, 0x96, 0x98, 0x14,
+ 0xa5, 0x9a, 0x3e, 0x5c, 0x8c, 0xa3, 0x0c, 0x14, 0xe3, 0xc3, 0x4e, 0xbe, 0x04, 0xe3, 0xdc, 0x25,
+ 0x81, 0xfa, 0xfb, 0x22, 0xc0, 0x4d, 0xde, 0x70, 0x87, 0x70, 0x9d, 0x48, 0x84, 0x24, 0x70, 0x87,
+ 0x07, 0xaa, 0xde, 0xd7, 0x62, 0x48, 0x82, 0x24, 0x22, 0x4d, 0x98, 0xe4, 0x23, 0x4b, 0x31, 0x2b,
+ 0x89, 0xf0, 0x4c, 0x7b, 0x41, 0x5d, 0xc9, 0xa2, 0x28, 0xc6, 0x1f, 0x4d, 0xde, 0x62, 0xfe, 0x38,
+ 0x82, 0x56, 0x85, 0xc6, 0x75, 0x05, 0xa0, 0x20, 0x09, 0x8d, 0xb3, 0x70, 0xa6, 0x4f, 0x9b, 0x8d,
+ 0x07, 0x78, 0x0d, 0xd6, 0xa7, 0x46, 0xf2, 0x25, 0x98, 0x47, 0xc2, 0xb2, 0xdb, 0xe9, 0xd0, 0x46,
+ 0x80, 0xa2, 0x43, 0x9a, 0x8e, 0x72, 0xfc, 0xae, 0x95, 0xf7, 0xb7, 0x11, 0x22, 0x58, 0x71, 0x0b,
+ 0x52, 0x2a, 0x07, 0xe3, 0x67, 0xb2, 0xb0, 0x20, 0xa4, 0x91, 0x49, 0x1b, 0xae, 0xd7, 0x7c, 0xfa,
+ 0x77, 0xbf, 0x55, 0x6d, 0xf7, 0xbb, 0x10, 0x46, 0x34, 0xa7, 0x75, 0x72, 0xc0, 0xe6, 0xf7, 0x4b,
+ 0x19, 0x78, 0x6e, 0x10, 0x11, 0x1b, 0x9d, 0x30, 0x0b, 0xcb, 0x78, 0x22, 0xdb, 0x4a, 0x17, 0xe6,
+ 0x70, 0x42, 0xcb, 0xfb, 0xb4, 0x71, 0xe0, 0xaf, 0xb9, 0x7e, 0x80, 0x8e, 0xb1, 0xd9, 0x3e, 0x17,
+ 0x35, 0xaf, 0xa5, 0x5e, 0xd4, 0x9c, 0xe6, 0xab, 0xac, 0x81, 0x3c, 0x78, 0x9e, 0x98, 0x03, 0x7a,
+ 0xe8, 0x9b, 0x69, 0xac, 0xd1, 0xc9, 0xb1, 0xd4, 0x0b, 0xf6, 0x6b, 0x1e, 0xdd, 0xa5, 0x1e, 0xed,
+ 0x34, 0xe8, 0xf7, 0x99, 0x93, 0xa3, 0xde, 0xb9, 0xa1, 0xac, 0x0d, 0xbf, 0x34, 0x09, 0xf3, 0x69,
+ 0x64, 0x6c, 0x5c, 0x94, 0x03, 0x6e, 0xfc, 0xdd, 0x97, 0x3f, 0x9f, 0x81, 0xc9, 0x3a, 0x6d, 0xb8,
+ 0x9d, 0xe6, 0x4d, 0xbc, 0x0e, 0x17, 0xa3, 0x63, 0xf1, 0x0d, 0x9e, 0xc1, 0xad, 0xdd, 0xd8, 0x3d,
+ 0xf9, 0xf7, 0x8e, 0x96, 0xde, 0x1f, 0xee, 0x5c, 0xd9, 0x70, 0x31, 0x2a, 0x39, 0xc0, 0x64, 0xa4,
+ 0x61, 0x15, 0x68, 0xd9, 0xd6, 0x2a, 0x25, 0x2b, 0x30, 0x25, 0x3e, 0x57, 0x57, 0x4d, 0xc2, 0xc3,
+ 0x83, 0xbe, 0x65, 0x41, 0x22, 0xeb, 0x98, 0x46, 0x42, 0xae, 0x43, 0xee, 0xde, 0xf2, 0x4d, 0x31,
+ 0x07, 0x32, 0x9d, 0xeb, 0xbd, 0xe5, 0x9b, 0x68, 0xba, 0x62, 0xc7, 0x81, 0xa9, 0xde, 0xb2, 0x76,
+ 0x43, 0x7d, 0x6f, 0xf9, 0x26, 0xf9, 0x73, 0x70, 0xaa, 0xe2, 0xf8, 0xa2, 0x0a, 0xee, 0x6e, 0xdb,
+ 0xc4, 0xf0, 0x92, 0xd1, 0x3e, 0xab, 0xf7, 0x73, 0xa9, 0xab, 0xf7, 0x85, 0x66, 0xc8, 0xc4, 0xe2,
+ 0xbe, 0xbc, 0xcd, 0x78, 0xb2, 0xa1, 0xf4, 0x7a, 0xc8, 0x47, 0x30, 0x8d, 0xa6, 0x57, 0xf4, 0x40,
+ 0xc6, 0xe4, 0x88, 0x63, 0x7d, 0x6a, 0xfe, 0x4c, 0x6a, 0xcd, 0x8b, 0x68, 0xc9, 0xb5, 0xd0, 0x8f,
+ 0x19, 0x13, 0x29, 0x6a, 0x27, 0x74, 0x8d, 0x33, 0xb9, 0x0d, 0x33, 0x42, 0x55, 0xda, 0xdc, 0xdd,
+ 0xda, 0xa7, 0x15, 0xfb, 0x50, 0x5c, 0x2e, 0xe3, 0xe9, 0x4b, 0xe8, 0x57, 0x96, 0xbb, 0x6b, 0x05,
+ 0xfb, 0xd4, 0x6a, 0xda, 0x9a, 0x52, 0x11, 0x23, 0x24, 0x3f, 0x08, 0x13, 0xeb, 0x6e, 0x83, 0x69,
+ 0xc9, 0x28, 0x19, 0xf8, 0x7d, 0xf3, 0x07, 0xf8, 0x9c, 0x08, 0x07, 0xc7, 0x54, 0x9f, 0xef, 0x1d,
+ 0x2d, 0xbd, 0x75, 0xd2, 0x45, 0xa3, 0x54, 0x60, 0xaa, 0xb5, 0x91, 0x32, 0x14, 0xb6, 0xe9, 0x0e,
+ 0xeb, 0x6d, 0xfc, 0xa9, 0x01, 0x09, 0x16, 0xee, 0x24, 0xe2, 0x97, 0xe6, 0x4e, 0x22, 0x60, 0xc4,
+ 0x83, 0x59, 0x1c, 0x9f, 0x9a, 0xed, 0xfb, 0x0f, 0x5d, 0xaf, 0x89, 0x39, 0x65, 0xfb, 0x5d, 0x65,
+ 0x2f, 0xa7, 0x0e, 0xfe, 0x73, 0x7c, 0xf0, 0xbb, 0x0a, 0x07, 0x55, 0xd9, 0x4b, 0xb0, 0x27, 0x5f,
+ 0x83, 0x69, 0x93, 0x7e, 0xbd, 0xe7, 0x78, 0xf4, 0xee, 0xcd, 0x12, 0x7e, 0x95, 0x93, 0x5a, 0x90,
+ 0x8e, 0x5e, 0xc8, 0x35, 0x4a, 0x8f, 0xc3, 0xa4, 0xb5, 0xc8, 0x6a, 0xef, 0xda, 0xfa, 0x6d, 0x81,
+ 0x4a, 0x42, 0x6a, 0x30, 0x51, 0xa1, 0x0f, 0x9c, 0x06, 0xc5, 0x50, 0x02, 0xe1, 0xca, 0x17, 0xe6,
+ 0x4a, 0x8f, 0x4a, 0xb8, 0xdd, 0xa4, 0x89, 0x00, 0x1e, 0x98, 0xa0, 0x7b, 0x8b, 0x85, 0x88, 0xe4,
+ 0x06, 0xe4, 0xaa, 0x95, 0x9a, 0xf0, 0xe4, 0x93, 0x1e, 0xfa, 0xd5, 0x66, 0x4d, 0x66, 0x96, 0x46,
+ 0xe7, 0x0f, 0xa7, 0xa9, 0xf9, 0x01, 0x56, 0x2b, 0x35, 0xb2, 0x0b, 0x53, 0x38, 0x00, 0x6b, 0xd4,
+ 0xe6, 0x63, 0x3b, 0xd3, 0x67, 0x6c, 0xaf, 0xa4, 0x8e, 0xed, 0x02, 0x1f, 0xdb, 0x7d, 0x41, 0xad,
+ 0xa5, 0xca, 0x55, 0xd9, 0x32, 0xf5, 0x53, 0xa4, 0xef, 0x96, 0xc9, 0x62, 0xb7, 0xd6, 0xf1, 0x72,
+ 0x5b, 0xa8, 0x9f, 0x32, 0xdb, 0x77, 0x98, 0x71, 0xb6, 0xaf, 0xa3, 0x70, 0x92, 0x0f, 0xf9, 0x02,
+ 0xe4, 0x37, 0x0f, 0x02, 0x7b, 0x61, 0x56, 0x1b, 0x47, 0x06, 0x92, 0xdd, 0x47, 0x8b, 0xa1, 0x7b,
+ 0xa0, 0xa5, 0xa3, 0x40, 0x1a, 0xb2, 0x0c, 0x63, 0xb5, 0xea, 0xfd, 0x7a, 0xcb, 0x0d, 0x16, 0x48,
+ 0x78, 0xa6, 0x21, 0x5d, 0xe7, 0x81, 0xe5, 0xb7, 0x5c, 0xfd, 0x09, 0x00, 0x89, 0xc8, 0xa6, 0x6f,
+ 0xcd, 0xf6, 0x9a, 0x0f, 0x6d, 0x0f, 0x23, 0xc0, 0xe6, 0xb4, 0x6a, 0x95, 0x12, 0x3e, 0x7d, 0xfb,
+ 0x02, 0x10, 0x0b, 0x0b, 0x53, 0x59, 0x08, 0x6b, 0xc0, 0xac, 0x58, 0x26, 0xa2, 0x6b, 0x77, 0x6f,
+ 0x96, 0x8c, 0xff, 0x38, 0x83, 0x02, 0x93, 0xbc, 0x82, 0x11, 0xeb, 0xe1, 0x05, 0x2f, 0xda, 0x35,
+ 0xed, 0x6e, 0x2c, 0xc1, 0x22, 0x47, 0x21, 0xaf, 0xc1, 0xe8, 0x4d, 0xbb, 0x41, 0x03, 0x79, 0xb1,
+ 0x83, 0xc8, 0xbb, 0x08, 0x51, 0x8d, 0xa0, 0x1c, 0x87, 0xe9, 0x72, 0x7c, 0x21, 0x95, 0xa2, 0xe7,
+ 0xda, 0xca, 0x25, 0x79, 0xaf, 0x83, 0xba, 0x9c, 0x58, 0x80, 0xca, 0x7b, 0x6e, 0x31, 0x1f, 0xc8,
+ 0x54, 0x0e, 0xc6, 0x1f, 0x66, 0x22, 0x09, 0x40, 0x5e, 0x86, 0xbc, 0x59, 0x0b, 0xdb, 0xcf, 0xa3,
+ 0xa1, 0x62, 0xcd, 0x47, 0x04, 0xf2, 0x21, 0x9c, 0x52, 0xf8, 0x24, 0x1c, 0x32, 0x5f, 0xc2, 0x70,
+ 0x1d, 0xa5, 0x25, 0xe9, 0x5e, 0x99, 0xe9, 0x3c, 0x50, 0x71, 0x8d, 0x0a, 0x2a, 0xb4, 0xe3, 0x70,
+ 0xde, 0x4a, 0x67, 0x55, 0xde, 0x4d, 0x44, 0x88, 0x77, 0x36, 0x8d, 0x03, 0x8f, 0xd8, 0x31, 0x7e,
+ 0x2d, 0xa3, 0x7d, 0xd9, 0xe1, 0x23, 0x57, 0x99, 0x63, 0x1e, 0xb9, 0x7a, 0x13, 0xa0, 0xd4, 0x0b,
+ 0xdc, 0xd5, 0x8e, 0xe7, 0xb6, 0xb8, 0x75, 0x41, 0xe4, 0x18, 0x45, 0x9b, 0x29, 0x45, 0xb0, 0x16,
+ 0x58, 0x10, 0x22, 0xa7, 0xfa, 0xae, 0xe6, 0x3e, 0xae, 0xef, 0xaa, 0xf1, 0xdb, 0x19, 0x6d, 0x6d,
+ 0x33, 0x8d, 0x4c, 0x7e, 0x1e, 0x8a, 0x6b, 0x41, 0xf2, 0xf3, 0x88, 0x3e, 0x8e, 0x7f, 0x3b, 0x03,
+ 0xa7, 0xb9, 0x13, 0xe8, 0x46, 0xaf, 0xbd, 0x43, 0xbd, 0xfb, 0x76, 0xcb, 0x69, 0xf2, 0x88, 0x34,
+ 0xae, 0x6c, 0x5e, 0x4a, 0x7e, 0x28, 0xe9, 0xf8, 0xfc, 0x00, 0xc7, 0x9d, 0x52, 0xad, 0x0e, 0x16,
+ 0x5a, 0x0f, 0xc2, 0x52, 0xf5, 0x00, 0x97, 0x4e, 0x6f, 0xfc, 0x72, 0x06, 0x5e, 0x38, 0xb6, 0x16,
+ 0x72, 0x15, 0xc6, 0x64, 0x72, 0xd7, 0x0c, 0x0e, 0x3c, 0x3a, 0x64, 0x25, 0x13, 0xbb, 0x4a, 0x2c,
+ 0xf2, 0x65, 0x38, 0xa5, 0xb2, 0xda, 0xf2, 0x6c, 0x47, 0x4d, 0xa1, 0x9a, 0xd2, 0xea, 0x80, 0xa1,
+ 0xc4, 0x35, 0xa3, 0x74, 0x26, 0xc6, 0xff, 0x95, 0x51, 0x1e, 0xc4, 0x7b, 0x4a, 0xf5, 0xe5, 0x1b,
+ 0x9a, 0xbe, 0x2c, 0x73, 0x05, 0x85, 0xbd, 0x62, 0x65, 0xa9, 0x67, 0x9c, 0x19, 0xc5, 0xb1, 0x10,
+ 0x01, 0xdf, 0xca, 0xc2, 0xc4, 0x3d, 0x9f, 0x7a, 0xfc, 0x82, 0xf3, 0xfb, 0x2b, 0x27, 0x4c, 0xd8,
+ 0xaf, 0xa1, 0xb2, 0x76, 0xfc, 0x7e, 0x06, 0x0d, 0xdf, 0x2a, 0x05, 0x1b, 0x0d, 0xe5, 0xa9, 0x0b,
+ 0x1c, 0x0d, 0x7c, 0xe4, 0x02, 0xa1, 0x3c, 0xb3, 0xc7, 0xba, 0xfe, 0xea, 0x0d, 0x3e, 0x7d, 0xb4,
+ 0x4e, 0xde, 0x87, 0x91, 0x7b, 0x68, 0xc6, 0xd3, 0xa3, 0x8f, 0x43, 0xfe, 0x58, 0xc8, 0x85, 0x74,
+ 0x8f, 0xfd, 0xa9, 0xee, 0x31, 0x58, 0x46, 0xea, 0x30, 0x56, 0xf6, 0x28, 0x3e, 0x62, 0x97, 0x1f,
+ 0x3e, 0x82, 0xae, 0xc1, 0x49, 0xe2, 0x11, 0x74, 0x82, 0x93, 0xf1, 0xd3, 0x59, 0x20, 0x51, 0x1f,
+ 0x31, 0xfb, 0xbb, 0xff, 0xd4, 0x4e, 0xfa, 0x7b, 0xda, 0xa4, 0x9f, 0x4b, 0x4c, 0x3a, 0xef, 0xde,
+ 0x50, 0x73, 0xff, 0xeb, 0x19, 0x38, 0x9d, 0x4e, 0x48, 0x2e, 0xc0, 0xe8, 0xe6, 0x56, 0x4d, 0x06,
+ 0xb0, 0x8b, 0xae, 0xb8, 0x5d, 0x3c, 0x97, 0x9b, 0xa2, 0x88, 0xbc, 0x0e, 0xa3, 0x5f, 0x34, 0xcb,
+ 0x6c, 0x1f, 0x52, 0x32, 0xad, 0x7e, 0xdd, 0xb3, 0x1a, 0xfa, 0x56, 0x24, 0x90, 0xd4, 0xb9, 0xcd,
+ 0x3d, 0xb1, 0xb9, 0xfd, 0x89, 0x2c, 0xcc, 0x94, 0x1a, 0x0d, 0xea, 0xfb, 0x4c, 0xc9, 0xa1, 0x7e,
+ 0xf0, 0xd4, 0x4e, 0x6c, 0x7a, 0x68, 0xba, 0xd6, 0xb7, 0xa1, 0x66, 0xf5, 0x37, 0x33, 0x70, 0x4a,
+ 0x52, 0x3d, 0x70, 0xe8, 0xc3, 0xad, 0x7d, 0x8f, 0xfa, 0xfb, 0x6e, 0xab, 0x39, 0x74, 0x3a, 0x67,
+ 0xa6, 0xe8, 0x61, 0x8e, 0x46, 0xf5, 0xb6, 0x7b, 0x17, 0x21, 0x9a, 0xa2, 0xc7, 0xf3, 0x38, 0x5e,
+ 0x85, 0xb1, 0x52, 0xb7, 0xeb, 0xb9, 0x0f, 0xf8, 0x67, 0x3f, 0x25, 0x02, 0x0a, 0x39, 0x48, 0x0b,
+ 0x40, 0xe4, 0x20, 0xd6, 0x8c, 0x0a, 0xed, 0xf0, 0x4c, 0x3a, 0x53, 0xbc, 0x19, 0x4d, 0xda, 0x51,
+ 0x75, 0x58, 0x2c, 0x37, 0xea, 0x40, 0x6a, 0x9e, 0xdb, 0x76, 0x03, 0xda, 0xe4, 0xfd, 0xc1, 0xb8,
+ 0xcd, 0x63, 0x93, 0x80, 0x6c, 0x39, 0x41, 0x4b, 0x4b, 0x02, 0x12, 0x30, 0x80, 0xc9, 0xe1, 0xc6,
+ 0xff, 0x3e, 0x02, 0x93, 0xea, 0xe8, 0x10, 0x83, 0xe7, 0x68, 0x75, 0x3d, 0x35, 0x78, 0xd8, 0x46,
+ 0x88, 0x29, 0x4a, 0xa2, 0x98, 0xfb, 0xec, 0xb1, 0x31, 0xf7, 0xdb, 0x30, 0x55, 0xf3, 0xdc, 0xae,
+ 0xeb, 0xd3, 0x26, 0x7f, 0xdc, 0x94, 0x8b, 0xc2, 0x39, 0xe5, 0x8c, 0xc7, 0x26, 0x12, 0xef, 0x09,
+ 0xd1, 0xc2, 0xd1, 0x15, 0xd8, 0x56, 0xfc, 0xe9, 0x53, 0x9d, 0x0f, 0x77, 0x41, 0xb0, 0x7d, 0x91,
+ 0x30, 0x2b, 0x74, 0x41, 0x60, 0x10, 0xdd, 0x05, 0x81, 0x41, 0xd4, 0x6f, 0x6d, 0xe4, 0x49, 0x7d,
+ 0x6b, 0xe4, 0xa7, 0x33, 0x30, 0x51, 0xea, 0x74, 0x44, 0x2c, 0xff, 0x31, 0xc1, 0x8c, 0x5f, 0x16,
+ 0x5e, 0x08, 0x6f, 0x7d, 0x2c, 0x2f, 0x04, 0xd4, 0x5b, 0x7c, 0xd4, 0x54, 0xa3, 0x0a, 0xd5, 0x53,
+ 0x8e, 0xd2, 0x0e, 0xf2, 0x16, 0x14, 0xc3, 0x45, 0x5e, 0xed, 0x34, 0xe9, 0x23, 0xea, 0x2f, 0x8c,
+ 0x9d, 0xcf, 0x5d, 0x9a, 0x12, 0xa9, 0xf2, 0x54, 0xcd, 0x34, 0x8e, 0x48, 0xb6, 0x00, 0xec, 0x70,
+ 0x75, 0xc5, 0x9e, 0x95, 0x49, 0x2e, 0x3f, 0xa1, 0x3d, 0xe3, 0x6f, 0xbc, 0xe8, 0x51, 0xb5, 0xe7,
+ 0x88, 0x0f, 0x69, 0xc3, 0x0c, 0x7f, 0xd3, 0x05, 0xdf, 0x7a, 0xc5, 0x8c, 0xb0, 0x70, 0xec, 0x3c,
+ 0xbc, 0x2c, 0x6c, 0x55, 0xcf, 0x8a, 0x97, 0x62, 0xf0, 0xf9, 0x58, 0x2b, 0x25, 0x3d, 0x6c, 0x9c,
+ 0x37, 0x4f, 0x4c, 0x68, 0x9e, 0x49, 0xb6, 0x97, 0x2f, 0xfa, 0x9f, 0xc8, 0xc0, 0x69, 0x75, 0xd1,
+ 0xd7, 0x7b, 0x3b, 0x6d, 0x07, 0xcf, 0x82, 0xe4, 0x0a, 0x8c, 0x8b, 0x35, 0x19, 0x1e, 0xa2, 0x92,
+ 0x89, 0x6d, 0x23, 0x14, 0xb2, 0xca, 0x96, 0x21, 0xe3, 0x21, 0xb4, 0xee, 0xb9, 0x98, 0x9c, 0x62,
+ 0x45, 0xd1, 0x7b, 0x61, 0x1e, 0xfe, 0xd6, 0xd7, 0x27, 0x83, 0x18, 0xef, 0xc2, 0xac, 0x3e, 0x13,
+ 0x75, 0x1a, 0x90, 0xcb, 0x30, 0x26, 0xa7, 0x2f, 0x93, 0x3e, 0x7d, 0xb2, 0xdc, 0xd8, 0x06, 0x92,
+ 0xa0, 0xf7, 0xd1, 0x5d, 0x88, 0x06, 0xd2, 0x9d, 0x4d, 0x5e, 0xd6, 0x25, 0x10, 0xc3, 0xb7, 0xb4,
+ 0x27, 0x34, 0xff, 0x55, 0x46, 0x6a, 0xfc, 0xe1, 0x34, 0xcc, 0xa5, 0xc8, 0xdc, 0x63, 0x74, 0xa2,
+ 0x25, 0x5d, 0x40, 0x8c, 0x87, 0xb1, 0xd0, 0x52, 0x2c, 0xbc, 0x2b, 0xdf, 0x3a, 0x1e, 0x20, 0x0e,
+ 0x06, 0x3d, 0x80, 0xfc, 0x69, 0xe8, 0x45, 0x6a, 0xba, 0x82, 0x91, 0x27, 0x96, 0xae, 0x60, 0x05,
+ 0xa6, 0x44, 0xaf, 0x84, 0xb8, 0x1a, 0x8d, 0xac, 0xb9, 0x1e, 0x2f, 0xb0, 0x12, 0x62, 0x4b, 0x27,
+ 0xe1, 0x3c, 0x7c, 0xb7, 0xf5, 0x80, 0x0a, 0x1e, 0x63, 0x2a, 0x0f, 0x2c, 0x48, 0xe5, 0xa1, 0x90,
+ 0x90, 0xff, 0x10, 0x9f, 0xb8, 0x40, 0x88, 0x2a, 0xb3, 0x0a, 0x83, 0x64, 0x56, 0xf3, 0xc9, 0xc8,
+ 0xac, 0x73, 0xb2, 0x8d, 0xe9, 0xb2, 0x2b, 0xa5, 0x59, 0xe4, 0x17, 0x33, 0x30, 0xcb, 0x63, 0xe6,
+ 0xd5, 0xc6, 0x0e, 0x8c, 0x83, 0x6e, 0x3c, 0x99, 0xc6, 0x3e, 0x27, 0xb2, 0xd3, 0xa7, 0xb7, 0x35,
+ 0xd9, 0x28, 0xf2, 0x03, 0x00, 0xe1, 0x17, 0xe5, 0x2f, 0x00, 0x7e, 0x6a, 0xcf, 0xa5, 0x48, 0x81,
+ 0x10, 0x29, 0xca, 0xa4, 0x1b, 0x84, 0x74, 0xda, 0xc3, 0x26, 0x21, 0x94, 0xfc, 0x39, 0x98, 0x67,
+ 0xdf, 0x4b, 0x08, 0x11, 0x19, 0x3e, 0x16, 0x26, 0xb0, 0x96, 0xcf, 0xf6, 0xd7, 0x89, 0xae, 0xa4,
+ 0x91, 0xf1, 0xbc, 0x7f, 0xd1, 0x83, 0x6e, 0x81, 0x1a, 0x0c, 0x9c, 0x5a, 0x11, 0xa6, 0xcc, 0xc1,
+ 0xd6, 0xf3, 0x6c, 0xb7, 0x7d, 0xe4, 0xdb, 0x59, 0xf9, 0x2d, 0x70, 0xf9, 0xe6, 0xeb, 0xc1, 0x6c,
+ 0x08, 0x22, 0x5f, 0x04, 0x12, 0x06, 0x9b, 0x73, 0x18, 0x95, 0x99, 0x70, 0xb9, 0x69, 0x37, 0x0a,
+ 0x5a, 0xf7, 0x64, 0xb1, 0xba, 0x48, 0x92, 0xc4, 0x84, 0xc2, 0xbc, 0xe8, 0x34, 0x83, 0xca, 0x27,
+ 0x34, 0xfc, 0x85, 0x69, 0x2d, 0x7f, 0x4a, 0x54, 0x12, 0xbd, 0xfc, 0xa6, 0xbc, 0xc3, 0xa1, 0x99,
+ 0x9c, 0xd2, 0xd8, 0x91, 0x1b, 0x30, 0x8e, 0x11, 0x65, 0x6b, 0xd2, 0x09, 0x4a, 0x38, 0x64, 0x60,
+ 0xec, 0x99, 0xb5, 0xaf, 0xbb, 0x32, 0x45, 0xa8, 0xec, 0x38, 0x50, 0xf1, 0x0e, 0xcd, 0x5e, 0x07,
+ 0x0d, 0xb0, 0xc2, 0xde, 0xd1, 0xf4, 0x0e, 0x2d, 0xaf, 0xa7, 0x87, 0x1c, 0x22, 0x12, 0xf9, 0x1a,
+ 0x4c, 0xdc, 0xb5, 0x1f, 0x49, 0xfb, 0xab, 0x30, 0xb2, 0x0e, 0xf5, 0x66, 0x79, 0xdb, 0x7e, 0x64,
+ 0x35, 0x7b, 0xf1, 0xac, 0x83, 0xfc, 0xcd, 0x72, 0x85, 0x25, 0xf9, 0x0a, 0x80, 0x62, 0x15, 0x26,
+ 0xc7, 0x56, 0xf0, 0x82, 0xcc, 0x08, 0x94, 0x6a, 0x2d, 0x46, 0xfe, 0x0a, 0xc3, 0x98, 0xe6, 0x30,
+ 0xff, 0xe9, 0x69, 0x0e, 0xa7, 0x3e, 0x3d, 0xcd, 0x61, 0x71, 0x07, 0xce, 0xf6, 0xfd, 0x74, 0x52,
+ 0x92, 0x34, 0x5e, 0xd5, 0x93, 0x34, 0x9e, 0xed, 0xb7, 0xc5, 0xfa, 0x7a, 0xf2, 0xe4, 0xb9, 0xe2,
+ 0x7c, 0x7f, 0xed, 0xe4, 0xbb, 0xd9, 0xd8, 0x96, 0x2b, 0x0e, 0x16, 0x3c, 0xd9, 0x7e, 0x3f, 0x9d,
+ 0x24, 0x8b, 0xaf, 0x8a, 0xf1, 0x4d, 0x39, 0x1b, 0x1d, 0x68, 0x62, 0x8f, 0xa7, 0xf2, 0xed, 0xf9,
+ 0x93, 0xee, 0xbe, 0x6f, 0xc3, 0x34, 0x7f, 0x4f, 0xe8, 0x0e, 0x3d, 0x7c, 0xe8, 0x7a, 0x4d, 0xf9,
+ 0x42, 0x26, 0xea, 0xe0, 0x89, 0x97, 0xf7, 0x62, 0xb8, 0xa4, 0x22, 0x83, 0x94, 0x46, 0xb0, 0xf6,
+ 0xb3, 0xa9, 0x52, 0x8c, 0x21, 0x0c, 0x8a, 0x5f, 0x22, 0x6f, 0x84, 0x8a, 0x1a, 0xf5, 0xd4, 0x14,
+ 0xca, 0x9e, 0x04, 0xa6, 0xe8, 0x6b, 0xd4, 0x33, 0x7e, 0x37, 0x07, 0x84, 0xd7, 0x54, 0xb6, 0xbb,
+ 0x36, 0x86, 0xf0, 0x39, 0x98, 0x8a, 0xa2, 0x28, 0x70, 0xec, 0x9d, 0x16, 0x55, 0xf3, 0xb8, 0x08,
+ 0xa7, 0xd3, 0xb0, 0xcc, 0x8a, 0x1f, 0x74, 0x12, 0x84, 0x7d, 0x44, 0x5d, 0xf6, 0x93, 0x88, 0xba,
+ 0xaf, 0xc1, 0xb3, 0xa5, 0x2e, 0x3e, 0x4c, 0x26, 0x6b, 0xb9, 0xe9, 0x7a, 0x52, 0x48, 0x69, 0xc1,
+ 0x21, 0x76, 0x88, 0x96, 0x68, 0xe9, 0x20, 0x16, 0x8a, 0x9e, 0xc2, 0xd6, 0x65, 0x37, 0x50, 0x83,
+ 0x8d, 0xa5, 0x9e, 0xd2, 0xc5, 0x92, 0x14, 0x3d, 0x85, 0x93, 0x48, 0x1e, 0x8e, 0x27, 0xf5, 0x14,
+ 0x7c, 0x34, 0x20, 0xe2, 0xe1, 0x78, 0xb4, 0x8f, 0xae, 0x13, 0x92, 0x90, 0xb7, 0x61, 0xa2, 0xd4,
+ 0x0b, 0x5c, 0xc1, 0x58, 0x78, 0x4b, 0x47, 0x7e, 0xcd, 0xa2, 0x29, 0xda, 0xd1, 0x27, 0x42, 0x37,
+ 0xfe, 0x20, 0x07, 0x67, 0x93, 0xd3, 0x2b, 0x4a, 0xc3, 0xef, 0x23, 0x73, 0xcc, 0xf7, 0x91, 0xb6,
+ 0x1a, 0xf8, 0x65, 0xc1, 0x13, 0x5b, 0x0d, 0xfc, 0x7d, 0xb3, 0x8f, 0xb9, 0x1a, 0xea, 0x30, 0xa1,
+ 0xee, 0x77, 0xf9, 0x8f, 0xbb, 0xdf, 0xa9, 0x5c, 0xd8, 0xa1, 0x9e, 0xc7, 0x58, 0x8f, 0x44, 0x57,
+ 0x47, 0xf1, 0xf0, 0x6a, 0x8e, 0x41, 0xfe, 0x2d, 0x38, 0xcf, 0x65, 0x52, 0xbc, 0xb3, 0x2b, 0x87,
+ 0x92, 0xa3, 0x98, 0xb8, 0xe5, 0xc7, 0x47, 0x4b, 0x57, 0xb8, 0xa9, 0xc4, 0x4a, 0x0c, 0x9b, 0xb5,
+ 0x73, 0x68, 0xc9, 0x96, 0x29, 0x95, 0x1c, 0xcb, 0x1b, 0x1f, 0x35, 0x53, 0xde, 0xcc, 0x7a, 0x3d,
+ 0x2d, 0x8c, 0x84, 0x67, 0x22, 0xe5, 0x60, 0x3d, 0x82, 0x44, 0x9a, 0xc3, 0xb2, 0xa9, 0xe6, 0x30,
+ 0x69, 0x4f, 0xc9, 0xa5, 0xda, 0x53, 0x2a, 0x30, 0x53, 0xef, 0xed, 0xc8, 0xba, 0x11, 0x31, 0xaf,
+ 0x45, 0xc2, 0xa5, 0x75, 0x28, 0x4e, 0x62, 0xfc, 0x68, 0x16, 0x26, 0x6b, 0xad, 0xde, 0x9e, 0xd3,
+ 0xa9, 0xd8, 0x81, 0xfd, 0xd4, 0x5a, 0xe8, 0xde, 0xd4, 0x2c, 0x74, 0x61, 0xb4, 0x54, 0xd8, 0xb1,
+ 0xa1, 0xcc, 0x73, 0xdf, 0xce, 0xc0, 0x4c, 0x44, 0xc2, 0xf7, 0xd9, 0x35, 0xc8, 0xb3, 0x1f, 0xe2,
+ 0xdc, 0x7a, 0x3e, 0xc1, 0x98, 0x3f, 0xd4, 0x12, 0xfe, 0x25, 0x6c, 0x66, 0xfa, 0x2b, 0x08, 0xc8,
+ 0x61, 0xf1, 0x73, 0x30, 0x1e, 0xb1, 0x3d, 0xc9, 0x03, 0x2d, 0xbf, 0x92, 0x81, 0x62, 0xbc, 0x27,
+ 0xe4, 0x0e, 0x8c, 0x31, 0x4e, 0x0e, 0x95, 0x47, 0xea, 0x17, 0xfb, 0xf4, 0xf9, 0x8a, 0x40, 0xe3,
+ 0xcd, 0xc3, 0xc1, 0xa7, 0x1c, 0x62, 0x4a, 0x0e, 0x8b, 0x26, 0x4c, 0xaa, 0x58, 0x29, 0xad, 0x7b,
+ 0x4d, 0x57, 0x2e, 0x4e, 0xa7, 0x8f, 0x83, 0xf6, 0xac, 0x8c, 0xd6, 0x6a, 0xa1, 0x37, 0x5c, 0xd4,
+ 0x16, 0x17, 0x8e, 0x55, 0x6c, 0xdd, 0xf0, 0x65, 0xb6, 0x1c, 0x25, 0x47, 0x56, 0xd7, 0x59, 0xca,
+ 0x82, 0x0e, 0xf1, 0xc8, 0x6b, 0x30, 0xca, 0xeb, 0x53, 0x9f, 0x57, 0xe8, 0x22, 0x44, 0x55, 0x71,
+ 0x39, 0x8e, 0xf1, 0x37, 0x73, 0x70, 0x3a, 0x6a, 0xde, 0xbd, 0x6e, 0xd3, 0x0e, 0x68, 0xcd, 0xf6,
+ 0xec, 0xb6, 0x7f, 0xcc, 0x17, 0x70, 0x29, 0xd1, 0x34, 0x4c, 0xb7, 0x2f, 0x9b, 0xa6, 0x34, 0xc8,
+ 0x88, 0x35, 0x08, 0xcd, 0x97, 0xbc, 0x41, 0xb2, 0x19, 0xe4, 0x0e, 0xe4, 0xea, 0x34, 0x10, 0x62,
+ 0xf3, 0x62, 0x62, 0x54, 0xd5, 0x76, 0x5d, 0xa9, 0xd3, 0x80, 0x4f, 0x22, 0xcf, 0xfd, 0x41, 0xb5,
+ 0xdc, 0x8b, 0x75, 0x1a, 0x90, 0x6d, 0x18, 0x5d, 0x7d, 0xd4, 0xa5, 0x8d, 0x40, 0x3c, 0x2f, 0x74,
+ 0x79, 0x30, 0x3f, 0x8e, 0xab, 0xbc, 0x2e, 0x44, 0x11, 0xa0, 0x0e, 0x16, 0x47, 0x59, 0xbc, 0x01,
+ 0x05, 0x59, 0xf9, 0x49, 0x56, 0xee, 0xe2, 0x9b, 0x30, 0xa1, 0x54, 0x72, 0xa2, 0x45, 0xff, 0xb3,
+ 0x4c, 0xae, 0xba, 0x2d, 0xf9, 0x22, 0xd1, 0x6a, 0x42, 0xcd, 0xcb, 0x44, 0x31, 0xbb, 0x5c, 0xcd,
+ 0xb3, 0x0e, 0x44, 0xd1, 0x00, 0x7d, 0xaf, 0x0a, 0x33, 0xf5, 0x03, 0xa7, 0x1b, 0xa5, 0xc0, 0xd3,
+ 0x36, 0x53, 0xcc, 0x15, 0x2f, 0xce, 0xdc, 0xf1, 0xcd, 0x34, 0x4e, 0x67, 0xfc, 0x71, 0x06, 0x46,
+ 0xd9, 0x5f, 0xf7, 0x6f, 0x3c, 0xa5, 0x22, 0xf3, 0xba, 0x26, 0x32, 0x67, 0x95, 0xfc, 0xb3, 0x28,
+ 0x38, 0x6e, 0x1c, 0x23, 0x2c, 0x8f, 0xc4, 0x04, 0x71, 0x64, 0x72, 0x0b, 0xc6, 0x84, 0xe7, 0x8d,
+ 0x70, 0x91, 0x56, 0x13, 0xda, 0x4a, 0x9f, 0x9c, 0xf0, 0x70, 0xee, 0x76, 0xe3, 0xd6, 0x0c, 0x49,
+ 0xcd, 0x54, 0x72, 0x99, 0x8c, 0x50, 0x7b, 0xc7, 0xce, 0xc5, 0xf8, 0x33, 0x9e, 0x90, 0x55, 0x79,
+ 0x79, 0xb2, 0x4f, 0x60, 0x7f, 0x49, 0x5c, 0x64, 0xe4, 0x06, 0x31, 0x39, 0x2d, 0x9f, 0xf9, 0x4a,
+ 0xbd, 0xe3, 0xf8, 0xbd, 0x39, 0x9e, 0xca, 0x54, 0x36, 0xec, 0x1d, 0x98, 0xbc, 0xe9, 0x7a, 0x0f,
+ 0x6d, 0x8f, 0x27, 0xa8, 0x13, 0x9e, 0x03, 0xec, 0xe8, 0x38, 0xb5, 0xcb, 0xe1, 0x3c, 0xc5, 0xdd,
+ 0xf7, 0x8e, 0x96, 0xf2, 0x2b, 0xae, 0xdb, 0x32, 0x35, 0x74, 0xb2, 0x09, 0x53, 0x77, 0xed, 0x47,
+ 0xca, 0xa1, 0x97, 0x07, 0x94, 0x5c, 0x66, 0x0b, 0x98, 0x9d, 0x9a, 0x8f, 0x77, 0x83, 0xd2, 0xe9,
+ 0x89, 0x03, 0xd3, 0x35, 0xd7, 0x0b, 0x44, 0x25, 0x4e, 0x67, 0x4f, 0x74, 0x36, 0xe9, 0xc8, 0x75,
+ 0x35, 0xd5, 0x91, 0xeb, 0x6c, 0xd7, 0xf5, 0x02, 0x6b, 0x37, 0x24, 0xd7, 0x92, 0xe6, 0x68, 0x8c,
+ 0xc9, 0x3b, 0x30, 0xab, 0x24, 0x05, 0xbb, 0xe9, 0x7a, 0x6d, 0x5b, 0x2a, 0xe5, 0x68, 0x07, 0x46,
+ 0x7f, 0x93, 0x5d, 0x04, 0x9b, 0x49, 0x4c, 0xf2, 0x61, 0x5a, 0x88, 0xce, 0x48, 0xe4, 0x09, 0x96,
+ 0x12, 0xa2, 0xd3, 0xcf, 0x13, 0x2c, 0x19, 0xac, 0xb3, 0x37, 0xc8, 0x53, 0xb4, 0xb0, 0x72, 0x4d,
+ 0x1c, 0xbf, 0x8f, 0xf7, 0x04, 0x0d, 0xe7, 0xad, 0x8f, 0x47, 0xe8, 0x32, 0xe4, 0x56, 0x6a, 0x37,
+ 0xf1, 0xf6, 0x42, 0x3a, 0xda, 0x74, 0xf6, 0xed, 0x4e, 0x03, 0x95, 0x65, 0xe1, 0x9d, 0xad, 0x4a,
+ 0xe4, 0x95, 0xda, 0x4d, 0x62, 0xc3, 0x5c, 0x8d, 0x7a, 0x6d, 0x27, 0xf8, 0xd2, 0xb5, 0x6b, 0xca,
+ 0x44, 0x15, 0xb0, 0x69, 0x57, 0x45, 0xd3, 0x96, 0xba, 0x88, 0x62, 0x3d, 0xba, 0x76, 0x2d, 0x75,
+ 0x3a, 0xc2, 0x86, 0xa5, 0xf1, 0x62, 0x92, 0xf1, 0xae, 0xfd, 0x28, 0x72, 0xaa, 0xf7, 0x45, 0xb0,
+ 0xe3, 0x39, 0xb9, 0xb0, 0x22, 0x87, 0x7c, 0x4d, 0x32, 0xea, 0x44, 0xec, 0xac, 0x13, 0x2d, 0x2f,
+ 0x5f, 0x84, 0x89, 0x2c, 0x4a, 0x93, 0x8e, 0x8c, 0x88, 0x55, 0x15, 0x76, 0x05, 0x9d, 0xdc, 0x0b,
+ 0x4f, 0x6c, 0xfc, 0xc4, 0x23, 0x1e, 0xb1, 0xba, 0xaa, 0x9e, 0xd8, 0xb8, 0x21, 0x45, 0xeb, 0xd6,
+ 0x4c, 0x78, 0xcc, 0xe7, 0x51, 0x06, 0xa6, 0xce, 0x25, 0x79, 0x10, 0x9c, 0x3c, 0xf9, 0x41, 0x90,
+ 0x42, 0x7e, 0xdd, 0x6d, 0x1c, 0x88, 0x4c, 0x3f, 0x5f, 0x64, 0x9f, 0x7b, 0xcb, 0x6d, 0x1c, 0x3c,
+ 0x39, 0x0f, 0x58, 0x64, 0x4f, 0x36, 0x58, 0x53, 0xd9, 0x2a, 0x10, 0x63, 0x22, 0xbc, 0x2a, 0xe7,
+ 0xc3, 0x93, 0x90, 0x52, 0xc6, 0x15, 0x1f, 0xbe, 0x68, 0xe4, 0xd0, 0x9a, 0x3a, 0x39, 0xa1, 0x50,
+ 0xac, 0x50, 0xff, 0x20, 0x70, 0xbb, 0xe5, 0x96, 0xd3, 0xdd, 0x71, 0x6d, 0xaf, 0x89, 0xb6, 0xbb,
+ 0xb4, 0xef, 0xfb, 0xe5, 0xd4, 0xef, 0x7b, 0xb6, 0xc9, 0xe9, 0xad, 0x86, 0x64, 0x60, 0x26, 0x58,
+ 0x92, 0x0f, 0x61, 0x9a, 0x2d, 0xee, 0xd5, 0x47, 0x01, 0xed, 0xf0, 0x99, 0x9f, 0x45, 0xd5, 0x61,
+ 0x5e, 0x49, 0xfc, 0x1d, 0x16, 0xf2, 0x35, 0x85, 0x1f, 0x3b, 0x0d, 0x09, 0xb4, 0x2c, 0x49, 0x1a,
+ 0x2b, 0xd2, 0x84, 0x85, 0xbb, 0xf6, 0x23, 0xe5, 0xe9, 0x2d, 0x65, 0x91, 0x12, 0x5c, 0x60, 0xf8,
+ 0xd4, 0x38, 0x5b, 0x60, 0x51, 0x82, 0xce, 0x3e, 0xeb, 0xb5, 0x2f, 0x27, 0xf2, 0x83, 0x70, 0x46,
+ 0x74, 0xab, 0x82, 0xaf, 0x61, 0xb8, 0xde, 0x61, 0x7d, 0xdf, 0xc6, 0x78, 0x9a, 0xb9, 0x93, 0x09,
+ 0x44, 0x39, 0x60, 0x4d, 0xc9, 0xc7, 0xf2, 0x39, 0x23, 0xb3, 0x5f, 0x0d, 0xe4, 0x23, 0x98, 0xe6,
+ 0x57, 0x36, 0x6b, 0xae, 0x1f, 0xe0, 0x81, 0x7e, 0xfe, 0x64, 0x6e, 0xe2, 0xfc, 0x1e, 0x88, 0x07,
+ 0x56, 0xc4, 0x0c, 0x00, 0x31, 0xce, 0xe4, 0x2d, 0x98, 0xa8, 0x39, 0x1d, 0x9e, 0xc7, 0xac, 0x5a,
+ 0x43, 0xd3, 0xa3, 0xd8, 0x7f, 0xba, 0x4e, 0xc7, 0x92, 0xa7, 0xea, 0x6e, 0x28, 0x2e, 0x54, 0x6c,
+ 0xb2, 0x0d, 0x13, 0xf5, 0xfa, 0xda, 0x4d, 0x87, 0x6d, 0x80, 0xdd, 0xc3, 0x85, 0xd3, 0x7d, 0x5a,
+ 0x79, 0x21, 0xb5, 0x95, 0x53, 0xbe, 0xbf, 0x8f, 0xcf, 0x19, 0x5b, 0x0d, 0xb7, 0x7b, 0x68, 0xaa,
+ 0x9c, 0x52, 0x5c, 0xa7, 0xcf, 0x3c, 0x61, 0xd7, 0xe9, 0x2a, 0xcc, 0x28, 0x0e, 0x96, 0xe8, 0x5c,
+ 0xb9, 0x10, 0xa5, 0xed, 0x52, 0x5d, 0xa5, 0xe3, 0x61, 0x7d, 0x71, 0x3a, 0xe9, 0x33, 0x7d, 0xf6,
+ 0xa4, 0x3e, 0xd3, 0x0e, 0xcc, 0xf2, 0xc9, 0x10, 0xeb, 0x00, 0x67, 0x7a, 0xb1, 0xcf, 0x18, 0x5e,
+ 0x4e, 0x1d, 0xc3, 0x39, 0x31, 0xd3, 0x72, 0x91, 0xe1, 0x15, 0x65, 0x92, 0x2b, 0xd9, 0x05, 0x22,
+ 0x80, 0xe2, 0x31, 0x65, 0xac, 0xeb, 0xd9, 0x3e, 0x75, 0xbd, 0x98, 0x5a, 0xd7, 0xb4, 0xac, 0x6b,
+ 0x87, 0x57, 0x93, 0xc2, 0x91, 0x74, 0x64, 0x3d, 0x72, 0x7d, 0xe1, 0xc0, 0x3e, 0xa7, 0xd9, 0x41,
+ 0x93, 0x08, 0x3c, 0x89, 0x68, 0x7c, 0xd1, 0xc6, 0xc7, 0x3d, 0x85, 0x33, 0x79, 0x04, 0xa7, 0x93,
+ 0xad, 0xc0, 0x3a, 0xcf, 0x61, 0x9d, 0xe7, 0xb4, 0x3a, 0xe3, 0x48, 0x7c, 0xdd, 0xe8, 0xdd, 0x8a,
+ 0xd7, 0xda, 0x87, 0xff, 0xed, 0x7c, 0x61, 0xaa, 0x38, 0x9d, 0xe6, 0x69, 0xfd, 0x8f, 0xb3, 0x31,
+ 0xa1, 0x4d, 0xaa, 0x30, 0x26, 0xe6, 0x42, 0x68, 0xb1, 0xc9, 0x11, 0x3f, 0x97, 0x3a, 0xe2, 0x63,
+ 0x62, 0x5a, 0x4d, 0x49, 0x4f, 0x1e, 0x32, 0x56, 0xe8, 0xb6, 0x2e, 0xd4, 0xfe, 0xaf, 0x70, 0x99,
+ 0x8c, 0x20, 0x6d, 0xf7, 0xa9, 0x9c, 0x3c, 0x68, 0x47, 0x8f, 0x09, 0xc3, 0x6d, 0x48, 0xd6, 0x46,
+ 0x0e, 0xf8, 0x4b, 0x01, 0xb9, 0x30, 0xf2, 0x43, 0x7f, 0x16, 0xe0, 0x89, 0x55, 0xc8, 0x6a, 0x31,
+ 0x7e, 0x2d, 0x03, 0x53, 0x9a, 0xd4, 0x27, 0x37, 0x94, 0xb0, 0xa6, 0x28, 0x2a, 0x57, 0xc3, 0x41,
+ 0x41, 0x10, 0x0f, 0x78, 0xba, 0x21, 0xfc, 0xa6, 0xb3, 0xfd, 0xe9, 0x52, 0xdf, 0x14, 0x1f, 0x6c,
+ 0x24, 0x0b, 0x5f, 0x1e, 0xca, 0xf7, 0x79, 0x79, 0xe8, 0x9f, 0x2d, 0xc2, 0xb4, 0x7e, 0x2c, 0x20,
+ 0xaf, 0xc1, 0x28, 0xda, 0x16, 0xe5, 0x19, 0x93, 0xbf, 0xbc, 0x8b, 0x10, 0xed, 0xe5, 0x5d, 0x84,
+ 0x90, 0x97, 0x00, 0x42, 0x07, 0x56, 0x69, 0x59, 0x1f, 0x79, 0x7c, 0xb4, 0x94, 0x79, 0xdd, 0x54,
+ 0x0a, 0xc8, 0x57, 0x01, 0x36, 0xdc, 0x26, 0x0d, 0xdf, 0x46, 0x1b, 0x70, 0x7b, 0xfc, 0x72, 0x22,
+ 0x8b, 0xf6, 0xa9, 0x8e, 0xdb, 0xa4, 0xc9, 0x94, 0xd9, 0x0a, 0x47, 0xf2, 0x05, 0x18, 0x31, 0x7b,
+ 0xec, 0x3c, 0xcb, 0x4d, 0x09, 0x13, 0x52, 0xfa, 0xf6, 0x5a, 0x54, 0x79, 0xa6, 0xbf, 0x17, 0x77,
+ 0x8c, 0x62, 0x00, 0xf2, 0x1e, 0xcf, 0xae, 0x2d, 0x92, 0x61, 0x8d, 0x44, 0x77, 0x0d, 0xca, 0xae,
+ 0x9c, 0x48, 0x87, 0xa5, 0x90, 0x90, 0x4d, 0x18, 0x53, 0x8d, 0xe4, 0x4a, 0x7c, 0xac, 0x7a, 0x91,
+ 0xa2, 0x9c, 0xbc, 0xc4, 0xa3, 0x6a, 0x71, 0xfb, 0xb9, 0xe4, 0x42, 0xde, 0x86, 0x71, 0xc6, 0x9e,
+ 0x7d, 0xc2, 0xbe, 0xd0, 0xb8, 0xf1, 0x46, 0x41, 0x69, 0x10, 0x93, 0x00, 0x5a, 0xca, 0xaa, 0x90,
+ 0x80, 0x7c, 0x88, 0xef, 0x86, 0x89, 0xa1, 0x1e, 0xe8, 0x55, 0x70, 0x31, 0x31, 0xd4, 0xf8, 0x90,
+ 0x58, 0xf2, 0x49, 0xd9, 0x90, 0x1f, 0xd9, 0x0b, 0x53, 0x29, 0x0d, 0x93, 0x11, 0xfd, 0x95, 0x44,
+ 0x05, 0x0b, 0x32, 0x3b, 0x50, 0xf2, 0x8d, 0x3b, 0x8d, 0x2f, 0xe9, 0x42, 0x31, 0x52, 0x78, 0x44,
+ 0x5d, 0x30, 0xa8, 0xae, 0xd7, 0x13, 0x75, 0xa9, 0x13, 0x98, 0xa8, 0x2e, 0xc1, 0x9d, 0x34, 0x61,
+ 0x5a, 0x0a, 0x4f, 0x51, 0xdf, 0xc4, 0xa0, 0xfa, 0x5e, 0x4a, 0xd4, 0x37, 0xd7, 0xdc, 0x49, 0xd6,
+ 0x13, 0xe3, 0x49, 0xde, 0x86, 0x29, 0x09, 0xc1, 0xef, 0x43, 0xbc, 0x5d, 0x8b, 0x56, 0x91, 0xe6,
+ 0x0e, 0xba, 0xcc, 0xeb, 0x2f, 0xff, 0xa9, 0xc8, 0x2a, 0x35, 0x5f, 0x1d, 0x53, 0x1a, 0x75, 0x7c,
+ 0x55, 0xe8, 0xc8, 0xe4, 0x03, 0x98, 0xa8, 0xb6, 0x59, 0x47, 0xdc, 0x8e, 0x1d, 0x50, 0x11, 0x3b,
+ 0x25, 0x3d, 0x24, 0x94, 0x12, 0x65, 0xa9, 0xf2, 0xb7, 0xf4, 0xa2, 0x22, 0xed, 0x2d, 0xbd, 0x08,
+ 0xcc, 0x06, 0x8f, 0xdf, 0x8a, 0x88, 0x35, 0x2c, 0xe3, 0xaa, 0xce, 0xa5, 0x78, 0x29, 0x28, 0xec,
+ 0x45, 0xd2, 0x39, 0x06, 0x95, 0xb7, 0x12, 0xb1, 0xa4, 0x73, 0x2a, 0x4f, 0xf2, 0x0e, 0x4c, 0x88,
+ 0xc7, 0x22, 0x4a, 0xe6, 0x86, 0xbf, 0x50, 0xc4, 0xce, 0x63, 0x34, 0xb8, 0x7c, 0x57, 0xc2, 0xb2,
+ 0xbd, 0x98, 0x3b, 0x5e, 0x84, 0x4f, 0xbe, 0x04, 0xf3, 0xdb, 0x4e, 0xa7, 0xe9, 0x3e, 0xf4, 0xc5,
+ 0x36, 0x25, 0x04, 0xdd, 0x6c, 0x14, 0x0c, 0xf3, 0x90, 0x97, 0x87, 0x7a, 0x4a, 0x42, 0xf0, 0xa5,
+ 0x72, 0x20, 0x7f, 0x36, 0xc1, 0x99, 0xaf, 0x20, 0x32, 0x68, 0x05, 0x2d, 0x27, 0x56, 0x50, 0xb2,
+ 0xfa, 0xf8, 0x72, 0x4a, 0xad, 0x86, 0xb8, 0x40, 0xf4, 0xfd, 0xfd, 0xb6, 0xeb, 0x74, 0x16, 0xe6,
+ 0x50, 0x16, 0x3e, 0x1b, 0x8f, 0xbf, 0x46, 0xbc, 0x9a, 0xdb, 0x72, 0x1a, 0x87, 0xfc, 0xdd, 0xfa,
+ 0xb8, 0x3e, 0xfa, 0x91, 0xab, 0xd9, 0x8c, 0x53, 0x58, 0x93, 0x0f, 0x60, 0x92, 0xfd, 0x1f, 0x1e,
+ 0x98, 0xe7, 0x35, 0xbf, 0x36, 0x05, 0x53, 0xd4, 0x83, 0x73, 0x84, 0xaf, 0x59, 0xa4, 0x9c, 0xa5,
+ 0x35, 0x56, 0xe4, 0x4d, 0x00, 0xa6, 0x39, 0x09, 0x71, 0x7c, 0x2a, 0xca, 0xf1, 0x87, 0xfa, 0x56,
+ 0x52, 0x10, 0x47, 0xc8, 0xec, 0x14, 0xcf, 0x7e, 0xd5, 0x7b, 0x4d, 0x97, 0x7d, 0x1b, 0xa7, 0x91,
+ 0x96, 0x87, 0xa4, 0x31, 0x5a, 0x9f, 0xc3, 0xb5, 0x90, 0xb4, 0x08, 0x9d, 0xac, 0xc1, 0x0c, 0xe6,
+ 0x62, 0xac, 0x36, 0x69, 0x27, 0xc0, 0xdb, 0xca, 0x85, 0x33, 0xca, 0x6d, 0x2e, 0x2b, 0xb2, 0x9c,
+ 0xb0, 0x4c, 0xd5, 0xb3, 0x63, 0x64, 0xc4, 0x87, 0xb9, 0x48, 0xba, 0x44, 0x77, 0xc3, 0x0b, 0x38,
+ 0x48, 0x52, 0xbb, 0x4c, 0x62, 0x70, 0x79, 0xcc, 0x66, 0x44, 0x11, 0x5c, 0xd2, 0xb2, 0xae, 0x56,
+ 0x98, 0xc6, 0x9d, 0x98, 0x40, 0x6e, 0x95, 0x6b, 0xf1, 0x64, 0x85, 0x67, 0xb1, 0x07, 0x38, 0xcd,
+ 0x7b, 0x8d, 0xe8, 0xd5, 0xc6, 0x94, 0x84, 0x85, 0x29, 0xd4, 0xe4, 0x1b, 0x70, 0x4a, 0x4a, 0x10,
+ 0x51, 0x24, 0xd6, 0xf5, 0xe2, 0x09, 0x25, 0x71, 0x73, 0x27, 0xac, 0x3a, 0xb1, 0xa4, 0xd3, 0xab,
+ 0x20, 0x36, 0x4c, 0xe0, 0xb4, 0x8a, 0x1a, 0x9f, 0x1d, 0x54, 0xe3, 0xa5, 0x44, 0x8d, 0xa7, 0x71,
+ 0xa1, 0x24, 0x2b, 0x53, 0x79, 0x92, 0x15, 0x98, 0x12, 0xdf, 0x91, 0x58, 0x6d, 0xcf, 0xe1, 0x68,
+ 0xa1, 0x81, 0x45, 0x7e, 0x81, 0x89, 0x05, 0xa7, 0x93, 0xa8, 0x12, 0x99, 0x5b, 0xd4, 0xcf, 0x69,
+ 0x12, 0x39, 0x6e, 0x48, 0xd7, 0x91, 0x99, 0x44, 0x8a, 0xb4, 0x98, 0xd5, 0x47, 0x5d, 0x4f, 0x98,
+ 0x4f, 0x9e, 0x8f, 0x72, 0xf8, 0x2b, 0xca, 0x8f, 0x45, 0x43, 0x0c, 0x55, 0x24, 0xa4, 0x71, 0x20,
+ 0xf7, 0x60, 0x2e, 0xdc, 0xb5, 0x15, 0xc6, 0x4b, 0xd1, 0x5b, 0x08, 0xd1, 0x56, 0x9f, 0xce, 0x37,
+ 0x8d, 0x9e, 0xd8, 0x70, 0x46, 0xdb, 0xa7, 0x15, 0xd6, 0xe7, 0x91, 0x35, 0xbe, 0x12, 0xaa, 0x6f,
+ 0xf2, 0xe9, 0xec, 0xfb, 0xf1, 0x21, 0x1f, 0xc1, 0x62, 0x7c, 0x6f, 0x56, 0x6a, 0x79, 0x01, 0x6b,
+ 0x79, 0xe5, 0xf1, 0xd1, 0xd2, 0xc5, 0xc4, 0xf6, 0x9e, 0x5e, 0xd1, 0x00, 0x6e, 0xe4, 0xab, 0xb0,
+ 0xa0, 0xef, 0xcf, 0x4a, 0x4d, 0x06, 0xd6, 0x84, 0x9f, 0x4e, 0xb8, 0xb1, 0xa7, 0xd7, 0xd0, 0x97,
+ 0x07, 0x09, 0x60, 0x29, 0x75, 0x75, 0x2b, 0xd5, 0x5c, 0x88, 0x3a, 0x94, 0xf8, 0x4a, 0xd2, 0xab,
+ 0x3b, 0x8e, 0x25, 0x79, 0x08, 0xcf, 0xa7, 0x6d, 0x13, 0x4a, 0xa5, 0x2f, 0x86, 0x06, 0xca, 0x57,
+ 0xd3, 0xb7, 0x9c, 0xf4, 0x9a, 0x8f, 0x61, 0x4b, 0x3e, 0x84, 0x53, 0xca, 0xf7, 0xa5, 0xd4, 0xf7,
+ 0x12, 0xd6, 0x87, 0xa1, 0xac, 0xea, 0x87, 0x99, 0x5e, 0x4b, 0x3a, 0x0f, 0xd2, 0x86, 0x39, 0xd9,
+ 0x71, 0xb4, 0x04, 0x8b, 0xad, 0xe7, 0xa2, 0x26, 0x55, 0x93, 0x18, 0xca, 0xf3, 0xca, 0x3b, 0x56,
+ 0x37, 0x22, 0x54, 0x57, 0x7a, 0x0a, 0x5f, 0xb2, 0x06, 0xa3, 0xf5, 0x5a, 0xf5, 0xe6, 0xcd, 0xd5,
+ 0x85, 0x97, 0xb1, 0x06, 0x19, 0xf7, 0xc2, 0x81, 0xda, 0xa1, 0x49, 0xb8, 0x5b, 0x75, 0x9d, 0xdd,
+ 0x5d, 0x2d, 0xbc, 0x88, 0xa3, 0x1a, 0x3f, 0x9b, 0x81, 0xb9, 0x14, 0x2a, 0x72, 0x11, 0xf2, 0xf8,
+ 0x14, 0x80, 0x72, 0x1d, 0x1c, 0x7b, 0x02, 0x00, 0xcb, 0xc9, 0x67, 0x60, 0xac, 0xb2, 0x51, 0xaf,
+ 0x97, 0x36, 0xe4, 0x01, 0x8b, 0x0b, 0x97, 0x8e, 0x6f, 0xf9, 0xb6, 0x7e, 0x8b, 0x24, 0xd0, 0xc8,
+ 0xeb, 0x30, 0x5a, 0xad, 0x21, 0x01, 0xf7, 0x47, 0xc2, 0x03, 0x87, 0xd3, 0x8d, 0xe3, 0x0b, 0x24,
+ 0xe3, 0xc7, 0x32, 0x40, 0x92, 0x43, 0x40, 0xae, 0xc1, 0x84, 0x3a, 0xd0, 0xfc, 0x38, 0x88, 0x37,
+ 0x1e, 0xca, 0x30, 0x9a, 0x2a, 0x0e, 0xa9, 0xc0, 0x08, 0x3e, 0x5d, 0x14, 0x5e, 0x5f, 0xa5, 0x8a,
+ 0xeb, 0x33, 0x09, 0x71, 0x3d, 0x82, 0x0f, 0x23, 0x99, 0x9c, 0xd8, 0xf8, 0xcd, 0x0c, 0x90, 0xe4,
+ 0x16, 0x37, 0xf4, 0xf5, 0xf9, 0x1b, 0x4a, 0x3c, 0xa9, 0x9a, 0xec, 0x3b, 0x7c, 0xa9, 0x41, 0x3d,
+ 0xda, 0x44, 0x91, 0xa7, 0x17, 0xb5, 0xa3, 0x74, 0xff, 0x20, 0xa4, 0xcb, 0x30, 0x72, 0x9f, 0x7a,
+ 0x3b, 0xd2, 0xd5, 0x0e, 0xdd, 0x73, 0x1e, 0x30, 0x80, 0x7a, 0xb4, 0x44, 0x0c, 0xe3, 0x0f, 0x32,
+ 0x30, 0x9f, 0xa6, 0x77, 0x1d, 0x13, 0x2b, 0x64, 0xc4, 0xc2, 0x9c, 0xf0, 0xea, 0x9c, 0xfb, 0xee,
+ 0x84, 0xc1, 0x4d, 0x4b, 0x30, 0xc2, 0x3a, 0x2b, 0x67, 0x18, 0x8f, 0xf6, 0x6c, 0x34, 0x7c, 0x93,
+ 0xc3, 0x19, 0x02, 0xcf, 0x51, 0x94, 0xc7, 0x54, 0x54, 0x88, 0x80, 0xdb, 0xba, 0xc9, 0xe1, 0x0c,
+ 0xe1, 0xae, 0xdb, 0x0c, 0xdf, 0xeb, 0x44, 0x84, 0x36, 0x03, 0x98, 0x1c, 0x4e, 0x2e, 0xc2, 0xd8,
+ 0x66, 0x67, 0x9d, 0xda, 0x0f, 0xe4, 0x63, 0x13, 0x78, 0xd5, 0xef, 0x76, 0xac, 0x16, 0x83, 0x99,
+ 0xb2, 0xd0, 0xf8, 0x76, 0x06, 0x66, 0x13, 0x2a, 0xdf, 0xf1, 0xe1, 0x50, 0x83, 0xe3, 0x12, 0x86,
+ 0xe9, 0x1f, 0x6f, 0x7e, 0x3e, 0xbd, 0xf9, 0xc6, 0xff, 0x99, 0x87, 0x33, 0x7d, 0x4e, 0xe0, 0x51,
+ 0xdc, 0x54, 0xe6, 0xd8, 0xb8, 0xa9, 0x2f, 0xb3, 0x13, 0xaf, 0xed, 0xb4, 0xfd, 0x2d, 0x37, 0x6a,
+ 0x71, 0xe4, 0x7e, 0x8d, 0x65, 0xf2, 0xc9, 0x52, 0xe9, 0xa7, 0x7b, 0x96, 0x3f, 0x1b, 0x6d, 0x05,
+ 0x6e, 0x52, 0x01, 0xd0, 0x98, 0x25, 0x22, 0x97, 0x72, 0x7f, 0x4a, 0x22, 0x97, 0x74, 0x5f, 0xfa,
+ 0xfc, 0x13, 0xf5, 0xa5, 0x4f, 0xf7, 0xc3, 0x1b, 0xf9, 0x24, 0x5e, 0x99, 0x65, 0x98, 0xe2, 0xbe,
+ 0x0e, 0x25, 0x9f, 0x4f, 0xd2, 0x68, 0xc2, 0x3f, 0xc2, 0xf6, 0x93, 0x73, 0xa1, 0xd1, 0x90, 0x35,
+ 0xdd, 0xef, 0x7b, 0x0c, 0xef, 0x68, 0x2e, 0xf6, 0xf7, 0xeb, 0xd6, 0xee, 0x66, 0x55, 0x52, 0xe3,
+ 0xdb, 0x59, 0x3d, 0xac, 0xe9, 0x4f, 0xe3, 0xca, 0xbb, 0x0c, 0x23, 0xdb, 0xfb, 0xd4, 0x93, 0xf2,
+ 0x0e, 0x1b, 0xf2, 0x90, 0x01, 0xd4, 0x86, 0x20, 0x06, 0xb9, 0x09, 0xd3, 0x35, 0x3e, 0x13, 0x72,
+ 0x78, 0xf3, 0xd1, 0xc1, 0xa8, 0x2b, 0x8e, 0xef, 0x29, 0xe3, 0x1b, 0xa3, 0x32, 0x6e, 0xc1, 0x39,
+ 0xed, 0x83, 0x14, 0x69, 0x18, 0xb8, 0xfb, 0x35, 0xdf, 0x11, 0xa7, 0x23, 0x87, 0xf3, 0x48, 0x7a,
+ 0x98, 0x31, 0xa8, 0xb1, 0x0b, 0xcf, 0x0f, 0x64, 0xc4, 0x36, 0x22, 0xe8, 0x86, 0xbf, 0x62, 0x3e,
+ 0x62, 0x03, 0x49, 0x4d, 0x85, 0xce, 0xf8, 0x41, 0x98, 0x54, 0x47, 0x19, 0x65, 0x2a, 0xfb, 0x2d,
+ 0x84, 0x1a, 0x97, 0xa9, 0x0c, 0x60, 0x72, 0xf8, 0xb1, 0x4f, 0xbd, 0x47, 0xd3, 0x9f, 0x3b, 0x6e,
+ 0xfa, 0x59, 0xe5, 0xf8, 0xc9, 0x2a, 0x95, 0xe3, 0x6f, 0xb5, 0x72, 0xcc, 0xb3, 0x60, 0x72, 0xf8,
+ 0x13, 0xad, 0xfc, 0x37, 0x64, 0xca, 0x7d, 0xf4, 0xee, 0x96, 0x27, 0xd8, 0xe8, 0x41, 0xcd, 0xb9,
+ 0xb4, 0x73, 0x69, 0x84, 0x19, 0x6d, 0x92, 0xd9, 0xe3, 0x36, 0xc9, 0x93, 0x2c, 0xc4, 0xab, 0x30,
+ 0x56, 0x12, 0x37, 0xa8, 0xf9, 0x48, 0xb1, 0xb1, 0x13, 0xd7, 0xa5, 0x12, 0xcb, 0xf8, 0x4e, 0x06,
+ 0x4e, 0xa5, 0x1a, 0xb6, 0x58, 0xad, 0xdc, 0x82, 0xa6, 0x7c, 0x87, 0x71, 0xf3, 0x19, 0xc7, 0x38,
+ 0x49, 0x90, 0xed, 0xf0, 0x7d, 0x31, 0x5e, 0x80, 0xf1, 0xf0, 0x5a, 0x85, 0xcc, 0xcb, 0xa9, 0x43,
+ 0xb7, 0x1a, 0x69, 0x9d, 0xaf, 0x03, 0xb0, 0x16, 0x3c, 0x51, 0x27, 0x30, 0xe3, 0x37, 0xb2, 0xfc,
+ 0x39, 0xa6, 0xa7, 0x36, 0x37, 0x5d, 0xba, 0xe7, 0x16, 0xeb, 0x52, 0xff, 0x8c, 0x74, 0x64, 0x15,
+ 0x46, 0xeb, 0x81, 0x1d, 0xf4, 0x64, 0x6c, 0xf0, 0x9c, 0x4a, 0x86, 0x05, 0xf7, 0x97, 0xa3, 0xe8,
+ 0x50, 0x1f, 0x21, 0x9a, 0x2a, 0x8f, 0x10, 0xc5, 0x01, 0xcc, 0x81, 0x49, 0x95, 0x96, 0x7c, 0x00,
+ 0xd3, 0x32, 0xe1, 0x16, 0x0f, 0x98, 0x16, 0x57, 0x40, 0xd2, 0x95, 0x40, 0x26, 0xdc, 0x52, 0x03,
+ 0xac, 0x35, 0x7c, 0x55, 0x52, 0x77, 0x55, 0x64, 0xe3, 0x0f, 0x47, 0xf9, 0x3a, 0x10, 0x99, 0xf3,
+ 0x76, 0x60, 0x7a, 0xb3, 0x5a, 0x29, 0x2b, 0x66, 0x2a, 0xfd, 0x91, 0x84, 0xd5, 0x47, 0x01, 0xf5,
+ 0x3a, 0x76, 0x4b, 0x20, 0x1c, 0x46, 0x7b, 0x83, 0xeb, 0x34, 0x1b, 0xe9, 0x26, 0xac, 0x18, 0x47,
+ 0x56, 0x47, 0xbd, 0x74, 0x77, 0x5d, 0xa9, 0x23, 0x3b, 0x64, 0x1d, 0xbe, 0xdd, 0x6e, 0xf5, 0xa9,
+ 0x43, 0xe7, 0x48, 0xf6, 0xa1, 0x78, 0x0b, 0xf5, 0x18, 0xa5, 0x96, 0xdc, 0xe0, 0x5a, 0x2e, 0x88,
+ 0x5a, 0x9e, 0xe5, 0x0a, 0x50, 0x7a, 0x3d, 0x09, 0xae, 0xd1, 0x07, 0x9c, 0x3f, 0xf6, 0x03, 0xfe,
+ 0x8b, 0x19, 0x18, 0xe5, 0x8a, 0x92, 0x58, 0x5f, 0x7d, 0x54, 0xb1, 0xed, 0x27, 0xa3, 0x8a, 0x15,
+ 0x51, 0x80, 0x6b, 0x2b, 0x8d, 0x97, 0x91, 0x4a, 0x6c, 0xc1, 0x4a, 0x87, 0x42, 0x34, 0x38, 0xf3,
+ 0x92, 0xe3, 0xd7, 0x2b, 0xa9, 0x46, 0x81, 0xb4, 0x63, 0xc7, 0xc6, 0x6a, 0xc9, 0xe0, 0xe3, 0x31,
+ 0x11, 0x48, 0xab, 0x87, 0xcf, 0xae, 0xc3, 0xb8, 0x08, 0xcf, 0x5d, 0x39, 0x14, 0xd7, 0x4a, 0x45,
+ 0xed, 0xd2, 0xba, 0xb9, 0x72, 0x18, 0x29, 0x81, 0x22, 0xc0, 0xd7, 0xda, 0x39, 0xd4, 0x9e, 0x9d,
+ 0x92, 0x88, 0x64, 0x93, 0x3f, 0xc7, 0xc2, 0x73, 0x0b, 0xea, 0x89, 0x7f, 0x43, 0xb8, 0x48, 0xfc,
+ 0x21, 0x63, 0xfc, 0x52, 0x52, 0x09, 0x46, 0x3c, 0xc8, 0x3a, 0x14, 0xc5, 0x33, 0xf5, 0xdc, 0xeb,
+ 0xa1, 0x5a, 0xe1, 0x21, 0xa0, 0xc2, 0x59, 0x4d, 0x3e, 0x72, 0x2f, 0xfc, 0x25, 0xf4, 0xe8, 0x8b,
+ 0x04, 0x25, 0x3b, 0xb8, 0x15, 0xe3, 0xab, 0x8f, 0xbc, 0x0d, 0x13, 0x61, 0x6e, 0xc7, 0x30, 0xfe,
+ 0x0b, 0xcd, 0xcb, 0x51, 0x32, 0x48, 0x2d, 0x12, 0x4c, 0x45, 0x27, 0xcb, 0x50, 0x60, 0x1f, 0x71,
+ 0xfc, 0xc1, 0xab, 0x9e, 0x80, 0xa9, 0x4e, 0xdd, 0x12, 0x8f, 0xd4, 0x61, 0x8e, 0x7d, 0x34, 0x75,
+ 0xa7, 0xb3, 0xd7, 0xa2, 0xeb, 0xee, 0x9e, 0xdb, 0x0b, 0xee, 0x99, 0xeb, 0x42, 0xb8, 0x72, 0x55,
+ 0xd9, 0x6e, 0xb7, 0xb4, 0x62, 0x4f, 0x7b, 0xce, 0x34, 0x85, 0x5a, 0x91, 0x61, 0xbf, 0x97, 0x85,
+ 0x09, 0x65, 0x3d, 0x91, 0xcb, 0x50, 0xa8, 0xfa, 0xeb, 0x6e, 0xe3, 0x20, 0xcc, 0x0c, 0x35, 0xf5,
+ 0xf8, 0x68, 0x69, 0xdc, 0xf1, 0xad, 0x16, 0x02, 0xcd, 0xb0, 0x98, 0xac, 0xc0, 0x14, 0xff, 0x4b,
+ 0xe6, 0xc7, 0xce, 0x46, 0xbe, 0x69, 0x1c, 0x59, 0x66, 0xc6, 0x56, 0xe5, 0x9a, 0x46, 0x42, 0xbe,
+ 0x02, 0xc0, 0x01, 0x18, 0x4b, 0x98, 0x1b, 0x3e, 0x0a, 0x52, 0x54, 0x90, 0x12, 0x45, 0xa8, 0x30,
+ 0x24, 0x5f, 0xe3, 0xb9, 0x20, 0xe5, 0xfa, 0xcf, 0x0f, 0x1f, 0xc6, 0xc9, 0xf8, 0x5b, 0xe9, 0xd1,
+ 0xe4, 0x2a, 0x4b, 0x91, 0xc4, 0x6e, 0xd1, 0xa4, 0x0d, 0xf7, 0x01, 0xf5, 0x0e, 0x4b, 0x01, 0x22,
+ 0x2a, 0x18, 0xc6, 0xff, 0x90, 0x51, 0xbe, 0x1a, 0xb2, 0x81, 0x6f, 0xb4, 0xf1, 0x15, 0x21, 0x3c,
+ 0x2c, 0x42, 0x65, 0x5e, 0xc2, 0x4d, 0xba, 0xbb, 0xf2, 0xac, 0x70, 0x8d, 0x9c, 0x0b, 0xd7, 0x55,
+ 0xec, 0xed, 0x36, 0x0e, 0x24, 0xef, 0x43, 0x1e, 0x87, 0xee, 0xf8, 0x27, 0xfd, 0xe5, 0x7e, 0x9a,
+ 0x67, 0x63, 0x86, 0x1d, 0x41, 0x4a, 0xf2, 0x19, 0x11, 0x87, 0xc5, 0x07, 0x7f, 0x5a, 0xd9, 0x14,
+ 0x59, 0x3b, 0xc2, 0x8d, 0x34, 0x4a, 0x28, 0xa0, 0xac, 0x9e, 0xbf, 0x96, 0x85, 0x62, 0xfc, 0x5b,
+ 0x25, 0xef, 0xc1, 0xa4, 0xdc, 0xe9, 0xf0, 0x11, 0x5f, 0xd6, 0xcb, 0x49, 0x91, 0xb0, 0x59, 0x6e,
+ 0x77, 0xf1, 0x37, 0x7c, 0x55, 0x02, 0xa6, 0x75, 0x6c, 0x89, 0x04, 0x3f, 0xca, 0x57, 0x12, 0xb8,
+ 0x41, 0x37, 0x96, 0x4e, 0x50, 0xa2, 0x91, 0x37, 0x20, 0x77, 0xf7, 0x66, 0x49, 0x38, 0xfd, 0x4b,
+ 0x91, 0x74, 0xf7, 0x66, 0x89, 0x7f, 0xcd, 0xdc, 0xa9, 0x49, 0x77, 0xb1, 0x62, 0xf8, 0x64, 0x5d,
+ 0xc9, 0xd6, 0x39, 0xaa, 0xbd, 0xa8, 0x23, 0xc1, 0x61, 0xe7, 0x8e, 0x4f, 0xdb, 0xc9, 0x5f, 0x07,
+ 0x16, 0x39, 0xf1, 0xfe, 0xfd, 0x1c, 0x8c, 0x87, 0xf5, 0x13, 0x02, 0xa8, 0x54, 0x89, 0x93, 0x0c,
+ 0xfe, 0x4d, 0xce, 0x42, 0x41, 0xea, 0x51, 0xc2, 0xf7, 0x7f, 0xcc, 0x17, 0x3a, 0xd4, 0x02, 0x48,
+ 0x85, 0x89, 0x7f, 0xe6, 0xa6, 0xfc, 0x49, 0xae, 0x41, 0xa8, 0x0d, 0xf5, 0x53, 0x9b, 0xf2, 0x6c,
+ 0xc2, 0xcc, 0x10, 0x8d, 0x4c, 0x43, 0xd6, 0xe1, 0x79, 0x56, 0xc6, 0xcd, 0xac, 0xd3, 0x24, 0xef,
+ 0x41, 0xc1, 0x6e, 0x36, 0x69, 0xd3, 0xb2, 0xa5, 0xab, 0xc2, 0xa0, 0x45, 0x53, 0x60, 0xdc, 0xf8,
+ 0x26, 0x80, 0x54, 0xa5, 0x80, 0x94, 0x60, 0xbc, 0x65, 0x73, 0xb7, 0xa7, 0xe6, 0x10, 0x3b, 0x4a,
+ 0xc4, 0xa1, 0xc0, 0xc8, 0xee, 0xf9, 0xb4, 0x49, 0x5e, 0x86, 0x3c, 0x9b, 0x4d, 0xb1, 0x85, 0x48,
+ 0xf5, 0x8d, 0x4d, 0x26, 0x1f, 0xb0, 0xb5, 0x67, 0x4c, 0x44, 0x20, 0x2f, 0x42, 0xae, 0xb7, 0xbc,
+ 0x2b, 0x36, 0x87, 0x62, 0x94, 0x39, 0x37, 0x44, 0x63, 0xc5, 0xe4, 0x3a, 0x14, 0x1e, 0xea, 0x49,
+ 0x57, 0x4f, 0xc5, 0xa6, 0x31, 0xc4, 0x0f, 0x11, 0x57, 0x0a, 0x30, 0xca, 0x37, 0x02, 0xe3, 0x79,
+ 0x80, 0xa8, 0xea, 0x64, 0x88, 0x86, 0xf1, 0x15, 0x18, 0x0f, 0xab, 0x24, 0xe7, 0x00, 0x0e, 0xe8,
+ 0xa1, 0xb5, 0x6f, 0x77, 0x9a, 0x2d, 0xae, 0xdf, 0x4d, 0x9a, 0xe3, 0x07, 0xf4, 0x70, 0x0d, 0x01,
+ 0xe4, 0x0c, 0x8c, 0x75, 0xd9, 0xac, 0x8a, 0xa5, 0x3b, 0x69, 0x8e, 0x76, 0x7b, 0x3b, 0x6c, 0x85,
+ 0x2e, 0xc0, 0x18, 0x5a, 0xde, 0xc4, 0x87, 0x36, 0x65, 0xca, 0x9f, 0xc6, 0x7f, 0x9e, 0xc5, 0xc7,
+ 0x01, 0x94, 0x76, 0x92, 0x0b, 0x30, 0xd5, 0xf0, 0x28, 0xee, 0x39, 0x36, 0xd3, 0xa4, 0x44, 0x3d,
+ 0x93, 0x11, 0xb0, 0xda, 0x24, 0x17, 0x61, 0x46, 0x3c, 0x88, 0xcd, 0x1a, 0xd4, 0xd8, 0x11, 0x19,
+ 0x92, 0x27, 0xcd, 0x29, 0x0e, 0xbe, 0x43, 0x0f, 0xcb, 0x3b, 0x98, 0x1f, 0xa8, 0xa8, 0xa6, 0x77,
+ 0x0c, 0xc2, 0x77, 0x0c, 0xcd, 0x19, 0x05, 0x8e, 0x1e, 0x48, 0xa7, 0x61, 0xd4, 0xb6, 0xf7, 0x7a,
+ 0x0e, 0xcf, 0xe3, 0x31, 0x69, 0x8a, 0x5f, 0xe4, 0x55, 0x98, 0xf5, 0x9d, 0xbd, 0x8e, 0x1d, 0xf4,
+ 0x3c, 0xf1, 0x3a, 0x03, 0xf5, 0x70, 0x49, 0x4d, 0x99, 0xc5, 0xb0, 0xa0, 0xcc, 0xe1, 0xe4, 0x75,
+ 0x20, 0x6a, 0x7d, 0xee, 0xce, 0x47, 0xb4, 0xc1, 0x97, 0xda, 0xa4, 0x39, 0xab, 0x94, 0x6c, 0x62,
+ 0x01, 0x79, 0x01, 0x26, 0x3d, 0xea, 0xa3, 0x16, 0x87, 0xc3, 0x86, 0x6f, 0xe7, 0x98, 0x13, 0x12,
+ 0xc6, 0xc6, 0xee, 0x12, 0x14, 0x95, 0xe1, 0xc0, 0x0c, 0x9a, 0x3c, 0x3d, 0xb0, 0x39, 0x1d, 0xc1,
+ 0xcd, 0x6e, 0xb5, 0x69, 0xac, 0xc0, 0x6c, 0xe2, 0xcb, 0x55, 0xde, 0x9e, 0xe5, 0x92, 0x68, 0xf0,
+ 0xdb, 0xb3, 0x46, 0x07, 0x26, 0x55, 0x49, 0x7c, 0x4c, 0x96, 0xea, 0xd3, 0x18, 0x07, 0xce, 0xc5,
+ 0xd4, 0xe8, 0xe3, 0xa3, 0xa5, 0xac, 0xd3, 0xc4, 0xe8, 0xef, 0x4b, 0x50, 0x90, 0x4a, 0x83, 0xd8,
+ 0xab, 0xd1, 0x72, 0x2a, 0xb4, 0xd5, 0x43, 0x33, 0x2c, 0x35, 0x5e, 0x86, 0x31, 0x21, 0x6c, 0x07,
+ 0xdb, 0x4b, 0x8d, 0x1f, 0xc9, 0xc2, 0x8c, 0x49, 0x99, 0x28, 0xa0, 0x3c, 0x35, 0xfd, 0x53, 0x7b,
+ 0x7c, 0x4b, 0xcf, 0x26, 0xa6, 0xf5, 0x6d, 0x40, 0x52, 0xf8, 0xbf, 0x9b, 0x81, 0xb9, 0x14, 0xdc,
+ 0x8f, 0xf5, 0x80, 0xd9, 0x0d, 0x18, 0xaf, 0x38, 0x76, 0xab, 0xd4, 0x6c, 0x86, 0x41, 0xe1, 0xa8,
+ 0x6a, 0x36, 0xd9, 0x4a, 0xb3, 0x19, 0x54, 0xdd, 0x76, 0x43, 0x54, 0xf2, 0x8a, 0x58, 0x14, 0xd1,
+ 0xe3, 0xd1, 0xb8, 0x28, 0xbe, 0x77, 0xb4, 0x04, 0xbc, 0x4d, 0xd1, 0x23, 0x99, 0x98, 0xe1, 0x8f,
+ 0x03, 0x23, 0xa7, 0xed, 0xa7, 0x76, 0xea, 0xd2, 0x33, 0xfc, 0xc5, 0xbb, 0x37, 0x54, 0x5e, 0xf8,
+ 0x1f, 0xcf, 0xc2, 0xe9, 0x74, 0xc2, 0x8f, 0xfb, 0x16, 0x1d, 0x66, 0xe4, 0x57, 0xb2, 0x92, 0xe2,
+ 0x5b, 0x74, 0x3c, 0x7d, 0x3f, 0xe2, 0x47, 0x08, 0x64, 0x17, 0xa6, 0xd6, 0x6d, 0x3f, 0x58, 0xa3,
+ 0xb6, 0x17, 0xec, 0x50, 0x3b, 0x18, 0x42, 0xf7, 0x7c, 0x51, 0x5e, 0x22, 0xe2, 0xf6, 0xb7, 0x2f,
+ 0x29, 0x63, 0xda, 0xa1, 0xce, 0x36, 0x5c, 0x28, 0xf9, 0x21, 0x16, 0xca, 0xd7, 0x61, 0xa6, 0x4e,
+ 0xdb, 0x76, 0x77, 0xdf, 0xf5, 0x64, 0xd4, 0xdf, 0x15, 0x98, 0x0a, 0x41, 0xa9, 0xab, 0x45, 0x2f,
+ 0xd6, 0xf0, 0x95, 0x81, 0x88, 0x44, 0x89, 0x5e, 0x6c, 0xfc, 0xf5, 0x2c, 0x9c, 0x29, 0x35, 0x84,
+ 0x6f, 0x8f, 0x28, 0x90, 0x2e, 0x88, 0x9f, 0x72, 0xdd, 0xe4, 0x2a, 0x8c, 0xdf, 0xb5, 0x1f, 0xad,
+ 0x53, 0xdb, 0xa7, 0xbe, 0x78, 0x09, 0x88, 0x2b, 0x6a, 0xf6, 0xa3, 0xc8, 0xe5, 0xc5, 0x8c, 0x70,
+ 0xd4, 0x93, 0x6c, 0xfe, 0x13, 0x9e, 0x64, 0x0d, 0x18, 0x5d, 0x73, 0x5b, 0x4d, 0xb1, 0x8d, 0x89,
+ 0xeb, 0xb5, 0x7d, 0x84, 0x98, 0xa2, 0x84, 0x1d, 0x00, 0xa7, 0xc3, 0x16, 0x63, 0x13, 0x3e, 0xf5,
+ 0x21, 0xb9, 0x08, 0x63, 0x58, 0x51, 0xb5, 0xa2, 0x6e, 0x1a, 0x2d, 0x8a, 0xef, 0xb9, 0x34, 0x4d,
+ 0x59, 0xa8, 0x8e, 0xc4, 0xc8, 0x27, 0x1b, 0x09, 0xe3, 0x3f, 0xc0, 0x9b, 0x3b, 0xb5, 0x97, 0x6c,
+ 0x27, 0x52, 0x1a, 0x92, 0x19, 0xb2, 0x21, 0xd9, 0x27, 0x36, 0x25, 0xb9, 0xbe, 0x53, 0xf2, 0xad,
+ 0x2c, 0x4c, 0x84, 0x8d, 0xfd, 0x3e, 0x4b, 0x8d, 0x1b, 0xf6, 0x6b, 0xa8, 0x48, 0xfd, 0xba, 0x22,
+ 0x2b, 0x44, 0x40, 0xfc, 0xfb, 0x30, 0x2a, 0x3e, 0xa6, 0x4c, 0xcc, 0x15, 0x2f, 0x36, 0xbb, 0x2b,
+ 0xd3, 0x82, 0xf5, 0x28, 0x4e, 0xa8, 0x6f, 0x0a, 0x3a, 0x4c, 0x85, 0xb0, 0x4d, 0x77, 0xc4, 0x45,
+ 0xee, 0x53, 0xbb, 0x47, 0xa5, 0xa7, 0x42, 0x88, 0x3a, 0x36, 0xd4, 0xee, 0x74, 0x34, 0x02, 0xc5,
+ 0x38, 0xc9, 0xf1, 0xc9, 0x87, 0x6b, 0xbd, 0x1d, 0xae, 0x85, 0xf3, 0xe4, 0xc3, 0xdd, 0xde, 0x8e,
+ 0xc9, 0x60, 0xe8, 0xe7, 0xe1, 0x39, 0x0f, 0xb0, 0xd7, 0x93, 0xc2, 0xcf, 0xc3, 0x73, 0x1e, 0x68,
+ 0x7e, 0x1e, 0x9e, 0xf3, 0x00, 0x8f, 0xbe, 0xeb, 0x75, 0x8c, 0xde, 0x44, 0x15, 0x5c, 0x1c, 0x7d,
+ 0x5b, 0x7e, 0xfc, 0xd1, 0x0e, 0x89, 0xc6, 0xb6, 0xca, 0x15, 0x6a, 0x7b, 0x22, 0x51, 0xae, 0x10,
+ 0x67, 0xb8, 0x55, 0xee, 0x20, 0x98, 0xbf, 0x87, 0x6b, 0xaa, 0x48, 0xa4, 0x05, 0x44, 0xf9, 0x29,
+ 0x3f, 0xe0, 0xe3, 0x4f, 0x83, 0xd2, 0x8d, 0x66, 0x5e, 0x65, 0x6d, 0xa9, 0x5f, 0x73, 0x0a, 0xdf,
+ 0x27, 0x69, 0x80, 0xac, 0x89, 0xec, 0x5f, 0x68, 0xf2, 0x28, 0x1c, 0xcb, 0x4c, 0x86, 0x37, 0x03,
+ 0xcf, 0x0e, 0x16, 0x1a, 0x3e, 0x22, 0x26, 0xe4, 0x5d, 0x98, 0x50, 0x63, 0x72, 0x79, 0xe4, 0xe8,
+ 0x73, 0x3c, 0xa1, 0x53, 0x9f, 0x27, 0xd9, 0x54, 0x02, 0xb2, 0x03, 0x67, 0xca, 0x6e, 0xc7, 0xef,
+ 0xb5, 0x65, 0xea, 0xa8, 0x28, 0x61, 0x25, 0x84, 0x4f, 0xaa, 0xbf, 0xd8, 0x10, 0x28, 0x22, 0x04,
+ 0x54, 0xfa, 0x39, 0xeb, 0x07, 0x90, 0x7e, 0x8c, 0xc8, 0x16, 0x4c, 0xa0, 0x11, 0x4f, 0x38, 0x52,
+ 0x4d, 0xe8, 0x62, 0x23, 0x2a, 0xa9, 0xb0, 0x0f, 0x83, 0xe7, 0x3e, 0xb1, 0xdb, 0x2d, 0xe9, 0x66,
+ 0xab, 0x1a, 0x23, 0x15, 0x64, 0xe3, 0x33, 0xea, 0xfa, 0x16, 0xea, 0xc6, 0xc0, 0xf5, 0x6d, 0xfc,
+ 0xb7, 0xa3, 0x30, 0x13, 0xab, 0x4e, 0x9c, 0x7f, 0x32, 0x89, 0xf3, 0x4f, 0x1d, 0x80, 0x1b, 0xbd,
+ 0x86, 0xb4, 0x4e, 0xc9, 0x08, 0x8d, 0x09, 0x11, 0xe1, 0x14, 0xce, 0x95, 0xc2, 0x86, 0x31, 0xe5,
+ 0x2b, 0x61, 0x48, 0x6b, 0x61, 0xc8, 0x94, 0x2f, 0x26, 0x85, 0x69, 0xc4, 0x86, 0x2c, 0xc1, 0x08,
+ 0x26, 0x06, 0x53, 0x03, 0x64, 0x1c, 0x06, 0x30, 0x39, 0x9c, 0x5c, 0x80, 0x51, 0xb6, 0x39, 0x57,
+ 0x2b, 0xe2, 0xe3, 0x42, 0x99, 0xc5, 0x76, 0x6f, 0xb6, 0x13, 0x8a, 0x22, 0x72, 0x03, 0x26, 0xf9,
+ 0x5f, 0x22, 0x36, 0x7c, 0x54, 0xf7, 0x20, 0xb2, 0x9c, 0xa6, 0x0c, 0x0f, 0xd7, 0xf0, 0x98, 0xd6,
+ 0x5a, 0xef, 0xed, 0xf0, 0x17, 0xca, 0x45, 0x26, 0x49, 0xd4, 0x5a, 0x7d, 0x0e, 0xc4, 0x17, 0x94,
+ 0x43, 0x04, 0xb6, 0x47, 0x0a, 0x37, 0xd5, 0x02, 0x9e, 0x55, 0x70, 0x8f, 0xe4, 0xee, 0xa9, 0xa6,
+ 0x28, 0x21, 0x97, 0xb9, 0x91, 0x19, 0xd5, 0x0d, 0xfe, 0xf8, 0x0d, 0x5a, 0x70, 0xf1, 0xc0, 0x8b,
+ 0x3a, 0x47, 0x58, 0xcc, 0x2a, 0x67, 0x7f, 0xaf, 0xb6, 0x6d, 0xa7, 0x25, 0x96, 0x2b, 0x56, 0x8e,
+ 0xb8, 0x94, 0x41, 0xcd, 0x08, 0x81, 0xbc, 0x0d, 0xd3, 0xec, 0x47, 0xd9, 0x6d, 0xb7, 0xdd, 0x0e,
+ 0xb2, 0x9f, 0x88, 0xd2, 0x8c, 0x20, 0x49, 0x03, 0x8b, 0x78, 0x2d, 0x31, 0x5c, 0x26, 0xa7, 0xf0,
+ 0x02, 0xab, 0xc7, 0xcd, 0xdf, 0x93, 0x91, 0x9c, 0x42, 0x52, 0x9f, 0xc3, 0x4d, 0x15, 0x89, 0xbc,
+ 0x09, 0x53, 0xec, 0xe7, 0x2d, 0xe7, 0x01, 0xe5, 0x15, 0x4e, 0x45, 0x57, 0xaa, 0x48, 0xb5, 0xc7,
+ 0x4a, 0x78, 0x7d, 0x3a, 0x26, 0xf9, 0x22, 0x9c, 0x42, 0x4e, 0x0d, 0xb7, 0x4b, 0x9b, 0xa5, 0xdd,
+ 0x5d, 0xa7, 0xe5, 0x70, 0x97, 0x0e, 0x1e, 0x05, 0x8d, 0xd6, 0x48, 0x5e, 0x31, 0x62, 0x58, 0x76,
+ 0x84, 0x62, 0xa6, 0x53, 0x92, 0x6d, 0x28, 0x96, 0x7b, 0x7e, 0xe0, 0xb6, 0x4b, 0x41, 0xe0, 0x39,
+ 0x3b, 0xbd, 0x80, 0xfa, 0x0b, 0x33, 0x5a, 0xac, 0x30, 0xfb, 0x38, 0xc2, 0x42, 0x6e, 0x67, 0x68,
+ 0x20, 0x85, 0x65, 0x87, 0x24, 0x66, 0x82, 0x89, 0xf1, 0xdf, 0x64, 0x60, 0x4a, 0x23, 0x25, 0x6f,
+ 0xc0, 0xe4, 0x4d, 0xcf, 0xa1, 0x9d, 0x66, 0xeb, 0x50, 0x39, 0x00, 0xa1, 0x76, 0xbc, 0x2b, 0xe0,
+ 0xbc, 0xd7, 0x1a, 0x5a, 0x68, 0x3f, 0xc8, 0xa6, 0xfa, 0x5b, 0x5d, 0xe5, 0x71, 0x5a, 0x62, 0x81,
+ 0xe6, 0xa2, 0xe4, 0x05, 0xb8, 0x40, 0xc5, 0xea, 0x54, 0x50, 0xc8, 0x3b, 0x30, 0xca, 0xaf, 0xba,
+ 0x84, 0xf3, 0xcf, 0xd9, 0xb4, 0x6e, 0xf2, 0x98, 0x40, 0x5c, 0x88, 0xe8, 0x68, 0xe0, 0x9b, 0x82,
+ 0xc8, 0xf8, 0xe9, 0x0c, 0x90, 0x24, 0xea, 0x31, 0xf6, 0x94, 0x63, 0x1d, 0x18, 0xde, 0x0f, 0xbf,
+ 0xc6, 0x9c, 0x66, 0x3d, 0x64, 0x35, 0xf1, 0x02, 0x3e, 0xf0, 0xe2, 0xab, 0x53, 0x0d, 0x3c, 0xbc,
+ 0xd8, 0xf8, 0x0b, 0x59, 0x80, 0x08, 0x9b, 0x7c, 0x9e, 0xbf, 0xbf, 0xf0, 0xc5, 0x9e, 0xdd, 0x72,
+ 0x76, 0x1d, 0x3d, 0x21, 0x19, 0x32, 0xf9, 0xba, 0x2c, 0x31, 0x75, 0x44, 0xf2, 0x1e, 0xcc, 0xd4,
+ 0x6b, 0x3a, 0xad, 0x92, 0x6b, 0xde, 0xef, 0x5a, 0x31, 0xf2, 0x38, 0x36, 0x3a, 0xf9, 0xa9, 0xb3,
+ 0xc1, 0x9d, 0xfc, 0xf8, 0x44, 0x88, 0x12, 0x26, 0x58, 0xea, 0x35, 0x7c, 0xf4, 0xbe, 0x49, 0x9b,
+ 0xd5, 0x8a, 0x90, 0x52, 0xd8, 0x3a, 0xbf, 0x6b, 0x75, 0x79, 0x01, 0xbe, 0xb4, 0xae, 0xe1, 0x45,
+ 0x03, 0x39, 0xd2, 0x27, 0xee, 0xef, 0x67, 0xd0, 0x9c, 0xd4, 0x76, 0x03, 0x2a, 0x4e, 0xd1, 0x4f,
+ 0xad, 0x3e, 0x1d, 0xdd, 0x93, 0x8e, 0x68, 0xe1, 0x4c, 0x5a, 0xef, 0xc4, 0x2d, 0xfd, 0xf5, 0x48,
+ 0xf9, 0xe5, 0x37, 0xa6, 0x29, 0xf7, 0xfa, 0xbf, 0x90, 0x81, 0x53, 0xa9, 0xb4, 0xe4, 0x0a, 0x40,
+ 0x64, 0xab, 0x10, 0xa3, 0xc4, 0x1f, 0xbc, 0x0f, 0xa1, 0xa6, 0x82, 0x41, 0xbe, 0x1c, 0xb7, 0x32,
+ 0x1c, 0xbf, 0x11, 0x2e, 0xca, 0x94, 0x2c, 0xba, 0x95, 0x21, 0xc5, 0xb6, 0x60, 0xfc, 0xdd, 0x1c,
+ 0xcc, 0x2a, 0x19, 0x01, 0x78, 0x5b, 0x8f, 0x71, 0xba, 0x3c, 0x80, 0x49, 0xd6, 0x1b, 0xa7, 0x21,
+ 0x62, 0x2a, 0xf8, 0x9d, 0xfe, 0x2b, 0x89, 0x80, 0x14, 0xc1, 0xed, 0x8a, 0x8a, 0xcc, 0x13, 0x25,
+ 0xa1, 0xe8, 0x44, 0x1b, 0x6e, 0x23, 0x19, 0x5b, 0xa1, 0x31, 0x27, 0x3e, 0x4c, 0x55, 0x0e, 0x3b,
+ 0x76, 0x3b, 0xac, 0x8d, 0xdf, 0xed, 0xbf, 0xda, 0xb7, 0x36, 0x0d, 0x9b, 0x57, 0x17, 0xb9, 0x6e,
+ 0xf3, 0xb2, 0x94, 0xa8, 0x41, 0x8d, 0x6a, 0xf1, 0x3d, 0x98, 0x4d, 0x34, 0xfa, 0x44, 0x39, 0x9b,
+ 0xb6, 0x81, 0x24, 0xdb, 0x91, 0xc2, 0xe1, 0x55, 0x3d, 0x23, 0xd8, 0xa9, 0xf0, 0x1a, 0x0f, 0x5f,
+ 0x6e, 0xe5, 0x9e, 0x02, 0xcb, 0x6a, 0x46, 0xa7, 0x9f, 0xc9, 0xaa, 0x41, 0x41, 0x4f, 0xfb, 0x57,
+ 0xf7, 0xbe, 0x76, 0xca, 0x7a, 0xbe, 0xdf, 0x9c, 0x0e, 0x75, 0x9a, 0xfd, 0x6e, 0x0e, 0xce, 0xf4,
+ 0xa1, 0x24, 0x87, 0xf1, 0x45, 0xc4, 0x4f, 0xb7, 0xd7, 0x06, 0x57, 0xf8, 0x24, 0x96, 0x12, 0xf9,
+ 0x3c, 0x0f, 0x0b, 0x6e, 0xe0, 0x8b, 0xa3, 0xe2, 0x5c, 0xc7, 0x1f, 0xab, 0x0e, 0xa1, 0xf1, 0x78,
+ 0x60, 0x0e, 0x25, 0xef, 0xc1, 0x08, 0x46, 0x84, 0xc5, 0x32, 0x12, 0x31, 0x0c, 0x84, 0x2b, 0xe9,
+ 0x9b, 0xd8, 0x4f, 0x2d, 0x7d, 0x13, 0x03, 0x90, 0xcf, 0x41, 0xae, 0xb4, 0x5d, 0x17, 0xf3, 0x32,
+ 0xad, 0x92, 0x6f, 0xd7, 0xa3, 0xac, 0xd1, 0xb6, 0x96, 0xde, 0x99, 0x51, 0x30, 0xc2, 0x5b, 0xe5,
+ 0x9a, 0x98, 0x15, 0x95, 0xf0, 0x56, 0xb9, 0x16, 0x11, 0xee, 0x35, 0xb4, 0x0c, 0x0f, 0xb7, 0xca,
+ 0xb5, 0x4f, 0x6f, 0xd9, 0xff, 0xe5, 0x2c, 0x8f, 0x65, 0xe6, 0x1d, 0x7b, 0x0f, 0x26, 0xb5, 0x8c,
+ 0x8d, 0x99, 0x48, 0x1f, 0x0b, 0x13, 0x63, 0xc6, 0x9c, 0x21, 0x34, 0x02, 0x99, 0x7f, 0x9d, 0xfd,
+ 0x46, 0x8d, 0x57, 0x75, 0x3b, 0x08, 0x39, 0xa0, 0x4e, 0x1c, 0xcf, 0xbf, 0x1e, 0x92, 0x90, 0xeb,
+ 0x50, 0xd8, 0xa2, 0x1d, 0xbb, 0x13, 0x84, 0x86, 0x36, 0x74, 0x68, 0x0c, 0x10, 0xa6, 0x6b, 0x0d,
+ 0x21, 0x22, 0x3a, 0xdf, 0xf5, 0x76, 0xfc, 0x86, 0xe7, 0x60, 0xce, 0x83, 0x70, 0x2f, 0xe6, 0xce,
+ 0x77, 0x4a, 0x89, 0xce, 0x20, 0x46, 0x64, 0xfc, 0x4c, 0x06, 0xc6, 0xc4, 0x44, 0xf2, 0x77, 0x33,
+ 0xf6, 0xa2, 0xbd, 0x44, 0xbc, 0x9b, 0xb1, 0xe7, 0xc4, 0xdf, 0xcd, 0xd8, 0xe3, 0x89, 0x05, 0xc6,
+ 0x45, 0x58, 0x5e, 0x78, 0xe5, 0xc4, 0x9f, 0x59, 0xe6, 0x40, 0xbd, 0xda, 0x08, 0x75, 0xd8, 0xa8,
+ 0x06, 0xe3, 0x6f, 0x8a, 0x96, 0xdd, 0x2a, 0xd7, 0xc8, 0x32, 0x14, 0xd6, 0xdd, 0x86, 0xad, 0xec,
+ 0x73, 0x28, 0x76, 0x5a, 0x02, 0xa6, 0x0e, 0x90, 0xc4, 0x63, 0xed, 0xab, 0x79, 0xae, 0x38, 0xcb,
+ 0x28, 0xed, 0xeb, 0x72, 0x60, 0xac, 0x7d, 0x21, 0xea, 0xd0, 0xed, 0xa3, 0x29, 0x42, 0xe2, 0xfe,
+ 0x75, 0x4c, 0x4c, 0x7d, 0x5b, 0x8d, 0x16, 0x11, 0x45, 0x52, 0x52, 0x2c, 0xf6, 0x93, 0x14, 0xf7,
+ 0xaf, 0x9b, 0x29, 0x54, 0x78, 0x5f, 0x13, 0x81, 0xeb, 0xd4, 0x7b, 0xf0, 0x14, 0x4b, 0xe9, 0xf4,
+ 0xfb, 0x9a, 0x78, 0xf7, 0x86, 0x12, 0xd2, 0xff, 0x65, 0x16, 0x4e, 0xa7, 0x13, 0xaa, 0x7d, 0xc9,
+ 0x0c, 0xe8, 0xcb, 0x25, 0x28, 0xac, 0xb9, 0x7e, 0xa0, 0xf8, 0x3f, 0xa1, 0x59, 0x79, 0x5f, 0xc0,
+ 0xcc, 0xb0, 0x94, 0x9d, 0xb9, 0xd9, 0xdf, 0xe1, 0xe7, 0x89, 0xfc, 0x30, 0x82, 0x97, 0x9d, 0xb9,
+ 0x79, 0x11, 0xb9, 0x05, 0x05, 0x53, 0x44, 0x2b, 0xc4, 0x86, 0x46, 0x82, 0x43, 0x6d, 0x8a, 0x78,
+ 0x02, 0xa2, 0x25, 0xce, 0x14, 0x30, 0x52, 0x82, 0x31, 0x31, 0xfb, 0xb1, 0x2b, 0xc9, 0x94, 0x25,
+ 0xa3, 0xe7, 0xb2, 0x95, 0x74, 0x4c, 0xa2, 0xe0, 0xe5, 0x52, 0xb5, 0x22, 0x03, 0x0f, 0x50, 0xa2,
+ 0xf0, 0xcb, 0x27, 0xdd, 0xd5, 0x2c, 0x44, 0x34, 0x7e, 0x24, 0x0b, 0xb0, 0x4d, 0x77, 0x9e, 0xee,
+ 0x87, 0xde, 0x3e, 0xa7, 0xad, 0x30, 0xc5, 0xf3, 0x62, 0xf8, 0x77, 0xde, 0x36, 0xd1, 0x03, 0x62,
+ 0xf8, 0x57, 0xde, 0x96, 0x60, 0x84, 0x5b, 0x3b, 0xd5, 0x87, 0x94, 0xd0, 0xcc, 0xc9, 0xe1, 0xc6,
+ 0x0e, 0xcc, 0xdf, 0xa2, 0x41, 0x64, 0xde, 0x92, 0x57, 0x5a, 0x83, 0xd9, 0xbe, 0x06, 0xe3, 0x02,
+ 0x3f, 0x94, 0x5f, 0xdc, 0x16, 0x23, 0x82, 0xe2, 0xd1, 0x16, 0x23, 0x11, 0x98, 0x34, 0xaa, 0xd0,
+ 0x16, 0x0d, 0xe8, 0xa7, 0x5b, 0x4d, 0x1d, 0x08, 0xef, 0x0a, 0xf6, 0x6c, 0xb8, 0x1a, 0x8e, 0x1d,
+ 0x9f, 0xfb, 0x70, 0x2a, 0x6c, 0xfb, 0x93, 0xe4, 0x7b, 0x95, 0x1d, 0x29, 0x45, 0x1a, 0xd8, 0x88,
+ 0xe3, 0x00, 0x9f, 0x86, 0x47, 0xb0, 0x28, 0x09, 0xb6, 0x9d, 0xd0, 0x85, 0x6c, 0x28, 0x5a, 0xf2,
+ 0x36, 0x4c, 0x28, 0x34, 0x22, 0x8d, 0x29, 0x9a, 0x3f, 0x1f, 0x3a, 0xc1, 0xbe, 0xe5, 0x73, 0xb8,
+ 0x6a, 0xfe, 0x54, 0xd0, 0x8d, 0x0f, 0xe1, 0xd9, 0x30, 0x54, 0x21, 0xa5, 0xea, 0x18, 0xf3, 0xcc,
+ 0xc9, 0x98, 0x6f, 0x44, 0xdd, 0xaa, 0x76, 0xc2, 0xf0, 0x42, 0xc9, 0x9b, 0xa8, 0xdd, 0x12, 0x9d,
+ 0x79, 0x2e, 0x11, 0xb0, 0xa8, 0xc4, 0x25, 0x1a, 0x6f, 0x29, 0x8d, 0x4d, 0x61, 0xa8, 0x11, 0x67,
+ 0xe2, 0xc4, 0x3f, 0x92, 0x85, 0x99, 0xcd, 0x6a, 0xa5, 0x1c, 0x7a, 0xb5, 0x7c, 0x9f, 0xbd, 0x42,
+ 0xa7, 0xf5, 0xad, 0xbf, 0xbc, 0x31, 0xee, 0xc1, 0x5c, 0x6c, 0x18, 0x50, 0x75, 0x78, 0x97, 0xfb,
+ 0xd2, 0x87, 0x60, 0xa9, 0x36, 0x9c, 0x4e, 0x63, 0x7f, 0xff, 0xba, 0x19, 0xc3, 0x36, 0xfe, 0xf9,
+ 0x78, 0x8c, 0xaf, 0x10, 0x61, 0xaf, 0xc1, 0x78, 0xd5, 0xf7, 0x7b, 0xd4, 0xbb, 0x67, 0xae, 0xab,
+ 0xa6, 0x02, 0x07, 0x81, 0x56, 0xcf, 0x6b, 0x99, 0x11, 0x02, 0xb9, 0x0c, 0x05, 0x91, 0xd9, 0x53,
+ 0xca, 0x04, 0xb4, 0xda, 0x86, 0x89, 0x41, 0xcd, 0xb0, 0x98, 0xbc, 0x01, 0x93, 0xfc, 0x6f, 0xbe,
+ 0xda, 0xc4, 0x80, 0xa3, 0x71, 0x50, 0xa0, 0xf3, 0xd5, 0x69, 0x6a, 0x68, 0xe4, 0x15, 0xc8, 0x95,
+ 0xca, 0xa6, 0x30, 0x07, 0x09, 0xbd, 0x11, 0xdf, 0x96, 0xed, 0x51, 0xfd, 0x10, 0x51, 0x36, 0x99,
+ 0xf6, 0x27, 0x4c, 0x49, 0xf2, 0x39, 0x07, 0xfe, 0x04, 0xae, 0x80, 0xc5, 0x36, 0x33, 0x84, 0x91,
+ 0xab, 0x30, 0x56, 0x71, 0xfc, 0x6e, 0xcb, 0x3e, 0x14, 0x76, 0x6c, 0xfe, 0xc4, 0x0a, 0x07, 0x69,
+ 0x11, 0xca, 0x1c, 0x44, 0x2e, 0xcb, 0xa7, 0x27, 0x0a, 0x91, 0x4b, 0x7e, 0x9f, 0xf7, 0x25, 0x5e,
+ 0x83, 0x51, 0x91, 0xff, 0x72, 0x5c, 0xc9, 0x6c, 0x1d, 0xcf, 0x7b, 0x29, 0x70, 0x92, 0x41, 0x73,
+ 0xf0, 0x24, 0x83, 0xe6, 0x76, 0xe0, 0xcc, 0x2d, 0xb4, 0xde, 0xe8, 0x99, 0x32, 0xee, 0x99, 0x55,
+ 0x61, 0x0f, 0xc7, 0x1b, 0x1f, 0x6e, 0xe0, 0x89, 0x27, 0xdb, 0xb0, 0x7a, 0x9e, 0xfa, 0x62, 0x58,
+ 0x3f, 0x46, 0xe4, 0x4b, 0x30, 0x9f, 0x56, 0x24, 0xac, 0xe6, 0x98, 0x13, 0x22, 0xbd, 0x02, 0x35,
+ 0x27, 0x44, 0x1a, 0x07, 0xb2, 0x0e, 0x45, 0x0e, 0x2f, 0x35, 0xdb, 0x4e, 0x87, 0x5b, 0xfe, 0xa7,
+ 0xa2, 0xa7, 0xf6, 0x05, 0x57, 0x9b, 0x15, 0xf2, 0x1b, 0x00, 0x2d, 0xaa, 0x22, 0x46, 0x49, 0x7e,
+ 0x32, 0xc3, 0x4e, 0x73, 0x3c, 0x5b, 0xe4, 0x3d, 0x73, 0xdd, 0x17, 0xf9, 0x84, 0x4e, 0x47, 0x01,
+ 0x13, 0xf5, 0xc0, 0x73, 0x3a, 0x7b, 0x22, 0x62, 0x62, 0x4b, 0x44, 0x4c, 0xbc, 0xfd, 0xb1, 0x22,
+ 0x26, 0x38, 0x2b, 0xff, 0xf1, 0xd1, 0xd2, 0xa4, 0x27, 0xea, 0xc4, 0xaf, 0x48, 0x6b, 0x01, 0xbe,
+ 0x76, 0xdd, 0x6a, 0xb9, 0x0f, 0xef, 0x75, 0x1e, 0x50, 0xcf, 0xd9, 0x75, 0x68, 0x93, 0x77, 0x72,
+ 0x06, 0x25, 0x38, 0x7f, 0xed, 0x1a, 0xdf, 0x6f, 0xef, 0x85, 0x08, 0x89, 0x8e, 0xa6, 0x72, 0x60,
+ 0x07, 0x4f, 0xe9, 0x95, 0xcf, 0x23, 0x00, 0x8b, 0xd1, 0xc1, 0x53, 0xba, 0xf0, 0x5b, 0xb8, 0x8c,
+ 0xd4, 0xc5, 0xa3, 0x91, 0x90, 0xab, 0x30, 0x7a, 0xd7, 0x7e, 0x54, 0xda, 0xa3, 0xe2, 0x49, 0xa1,
+ 0x29, 0x29, 0xfe, 0x10, 0xb8, 0x52, 0xf8, 0x1d, 0xee, 0xf5, 0xfd, 0x8c, 0x29, 0xd0, 0xc8, 0x37,
+ 0x33, 0x70, 0x9a, 0x7f, 0xc6, 0xb2, 0x97, 0x75, 0x1a, 0x04, 0x6c, 0x1c, 0x44, 0x62, 0x21, 0x99,
+ 0x90, 0xbf, 0x5e, 0xdf, 0x4c, 0xc7, 0xe3, 0x6f, 0x33, 0x0b, 0xc9, 0x10, 0x0e, 0x9c, 0x2f, 0x4a,
+ 0xb5, 0xec, 0x81, 0xa9, 0xf4, 0xc2, 0xa3, 0xf9, 0x73, 0xb2, 0xe5, 0xe4, 0x75, 0x35, 0x50, 0x2d,
+ 0x87, 0x7a, 0xee, 0x58, 0xdb, 0x7e, 0x64, 0xd9, 0x7b, 0x54, 0xbb, 0x27, 0x0d, 0x23, 0xd8, 0xce,
+ 0xf6, 0x6d, 0x1b, 0xb9, 0x01, 0x67, 0xe4, 0x2b, 0xdd, 0xfb, 0x41, 0xd0, 0xf5, 0x2d, 0x79, 0x16,
+ 0x10, 0x91, 0x6d, 0xe6, 0x29, 0x51, 0xbc, 0xc6, 0x4a, 0xe5, 0xf1, 0xc0, 0x37, 0xfe, 0xda, 0x38,
+ 0xdf, 0xd3, 0x4a, 0xbd, 0x60, 0x5f, 0xee, 0x82, 0xcb, 0x69, 0xb1, 0x19, 0xdc, 0x69, 0x4c, 0x89,
+ 0xcd, 0xd0, 0x23, 0x32, 0xe4, 0x65, 0x44, 0x36, 0xf5, 0x32, 0xe2, 0x35, 0x18, 0x2f, 0xef, 0xd3,
+ 0xc6, 0x41, 0xe8, 0x1f, 0x5f, 0x10, 0xd6, 0x5e, 0x06, 0xe4, 0x89, 0x25, 0x23, 0x04, 0x72, 0x15,
+ 0x00, 0x83, 0xb5, 0xb8, 0x8a, 0xa4, 0x24, 0x87, 0xc6, 0xd8, 0x2e, 0x71, 0x0f, 0xaf, 0xa0, 0x20,
+ 0xfb, 0xba, 0x79, 0x53, 0xbd, 0xb8, 0xe7, 0xec, 0x7d, 0x6f, 0x57, 0xa0, 0x47, 0x08, 0xac, 0x7b,
+ 0xca, 0x42, 0x17, 0x62, 0xb9, 0x98, 0xf8, 0x1a, 0x54, 0x24, 0xf4, 0x89, 0x93, 0xce, 0xc0, 0x28,
+ 0x95, 0x27, 0x85, 0x4f, 0x5c, 0xe8, 0x38, 0x6c, 0x46, 0x08, 0xe4, 0x73, 0x30, 0x56, 0xa6, 0x5e,
+ 0xb0, 0xb5, 0xb5, 0x8e, 0x77, 0xeb, 0x3c, 0x83, 0x72, 0x01, 0xb3, 0xdd, 0x06, 0x41, 0xeb, 0x7b,
+ 0x47, 0x4b, 0x53, 0x81, 0xd3, 0xa6, 0x57, 0xc2, 0x09, 0x96, 0xd8, 0x64, 0x05, 0x8a, 0xfc, 0x96,
+ 0x36, 0x52, 0x85, 0x51, 0x50, 0x17, 0xf8, 0xb6, 0x21, 0xae, 0x74, 0x1f, 0xd2, 0x9d, 0x30, 0xd7,
+ 0x6f, 0x02, 0x9f, 0xac, 0xca, 0x14, 0xd9, 0x6a, 0x27, 0x21, 0xb2, 0xcd, 0xc4, 0x17, 0x30, 0xeb,
+ 0x6b, 0x92, 0x82, 0x94, 0x60, 0xaa, 0xec, 0xb6, 0xbb, 0x76, 0xe0, 0xe0, 0x7b, 0x33, 0x87, 0x42,
+ 0x26, 0xa3, 0x7d, 0xa9, 0xa1, 0x16, 0x68, 0x02, 0x5e, 0x2d, 0x20, 0x37, 0x61, 0xda, 0x74, 0x7b,
+ 0x6c, 0x92, 0xe4, 0xa1, 0x90, 0x8b, 0x5d, 0x0c, 0x75, 0xf6, 0x58, 0x09, 0xdb, 0x25, 0xc4, 0x09,
+ 0x50, 0xcb, 0x54, 0xa6, 0x51, 0x91, 0x8d, 0x14, 0xeb, 0xbc, 0x2a, 0x6b, 0xd5, 0x8c, 0xbf, 0x09,
+ 0x66, 0x29, 0x86, 0xfd, 0xeb, 0x30, 0x51, 0xaf, 0x6f, 0x6e, 0x51, 0x3f, 0xb8, 0xd9, 0x72, 0x1f,
+ 0xa2, 0xa8, 0x2d, 0x88, 0x97, 0x10, 0x7c, 0xd7, 0x0a, 0xa8, 0x1f, 0x58, 0xbb, 0x2d, 0xf7, 0xa1,
+ 0xa9, 0x62, 0x91, 0xaf, 0xb2, 0xf1, 0x50, 0x14, 0x13, 0x91, 0x93, 0x6d, 0x90, 0xee, 0x84, 0x02,
+ 0x2d, 0xfa, 0x64, 0x98, 0x06, 0xa5, 0x0f, 0x96, 0x82, 0x8e, 0xc1, 0x1e, 0xec, 0x38, 0x5b, 0x6a,
+ 0x36, 0x3d, 0xea, 0xfb, 0x42, 0x26, 0xf2, 0x60, 0x0f, 0x3c, 0xfb, 0xda, 0xbc, 0x40, 0x0b, 0xf6,
+ 0x50, 0x08, 0xc8, 0xb7, 0x32, 0x70, 0x4a, 0xf5, 0x17, 0xc7, 0x8f, 0xa5, 0x4d, 0x3b, 0x81, 0x90,
+ 0x90, 0xaf, 0x5f, 0x91, 0x7b, 0xc2, 0x15, 0x05, 0xed, 0xca, 0x83, 0x6b, 0x57, 0x4a, 0xd1, 0xcf,
+ 0xba, 0x24, 0x12, 0x69, 0x8d, 0xd2, 0xf8, 0xa9, 0xf2, 0xdd, 0x4e, 0x21, 0x25, 0x65, 0xa6, 0x36,
+ 0xb0, 0xf5, 0x84, 0xde, 0x21, 0xd5, 0x1a, 0x0a, 0x58, 0x61, 0xde, 0x13, 0xab, 0x8f, 0xfb, 0x91,
+ 0x38, 0x5d, 0x5d, 0x3b, 0x50, 0x68, 0x50, 0xd9, 0xae, 0x97, 0xee, 0xae, 0x47, 0x1a, 0xe3, 0xf7,
+ 0x97, 0x93, 0xb6, 0xd6, 0xb7, 0x01, 0x4e, 0xda, 0xf7, 0x78, 0xd8, 0x9a, 0x32, 0x0c, 0x52, 0xd9,
+ 0xd6, 0xc0, 0x71, 0x65, 0x3b, 0x46, 0x63, 0xc6, 0xb0, 0x8d, 0xef, 0x15, 0x62, 0x7c, 0x85, 0x63,
+ 0x96, 0x01, 0xa3, 0x5c, 0x97, 0x56, 0x1f, 0x4a, 0xe6, 0x9a, 0xb6, 0x29, 0x4a, 0xc8, 0x59, 0xc8,
+ 0xd5, 0xeb, 0x9b, 0xea, 0xdb, 0xf0, 0xbe, 0xef, 0x9a, 0x0c, 0xc6, 0x66, 0x08, 0x7d, 0xae, 0x94,
+ 0x14, 0xaa, 0x4c, 0xec, 0x99, 0x08, 0x65, 0xe3, 0x2d, 0x35, 0xdb, 0x7c, 0x34, 0xde, 0x42, 0xb3,
+ 0x8d, 0xf4, 0xd9, 0x32, 0x2c, 0x94, 0x7c, 0x9f, 0x7a, 0x6c, 0x55, 0x09, 0x57, 0x1e, 0x4f, 0x68,
+ 0x5f, 0x42, 0xba, 0x63, 0xa5, 0x76, 0xc3, 0x37, 0xfb, 0x22, 0x92, 0x4b, 0x50, 0x28, 0xf5, 0x9a,
+ 0x0e, 0xed, 0x34, 0xb4, 0x8c, 0x2b, 0xb6, 0x80, 0x99, 0x61, 0x29, 0xf9, 0x22, 0x9c, 0x12, 0x44,
+ 0x52, 0x05, 0x17, 0x23, 0x30, 0x16, 0x7d, 0x82, 0x52, 0x3b, 0x8c, 0xae, 0x89, 0xf9, 0x90, 0xa4,
+ 0x53, 0x92, 0x12, 0x14, 0x57, 0x31, 0x28, 0xa1, 0x42, 0xb9, 0xc5, 0xda, 0xf5, 0x78, 0xa0, 0x05,
+ 0xd7, 0xe5, 0x79, 0xc0, 0x82, 0xd5, 0x0c, 0x0b, 0xcd, 0x04, 0x3a, 0xb9, 0x03, 0x73, 0x71, 0x18,
+ 0x13, 0xe4, 0x5c, 0x6d, 0xc7, 0x1c, 0x7e, 0x09, 0x2e, 0x28, 0xca, 0xd3, 0xa8, 0xc8, 0x0e, 0xcc,
+ 0x46, 0x6e, 0x12, 0xba, 0x32, 0x2f, 0xbd, 0xfa, 0xc2, 0x72, 0xa9, 0xd0, 0x3f, 0x2b, 0x16, 0xe3,
+ 0x5c, 0xe4, 0x72, 0x11, 0x2a, 0xf5, 0x66, 0x92, 0x1d, 0x69, 0xc2, 0x74, 0xdd, 0xd9, 0xeb, 0x38,
+ 0x9d, 0xbd, 0x3b, 0xf4, 0xb0, 0x66, 0x3b, 0x9e, 0xf0, 0xaf, 0x92, 0xde, 0x93, 0x25, 0xff, 0xb0,
+ 0xdd, 0xa6, 0x81, 0x87, 0x5b, 0x24, 0x2b, 0xc7, 0x18, 0x41, 0xa6, 0xa4, 0x2d, 0xfa, 0x9c, 0x0e,
+ 0xe3, 0x6f, 0xba, 0xb6, 0xa3, 0xed, 0x05, 0x3a, 0x4f, 0xed, 0x40, 0x35, 0x39, 0xe4, 0x81, 0xaa,
+ 0x05, 0xb3, 0xab, 0x9d, 0x86, 0x77, 0x88, 0x17, 0x07, 0xb2, 0x71, 0x53, 0xc7, 0x34, 0xee, 0x45,
+ 0xd1, 0xb8, 0xe7, 0x6c, 0xb9, 0xc2, 0xd2, 0x9a, 0x97, 0x64, 0x4c, 0xea, 0x30, 0x8b, 0x5a, 0x6f,
+ 0xb5, 0x52, 0xab, 0x76, 0x9c, 0xc0, 0xc1, 0xe7, 0x7c, 0xf9, 0x1e, 0xf3, 0x92, 0xe0, 0x79, 0x8e,
+ 0x2b, 0xce, 0x4e, 0xb3, 0x6b, 0x39, 0x12, 0x45, 0x65, 0x9a, 0xa0, 0x1f, 0xa4, 0xbd, 0xce, 0xfc,
+ 0x9b, 0xd1, 0x5e, 0xf1, 0xc1, 0x9b, 0x58, 0xec, 0x6c, 0x31, 0xca, 0x9d, 0xee, 0x63, 0x11, 0x93,
+ 0xeb, 0x6e, 0x0f, 0x75, 0x0a, 0xed, 0xc1, 0x1b, 0x9d, 0xce, 0xf8, 0x4f, 0x0a, 0x5c, 0xb6, 0xab,
+ 0x4a, 0x67, 0x3f, 0xff, 0xb7, 0x98, 0x32, 0x9a, 0x3d, 0x89, 0x32, 0x9a, 0x3b, 0x5e, 0x19, 0xcd,
+ 0x1f, 0xa7, 0x8c, 0xc6, 0xb4, 0xc5, 0x91, 0x13, 0x6b, 0x8b, 0xa3, 0x27, 0xd0, 0x16, 0xc7, 0x4e,
+ 0xa4, 0x2d, 0x6a, 0x6a, 0x6f, 0xe1, 0x38, 0xb5, 0xf7, 0xff, 0xd7, 0x2d, 0x9f, 0x56, 0xdd, 0x32,
+ 0x4d, 0x55, 0x38, 0x91, 0x6e, 0xd9, 0x5f, 0x35, 0x2c, 0xfe, 0x49, 0xab, 0x86, 0xb3, 0x1f, 0x43,
+ 0x35, 0xfc, 0x33, 0x50, 0x8c, 0xef, 0x56, 0xc7, 0x67, 0x48, 0x7b, 0x62, 0xd9, 0x7c, 0xd8, 0x5e,
+ 0x1a, 0xdf, 0x2d, 0xd8, 0x91, 0xb5, 0xe6, 0x39, 0x0f, 0xec, 0x80, 0xde, 0x91, 0x97, 0xfc, 0x22,
+ 0xbb, 0x1f, 0x87, 0xe2, 0x37, 0xaf, 0xa0, 0x84, 0x8a, 0x52, 0x36, 0x4d, 0x51, 0x32, 0x7e, 0x34,
+ 0x0b, 0xb3, 0x3c, 0xf3, 0xc6, 0xd3, 0x6f, 0x6b, 0x7e, 0x57, 0x53, 0x7f, 0xa5, 0x4b, 0x59, 0xac,
+ 0x77, 0x03, 0xac, 0xcd, 0x5f, 0x81, 0x53, 0x89, 0xa1, 0x40, 0x15, 0xb8, 0x22, 0x73, 0x9e, 0x24,
+ 0x94, 0xe0, 0x85, 0xf4, 0x4a, 0xee, 0x5f, 0x37, 0x13, 0x14, 0xc6, 0xbf, 0xcc, 0x27, 0xf8, 0x0b,
+ 0xbb, 0xb3, 0x6a, 0x49, 0xce, 0x9c, 0xcc, 0x92, 0x9c, 0x1d, 0xce, 0x92, 0x1c, 0xdb, 0x5b, 0x72,
+ 0xc3, 0xec, 0x2d, 0x5f, 0x84, 0xa9, 0x2d, 0x6a, 0xb7, 0xfd, 0x2d, 0x57, 0x24, 0xdc, 0xe6, 0x2e,
+ 0xa5, 0x32, 0xa5, 0x09, 0x2b, 0x93, 0x1a, 0x5c, 0xe8, 0x1a, 0x13, 0x30, 0x02, 0x26, 0x0f, 0x79,
+ 0x06, 0x6e, 0x53, 0xe7, 0xa0, 0xaa, 0xe5, 0x23, 0x03, 0xd4, 0xf2, 0x3a, 0x4c, 0x0a, 0xba, 0x28,
+ 0x2d, 0x5c, 0xa4, 0x3f, 0xb2, 0x22, 0x84, 0xcb, 0xda, 0xc3, 0x27, 0xd1, 0xc2, 0xda, 0xb9, 0xea,
+ 0xa8, 0x31, 0x61, 0x43, 0xb0, 0xda, 0x69, 0x76, 0x5d, 0xa7, 0x83, 0x43, 0x30, 0x16, 0x0d, 0x01,
+ 0x15, 0x60, 0x3e, 0x04, 0x0a, 0x12, 0x79, 0x1b, 0xa6, 0x4b, 0xb5, 0xaa, 0x4a, 0x56, 0x88, 0x8c,
+ 0xd9, 0x76, 0xd7, 0xb1, 0x34, 0xd2, 0x18, 0xee, 0x20, 0x55, 0x6a, 0xfc, 0xdf, 0x8c, 0x2a, 0x65,
+ 0x7c, 0x73, 0x5c, 0x7e, 0xde, 0x9f, 0xae, 0xd9, 0x4d, 0x37, 0xa4, 0xe5, 0x4e, 0x68, 0x48, 0xcb,
+ 0x1f, 0xa7, 0x51, 0x68, 0x6a, 0xce, 0xc8, 0x09, 0xd4, 0x9c, 0xd1, 0x4f, 0x6c, 0x14, 0x1b, 0x3b,
+ 0xa1, 0xe2, 0x12, 0xfb, 0xd2, 0x0a, 0xc3, 0x7c, 0x69, 0xa9, 0xca, 0xce, 0xf8, 0x27, 0x57, 0x76,
+ 0xe0, 0xc4, 0xca, 0x4e, 0x3d, 0x0a, 0xfc, 0x99, 0x38, 0xd6, 0xef, 0xf5, 0x9c, 0x38, 0x64, 0xcc,
+ 0xa6, 0x27, 0x5d, 0x09, 0x43, 0x80, 0xbe, 0xaf, 0x34, 0xa8, 0xaf, 0xa5, 0x6b, 0x50, 0x83, 0x77,
+ 0x9b, 0xff, 0x2f, 0xeb, 0x50, 0x1e, 0x8e, 0xf2, 0xb6, 0xed, 0x75, 0xf0, 0x70, 0x77, 0x15, 0xc6,
+ 0x64, 0xf2, 0xa1, 0x4c, 0x64, 0xa7, 0x48, 0x66, 0x1d, 0x92, 0x58, 0xec, 0x1c, 0x2e, 0x89, 0xd5,
+ 0x44, 0xca, 0x0f, 0x05, 0x4c, 0xcb, 0xeb, 0x22, 0x60, 0xc6, 0xdf, 0xce, 0xcb, 0x2f, 0x99, 0x9d,
+ 0xac, 0xc4, 0x13, 0xb9, 0x2b, 0xca, 0xcc, 0x29, 0x1a, 0x5c, 0x6c, 0x6e, 0x62, 0x6e, 0x6c, 0x3a,
+ 0xc9, 0xc7, 0x4a, 0x07, 0x15, 0x3d, 0xcd, 0x93, 0x1b, 0xe2, 0x69, 0x9e, 0x37, 0xb5, 0x77, 0x6d,
+ 0xf2, 0xd1, 0x43, 0x0a, 0x6c, 0x75, 0x0f, 0x7e, 0xd1, 0xe6, 0x86, 0xfa, 0x00, 0xcd, 0x48, 0x94,
+ 0x19, 0x01, 0x29, 0x07, 0x3c, 0x3d, 0x13, 0xaa, 0xa4, 0xa3, 0x27, 0x49, 0xb4, 0x36, 0xf6, 0x27,
+ 0x9a, 0x68, 0x6d, 0x15, 0x40, 0x79, 0x96, 0x94, 0xdf, 0x7d, 0xbc, 0xc4, 0x86, 0xe9, 0xf8, 0x27,
+ 0x49, 0x15, 0x42, 0xe3, 0xb7, 0x09, 0xcc, 0xd6, 0xeb, 0x9b, 0x15, 0xc7, 0xde, 0xeb, 0xb8, 0x7e,
+ 0xe0, 0x34, 0xaa, 0x9d, 0x5d, 0x97, 0xe9, 0x63, 0xa1, 0x54, 0x50, 0x32, 0x6a, 0x45, 0x12, 0x21,
+ 0x2c, 0x66, 0xfa, 0xfe, 0xaa, 0xe7, 0xb9, 0x9e, 0xaa, 0xef, 0x53, 0x06, 0x30, 0x39, 0x9c, 0xa9,
+ 0x3c, 0xf5, 0x1e, 0x7f, 0x5f, 0x92, 0x5f, 0x47, 0xa1, 0xca, 0xe3, 0x73, 0x90, 0x29, 0xcb, 0x08,
+ 0x4d, 0x2e, 0x58, 0xa1, 0x02, 0x9f, 0xd1, 0xd2, 0xb5, 0x45, 0xc5, 0x5c, 0xe6, 0x89, 0x3d, 0x09,
+ 0xe3, 0xa2, 0xba, 0x08, 0x57, 0x6f, 0x7f, 0x13, 0xdf, 0xc0, 0x21, 0x9c, 0xd2, 0xe2, 0x7b, 0x86,
+ 0x35, 0xd1, 0xbd, 0x22, 0x54, 0x2c, 0x03, 0xc3, 0x14, 0x53, 0xec, 0x74, 0x6a, 0x22, 0xf8, 0xd4,
+ 0x1a, 0xc8, 0x8f, 0x66, 0xe0, 0x5c, 0x6a, 0x49, 0xf8, 0x75, 0x4f, 0x68, 0x29, 0xf3, 0x14, 0xa1,
+ 0xc1, 0x53, 0xde, 0xf7, 0xab, 0xda, 0x4a, 0x11, 0x05, 0x83, 0x6b, 0x22, 0xbf, 0x9a, 0x81, 0x33,
+ 0x1a, 0x46, 0x28, 0xf3, 0x7c, 0xdc, 0x9b, 0xfa, 0xae, 0xeb, 0x8f, 0x9e, 0xcc, 0xba, 0xbe, 0xa0,
+ 0xf7, 0x25, 0x12, 0xc9, 0x6a, 0x1f, 0xfa, 0xb5, 0x90, 0x3c, 0x80, 0x59, 0x2c, 0x92, 0xe6, 0x42,
+ 0xb6, 0x66, 0x85, 0x95, 0x71, 0x3e, 0x6a, 0x36, 0x8f, 0x59, 0xc3, 0x67, 0xcb, 0x96, 0xbf, 0x7b,
+ 0xb4, 0x34, 0xa5, 0xa1, 0xcb, 0x24, 0x74, 0x56, 0x64, 0x73, 0x74, 0x3a, 0xbb, 0xae, 0xba, 0x5f,
+ 0x26, 0xaa, 0x20, 0xff, 0x69, 0x06, 0x16, 0x18, 0x94, 0x77, 0xe3, 0xa6, 0xe7, 0xb6, 0xc3, 0x72,
+ 0xe9, 0x46, 0xd0, 0x67, 0xd8, 0x5a, 0x4f, 0x66, 0xd8, 0x5e, 0xc2, 0x26, 0x73, 0x99, 0x60, 0xed,
+ 0x7a, 0x6e, 0x3b, 0x6a, 0xbe, 0xf6, 0xec, 0x66, 0xbf, 0x46, 0x92, 0x1f, 0xca, 0xc0, 0x59, 0xcd,
+ 0xc6, 0xa1, 0xa6, 0xea, 0x15, 0x91, 0x81, 0xd2, 0xe7, 0x44, 0x2d, 0x5a, 0xb9, 0x22, 0xd6, 0xff,
+ 0x45, 0x6c, 0x41, 0xb4, 0x5b, 0x60, 0x5b, 0xac, 0x36, 0xc7, 0x52, 0x9a, 0xd0, 0xbf, 0x16, 0xe2,
+ 0xc0, 0x2c, 0x5e, 0xe1, 0x69, 0xee, 0x2e, 0xf3, 0xfd, 0xdd, 0x5d, 0xc2, 0xe7, 0x65, 0x30, 0x0f,
+ 0x68, 0x7f, 0x9f, 0x97, 0x24, 0x57, 0xf2, 0x67, 0xe1, 0x6c, 0x02, 0x18, 0x7e, 0x6d, 0xa7, 0xfa,
+ 0x7e, 0x6d, 0xaf, 0x3e, 0x3e, 0x5a, 0x7a, 0x39, 0xad, 0xb6, 0xb4, 0x2f, 0xad, 0x7f, 0x0d, 0xc4,
+ 0x06, 0x88, 0x0a, 0xc5, 0xeb, 0x9d, 0xe9, 0x0b, 0xf4, 0x55, 0xb1, 0x3e, 0x14, 0x7c, 0x26, 0xcb,
+ 0x95, 0x36, 0xa8, 0x5b, 0x5e, 0x84, 0x44, 0x28, 0x4c, 0x2a, 0x39, 0x50, 0x0f, 0xf1, 0x19, 0xcf,
+ 0xbe, 0x95, 0x7c, 0xf7, 0x68, 0x49, 0xc3, 0x66, 0x7a, 0xb1, 0x9a, 0x5c, 0x55, 0xd5, 0x8b, 0x35,
+ 0x44, 0xf2, 0x2b, 0x19, 0x98, 0x67, 0x80, 0x68, 0x51, 0x89, 0x4e, 0x2d, 0x0c, 0x5a, 0xf5, 0xfb,
+ 0x4f, 0x66, 0xd5, 0xbf, 0x80, 0x6d, 0x54, 0x57, 0x7d, 0x62, 0x48, 0x52, 0x1b, 0x87, 0xab, 0x5d,
+ 0xbb, 0x2d, 0xd6, 0x56, 0xfb, 0xd9, 0x21, 0x56, 0x3b, 0x9f, 0x80, 0xe3, 0x57, 0x7b, 0xdf, 0x5a,
+ 0xc8, 0x16, 0x4c, 0x0a, 0x95, 0x98, 0x0f, 0xd8, 0xf3, 0x5a, 0xfe, 0x44, 0xb5, 0x88, 0x9f, 0x53,
+ 0x44, 0x8a, 0xd8, 0x44, 0x0f, 0x35, 0x2e, 0xa4, 0x03, 0x73, 0xfc, 0xb7, 0x6e, 0xa0, 0x58, 0xea,
+ 0x6b, 0xa0, 0xb8, 0x24, 0x7a, 0x74, 0x5e, 0xf0, 0x8f, 0xd9, 0x29, 0xd4, 0xe4, 0x9b, 0x29, 0x8c,
+ 0x49, 0x17, 0x88, 0x06, 0xe6, 0x1f, 0xed, 0xf9, 0xc1, 0x66, 0x89, 0x97, 0x45, 0x9d, 0x4b, 0xf1,
+ 0x3a, 0xe3, 0x5f, 0x6e, 0x0a, 0x6f, 0x62, 0xc3, 0x8c, 0x80, 0xb2, 0x03, 0x30, 0x4a, 0xf8, 0x17,
+ 0xb4, 0x24, 0x02, 0xb1, 0x52, 0x7e, 0x37, 0x22, 0x6b, 0xc2, 0x24, 0x0f, 0x31, 0x81, 0x1e, 0xe7,
+ 0x47, 0x36, 0x61, 0xb6, 0xd4, 0xed, 0xb6, 0x1c, 0xda, 0xc4, 0x5e, 0xf2, 0x97, 0x18, 0x8d, 0x28,
+ 0x9f, 0xbf, 0xcd, 0x0b, 0x85, 0x8a, 0x1f, 0x7f, 0x86, 0x31, 0x49, 0x6b, 0x7c, 0x2b, 0x93, 0x68,
+ 0x34, 0x3b, 0xb9, 0xe3, 0x0f, 0x25, 0x7e, 0x18, 0x4f, 0xee, 0xbc, 0x89, 0x68, 0x41, 0x88, 0x10,
+ 0x98, 0xb2, 0xa4, 0xe6, 0xa6, 0xc9, 0x71, 0x65, 0x49, 0x1c, 0x2f, 0xa3, 0x03, 0xe5, 0x92, 0x74,
+ 0x43, 0xcc, 0x45, 0x4a, 0x17, 0xba, 0x21, 0x0a, 0xe7, 0x43, 0xe3, 0x87, 0xb2, 0xfa, 0xb2, 0x23,
+ 0x97, 0x14, 0xbd, 0x5d, 0xc9, 0x8e, 0x23, 0xf5, 0x76, 0x45, 0x5b, 0xff, 0x85, 0x0c, 0xcc, 0x6d,
+ 0x7a, 0x7b, 0x76, 0xc7, 0xf9, 0x06, 0xcf, 0xb2, 0xe7, 0xe2, 0xbc, 0x0c, 0x7e, 0x1a, 0xe5, 0x49,
+ 0x3d, 0xf1, 0xe0, 0x2a, 0x15, 0xb3, 0x95, 0x82, 0x4b, 0xc6, 0x4c, 0x6b, 0x0f, 0x3a, 0x76, 0x63,
+ 0xc3, 0x94, 0x97, 0x36, 0x38, 0x3a, 0x87, 0x1b, 0x3f, 0x9e, 0x85, 0x09, 0xe5, 0x13, 0x20, 0x9f,
+ 0x85, 0x49, 0x95, 0x8f, 0x6a, 0xf5, 0x51, 0xab, 0x35, 0x35, 0x2c, 0x34, 0xfb, 0x50, 0xbb, 0xad,
+ 0x99, 0x7d, 0xd8, 0x42, 0x47, 0xe8, 0x09, 0x8f, 0x36, 0xef, 0xa5, 0x1c, 0x6d, 0x4e, 0xf4, 0x64,
+ 0xe7, 0xdb, 0xc9, 0x03, 0xce, 0xf0, 0x2f, 0x6c, 0x1a, 0x3f, 0x95, 0x81, 0x62, 0xfc, 0x23, 0xfd,
+ 0x54, 0x46, 0xe5, 0x04, 0x26, 0xfe, 0x1f, 0xcb, 0x86, 0x09, 0x90, 0x65, 0xb8, 0xca, 0xd3, 0xea,
+ 0x7c, 0xf2, 0x8e, 0x66, 0x7d, 0x7f, 0x36, 0xdc, 0x57, 0xd4, 0xce, 0x0d, 0x48, 0xe3, 0x93, 0xff,
+ 0xce, 0xcf, 0x2d, 0x3d, 0x63, 0x7c, 0x00, 0xf3, 0xf1, 0xe1, 0x40, 0x0b, 0x7c, 0x09, 0x66, 0x74,
+ 0x78, 0x3c, 0x7d, 0x7a, 0x9c, 0xca, 0x8c, 0xe3, 0x1b, 0xbf, 0x93, 0x8d, 0xf3, 0x16, 0x8e, 0x28,
+ 0x4c, 0xe8, 0x74, 0xec, 0x9d, 0x56, 0x98, 0x3e, 0x99, 0x0b, 0x1d, 0x0e, 0x32, 0x65, 0xd9, 0x49,
+ 0xde, 0x13, 0x08, 0x83, 0x2e, 0x72, 0xe9, 0x41, 0x17, 0xe4, 0x46, 0xcc, 0x05, 0x4b, 0xc9, 0x10,
+ 0xf0, 0x90, 0xee, 0x58, 0x91, 0x1b, 0x56, 0xcc, 0xf3, 0xaa, 0x0c, 0xf3, 0x5a, 0x1a, 0x45, 0x49,
+ 0x3f, 0x12, 0x19, 0x5c, 0x03, 0x2c, 0xe0, 0xc4, 0xa9, 0xc8, 0x64, 0x0d, 0xc6, 0x58, 0x33, 0xef,
+ 0xda, 0x5d, 0x61, 0x58, 0x27, 0x61, 0x08, 0x56, 0x2b, 0x3c, 0xf0, 0x29, 0x51, 0x58, 0x2d, 0xca,
+ 0xb6, 0x7c, 0xed, 0xc5, 0x5b, 0x8e, 0x68, 0xfc, 0x51, 0x86, 0x7d, 0xff, 0x8d, 0x83, 0xef, 0xb3,
+ 0x47, 0x09, 0x58, 0x97, 0x06, 0xf8, 0x49, 0xfd, 0x7e, 0x96, 0x67, 0xc0, 0x16, 0xcb, 0xe7, 0x4d,
+ 0x18, 0xdd, 0xb2, 0xbd, 0x3d, 0x1a, 0x88, 0xdc, 0xd0, 0x2a, 0x17, 0x5e, 0x10, 0xe5, 0x2f, 0x08,
+ 0xf0, 0xb7, 0x29, 0x08, 0x54, 0x5b, 0x58, 0x76, 0x28, 0x5b, 0x98, 0x62, 0x9e, 0xcd, 0x3d, 0x31,
+ 0xf3, 0xec, 0x0f, 0x84, 0xc9, 0xae, 0x4b, 0xc1, 0x10, 0x59, 0xfa, 0xce, 0xc7, 0x93, 0xc5, 0x27,
+ 0xf2, 0x29, 0x46, 0xec, 0xc8, 0x0d, 0x35, 0xfd, 0xbc, 0x12, 0xc7, 0x70, 0x4c, 0xa2, 0x79, 0xe3,
+ 0xf7, 0x73, 0x7c, 0x8c, 0xc5, 0x40, 0x5d, 0xd4, 0x62, 0x9c, 0xf0, 0x3b, 0x61, 0x82, 0x5e, 0x0d,
+ 0x37, 0x45, 0x17, 0x8a, 0x8b, 0x90, 0x67, 0x6b, 0x53, 0x8c, 0x26, 0xe2, 0xb1, 0xf5, 0xab, 0xe2,
+ 0xb1, 0x72, 0xf6, 0x2d, 0xe3, 0x9e, 0xa4, 0x3e, 0xf8, 0x81, 0xdb, 0x96, 0xfa, 0x2d, 0x23, 0x06,
+ 0xb9, 0x04, 0xf9, 0x0d, 0xb7, 0x29, 0xb3, 0x41, 0xce, 0x63, 0xa4, 0xab, 0xf6, 0x84, 0xfb, 0x42,
+ 0xc6, 0x44, 0x0c, 0xd6, 0xd7, 0x30, 0x7f, 0xb4, 0xda, 0xd7, 0xf6, 0xae, 0x2d, 0x12, 0xd8, 0xab,
+ 0x7d, 0x8d, 0x52, 0x4d, 0xaf, 0xc2, 0xb4, 0xfe, 0x40, 0x9f, 0xf0, 0x22, 0x43, 0x33, 0x6b, 0xec,
+ 0x9d, 0x3f, 0xd5, 0x3a, 0xae, 0x13, 0x91, 0x15, 0x98, 0xd2, 0xb2, 0x50, 0x89, 0x1b, 0x2e, 0x34,
+ 0x6f, 0xea, 0x39, 0xac, 0x54, 0xf3, 0xa6, 0x46, 0xc2, 0xf6, 0x73, 0xd1, 0x7e, 0xe5, 0x9e, 0x2b,
+ 0xd1, 0x76, 0x81, 0x43, 0xae, 0x43, 0x81, 0x87, 0x94, 0x56, 0x2b, 0xea, 0x6d, 0x85, 0x8f, 0xb0,
+ 0x58, 0x48, 0xb6, 0x44, 0x54, 0x42, 0x08, 0x3f, 0x03, 0x45, 0x21, 0x92, 0xa2, 0xc7, 0xf5, 0x9e,
+ 0x83, 0x7c, 0xb9, 0x5a, 0x31, 0x55, 0x31, 0xd2, 0x70, 0x9a, 0x9e, 0x89, 0x50, 0xe3, 0xdb, 0x19,
+ 0x38, 0xbb, 0x41, 0x83, 0x87, 0xae, 0x77, 0x60, 0x52, 0x3f, 0xf0, 0x1c, 0xfe, 0x5e, 0x0c, 0x7e,
+ 0x88, 0x9f, 0x25, 0x6f, 0xc3, 0x08, 0xba, 0x33, 0xc5, 0x76, 0x86, 0x78, 0x1d, 0x2b, 0x53, 0x62,
+ 0x01, 0x8f, 0xa0, 0x6f, 0x94, 0xc9, 0x89, 0xc8, 0x9b, 0x90, 0xaf, 0xd0, 0xce, 0x61, 0xec, 0xc5,
+ 0x8c, 0x04, 0x71, 0x28, 0x10, 0x9a, 0xb4, 0x73, 0x68, 0x22, 0x89, 0xf1, 0x53, 0x59, 0x38, 0x95,
+ 0xd2, 0xac, 0xfb, 0x9f, 0x7d, 0x4a, 0xa5, 0xe2, 0x8a, 0x26, 0x15, 0xe5, 0x25, 0x65, 0xdf, 0x81,
+ 0x4f, 0x15, 0x92, 0x7f, 0x23, 0x03, 0x67, 0xf4, 0x05, 0x2a, 0xfc, 0x17, 0xef, 0x5f, 0x27, 0x6f,
+ 0xc1, 0xe8, 0x1a, 0xb5, 0x9b, 0x54, 0x66, 0xd3, 0x3f, 0x15, 0x26, 0x7f, 0xe1, 0xf1, 0x72, 0xbc,
+ 0x90, 0xb3, 0x8d, 0xa2, 0x2b, 0x38, 0x94, 0x54, 0x44, 0xe3, 0xb8, 0x3e, 0x6e, 0xc8, 0xd8, 0xd5,
+ 0xb4, 0xaa, 0x06, 0x5c, 0xf5, 0x7f, 0x37, 0x03, 0xcf, 0x0e, 0xa0, 0x61, 0x13, 0xc7, 0xa6, 0x5e,
+ 0x9d, 0x38, 0xdc, 0x51, 0x11, 0x4a, 0xde, 0x85, 0x99, 0x2d, 0xa1, 0xcf, 0xcb, 0xe9, 0xc8, 0x46,
+ 0xdf, 0x8b, 0x54, 0xf5, 0x2d, 0x39, 0x2f, 0x71, 0x64, 0x2d, 0xa8, 0x3a, 0x37, 0x30, 0xa8, 0x5a,
+ 0x8d, 0x51, 0xce, 0x0f, 0x1b, 0xa3, 0xfc, 0x41, 0xfc, 0x59, 0x6b, 0x91, 0x2a, 0x2e, 0x8a, 0xd0,
+ 0xce, 0xf4, 0x8f, 0xd0, 0x1e, 0x98, 0x90, 0xca, 0xf8, 0xf1, 0x0c, 0x14, 0x75, 0xde, 0x9f, 0x74,
+ 0x3e, 0xdf, 0xd1, 0xe6, 0xf3, 0xd9, 0xf4, 0xf9, 0xec, 0x3f, 0x91, 0xff, 0x6b, 0x26, 0xde, 0xd9,
+ 0xa1, 0x66, 0xd0, 0x80, 0xd1, 0x8a, 0xdb, 0xb6, 0x9d, 0x8e, 0xfa, 0x56, 0x63, 0x13, 0x21, 0xa6,
+ 0x28, 0x19, 0x2e, 0xa0, 0xfd, 0x3c, 0x8c, 0x6c, 0xb8, 0x9d, 0x52, 0x45, 0xb8, 0xf7, 0x21, 0x9f,
+ 0x8e, 0xdb, 0xb1, 0xec, 0xa6, 0xc9, 0x0b, 0xc8, 0x3a, 0x40, 0xbd, 0xe1, 0x51, 0xda, 0xa9, 0x3b,
+ 0xdf, 0xa0, 0x31, 0x4d, 0x83, 0x8d, 0x50, 0xab, 0x87, 0x82, 0x05, 0xef, 0x78, 0x7c, 0x44, 0xb4,
+ 0x7c, 0xe7, 0x1b, 0xaa, 0xbc, 0x55, 0xe8, 0x0d, 0x0a, 0x10, 0x11, 0xe1, 0xc3, 0x55, 0x4e, 0x53,
+ 0x3c, 0x46, 0x3a, 0x25, 0x1e, 0xae, 0x62, 0x00, 0xed, 0xe1, 0x2a, 0x06, 0x60, 0xa2, 0x7d, 0x8d,
+ 0x3a, 0x7b, 0xfb, 0xdc, 0x65, 0x64, 0x8a, 0x2f, 0xd5, 0x7d, 0x84, 0xa8, 0xa2, 0x9d, 0xe3, 0x18,
+ 0xff, 0x7a, 0x04, 0xce, 0x9a, 0x74, 0xcf, 0x61, 0x6a, 0xf2, 0x3d, 0xdf, 0xe9, 0xec, 0x69, 0x21,
+ 0xc7, 0x46, 0x6c, 0x21, 0x89, 0xbc, 0xaf, 0x0c, 0x12, 0x0e, 0xcc, 0x65, 0x28, 0xb0, 0x5d, 0x51,
+ 0x59, 0x4b, 0x78, 0x87, 0x82, 0xef, 0x22, 0xf3, 0x45, 0x2e, 0x8b, 0xc9, 0x2b, 0x62, 0xd7, 0x56,
+ 0x32, 0x73, 0xb3, 0x5d, 0xfb, 0x7b, 0x47, 0x4b, 0x50, 0x3f, 0xf4, 0x03, 0x8a, 0x27, 0x36, 0xb1,
+ 0x73, 0x87, 0xaa, 0x75, 0xbe, 0x8f, 0x6a, 0x7d, 0x17, 0xe6, 0x4b, 0x4d, 0x2e, 0xac, 0xed, 0x56,
+ 0xcd, 0x73, 0x3a, 0x0d, 0xa7, 0x6b, 0xb7, 0xe4, 0x71, 0x11, 0x47, 0xd9, 0x0e, 0xcb, 0xad, 0x6e,
+ 0x88, 0x60, 0xa6, 0x92, 0xb1, 0x6e, 0x54, 0x36, 0xea, 0xfc, 0xcd, 0x7f, 0x7e, 0x3d, 0x86, 0xdd,
+ 0x68, 0x76, 0x7c, 0xfe, 0xe8, 0xbf, 0x19, 0x16, 0xa3, 0x52, 0x8f, 0x3e, 0x08, 0x5b, 0xeb, 0xf5,
+ 0x28, 0x78, 0x87, 0x27, 0x0e, 0xe5, 0x7e, 0x0a, 0x41, 0xcb, 0x47, 0x5f, 0x05, 0x0d, 0x2f, 0xa2,
+ 0xab, 0xd7, 0xd7, 0x18, 0x5d, 0x21, 0x41, 0xe7, 0xfb, 0xfb, 0x2a, 0x1d, 0xc7, 0x23, 0x57, 0xd9,
+ 0x52, 0x68, 0xbb, 0x01, 0xc5, 0x75, 0x3e, 0x1e, 0x1d, 0x01, 0x3c, 0x84, 0xf2, 0x23, 0x80, 0x82,
+ 0x42, 0xde, 0x86, 0xb9, 0xd5, 0xf2, 0xb2, 0x34, 0x6a, 0x56, 0xdc, 0x46, 0x0f, 0x6f, 0x95, 0x01,
+ 0xeb, 0xc3, 0x39, 0xa4, 0x8d, 0x65, 0xb6, 0xb8, 0xd3, 0xd0, 0xc8, 0x45, 0x18, 0xab, 0x56, 0xf8,
+ 0xd8, 0x4f, 0xa8, 0xd9, 0xf1, 0x85, 0xb7, 0x86, 0x2c, 0x24, 0x9b, 0x91, 0x8e, 0x3a, 0x79, 0xac,
+ 0x32, 0x79, 0x76, 0x08, 0xfd, 0xf4, 0x4d, 0x98, 0x5a, 0x71, 0x83, 0x6a, 0xc7, 0x0f, 0xec, 0x4e,
+ 0x83, 0x56, 0x2b, 0x6a, 0x4a, 0xc1, 0x1d, 0x37, 0xb0, 0x1c, 0x51, 0xc2, 0x5a, 0xae, 0x63, 0x92,
+ 0xcf, 0x23, 0xe9, 0x2d, 0xda, 0xa1, 0x5e, 0x94, 0x4a, 0x70, 0x84, 0x8f, 0x2d, 0x23, 0xdd, 0x0b,
+ 0x4b, 0x4c, 0x1d, 0x51, 0x64, 0xee, 0xe7, 0x2f, 0xc4, 0x94, 0xdd, 0x26, 0xf5, 0xef, 0x5f, 0xfb,
+ 0x3e, 0xcb, 0xdc, 0xaf, 0xf4, 0x0d, 0x45, 0xe6, 0xb5, 0x54, 0xf9, 0xfa, 0xef, 0x62, 0xe6, 0xfe,
+ 0x04, 0x2e, 0xf9, 0x3c, 0x8c, 0xe0, 0x4f, 0xa1, 0x6c, 0xcd, 0xa5, 0xb0, 0x8d, 0x14, 0xad, 0x06,
+ 0x7f, 0xe0, 0x15, 0x09, 0x48, 0x15, 0xc6, 0x84, 0x9e, 0x7f, 0x92, 0xfc, 0xd3, 0xe2, 0xc0, 0xc0,
+ 0x57, 0x86, 0xa0, 0x37, 0x9a, 0x30, 0xa9, 0x56, 0xc8, 0xbe, 0x88, 0x35, 0xdb, 0xdf, 0xa7, 0x4d,
+ 0xf6, 0x4b, 0x3c, 0x1d, 0x81, 0x5f, 0xc4, 0x3e, 0x42, 0x2d, 0xd6, 0x0e, 0x53, 0x41, 0x61, 0x22,
+ 0xbe, 0xea, 0xdf, 0xf3, 0x45, 0x53, 0xc4, 0xc9, 0xdf, 0x41, 0x2b, 0x52, 0xd3, 0x14, 0x45, 0xc6,
+ 0x0f, 0xc0, 0xfc, 0x46, 0xaf, 0xd5, 0xb2, 0x77, 0x5a, 0x54, 0xa6, 0x16, 0x0e, 0xec, 0x80, 0x92,
+ 0x15, 0x18, 0xa9, 0x2b, 0x4f, 0xc6, 0xcd, 0x85, 0xb9, 0x9b, 0x23, 0x1c, 0x74, 0x8c, 0xcb, 0x60,
+ 0x94, 0x74, 0xec, 0xb1, 0x38, 0x4e, 0x6a, 0xfc, 0x56, 0xf4, 0xd4, 0xf0, 0x96, 0x67, 0x37, 0x0e,
+ 0xc2, 0x67, 0x03, 0x87, 0x7d, 0x35, 0xf9, 0xb6, 0x6c, 0x84, 0xbe, 0x7f, 0xa6, 0x35, 0xf8, 0xb8,
+ 0xc6, 0x90, 0xb7, 0x61, 0x42, 0xec, 0xa1, 0x4a, 0x6e, 0x1f, 0x4c, 0xa0, 0x20, 0x5f, 0x19, 0x8f,
+ 0xf9, 0x38, 0xa8, 0xe8, 0xa8, 0x1a, 0xe8, 0x5d, 0xb9, 0x7f, 0xed, 0xd3, 0x50, 0x0d, 0xf4, 0x3a,
+ 0x06, 0x2c, 0xdd, 0x7f, 0x3c, 0x11, 0x1f, 0x5b, 0xb1, 0x76, 0x6f, 0xa8, 0xd9, 0x3c, 0x32, 0xd1,
+ 0x41, 0x2d, 0xca, 0xe6, 0xa1, 0x1e, 0xd4, 0x42, 0xd4, 0x70, 0x4e, 0xb2, 0xc7, 0xcc, 0xc9, 0xbb,
+ 0x72, 0x4e, 0x72, 0xfd, 0x17, 0xc6, 0xdc, 0x80, 0x79, 0xa8, 0x47, 0x5f, 0x48, 0x7e, 0xa8, 0x53,
+ 0xfe, 0x33, 0x98, 0xb6, 0x94, 0x93, 0xc4, 0xa5, 0xa8, 0xe0, 0xa4, 0x9a, 0x0e, 0x46, 0x86, 0x67,
+ 0x7a, 0x8c, 0x68, 0xfe, 0x02, 0x4c, 0x96, 0x82, 0xc0, 0x6e, 0xec, 0xd3, 0x66, 0x85, 0x89, 0x27,
+ 0x25, 0xf1, 0x80, 0x2d, 0xe0, 0xea, 0x1d, 0x8e, 0x8a, 0xcb, 0x13, 0x69, 0xd9, 0xbe, 0x70, 0xb1,
+ 0x0b, 0x13, 0x69, 0x31, 0x88, 0x9e, 0x48, 0x8b, 0x41, 0xc8, 0x55, 0x18, 0xab, 0x76, 0x1e, 0x38,
+ 0x6c, 0x4c, 0x0a, 0xca, 0xe3, 0xe8, 0x1c, 0xa4, 0x0a, 0x57, 0x81, 0x45, 0xde, 0x54, 0x74, 0xec,
+ 0xf1, 0xe8, 0x3c, 0xcd, 0x2d, 0x30, 0x61, 0xcc, 0xb2, 0xaa, 0x3f, 0x87, 0x4a, 0xf7, 0x0d, 0x18,
+ 0x93, 0x86, 0x35, 0x88, 0xce, 0xd0, 0x82, 0x32, 0x19, 0x1c, 0x29, 0x91, 0xf1, 0xa5, 0x39, 0xe5,
+ 0x09, 0x8c, 0x09, 0xe5, 0xa5, 0x39, 0xe5, 0x09, 0x0c, 0xed, 0xa5, 0x39, 0xe5, 0x31, 0x8c, 0xd0,
+ 0x26, 0x31, 0x79, 0xac, 0x4d, 0xe2, 0x3e, 0x4c, 0xd6, 0x6c, 0x2f, 0x70, 0x98, 0x8e, 0xd2, 0x09,
+ 0xfc, 0x85, 0x29, 0xcd, 0x8c, 0xa7, 0x14, 0xad, 0x3c, 0x2f, 0x1f, 0x47, 0xeb, 0x2a, 0xf8, 0xfa,
+ 0x2b, 0x5e, 0x11, 0x3c, 0xdd, 0xc1, 0x6e, 0xfa, 0x93, 0x38, 0xd8, 0xe1, 0xa0, 0xa2, 0xe9, 0x66,
+ 0x26, 0x32, 0x10, 0xa0, 0x0e, 0x1d, 0xb3, 0xdf, 0x84, 0x88, 0xe4, 0xcb, 0x30, 0xc9, 0xfe, 0xc6,
+ 0xf7, 0xc8, 0x1d, 0xea, 0x2f, 0x14, 0xb1, 0x73, 0xcf, 0xa7, 0x7e, 0xfd, 0xfc, 0xd1, 0xf2, 0x3a,
+ 0x0d, 0xf8, 0x07, 0x8c, 0x8c, 0xe3, 0x36, 0x59, 0x8d, 0x1b, 0x79, 0x0f, 0x26, 0xe5, 0x9b, 0xf9,
+ 0x38, 0x49, 0xb3, 0x91, 0x8b, 0x64, 0x53, 0xc0, 0x13, 0xb9, 0xec, 0x54, 0x02, 0xb6, 0xcd, 0x97,
+ 0xba, 0x5c, 0x40, 0x12, 0x65, 0xb5, 0x77, 0x13, 0xc2, 0x51, 0xa2, 0x91, 0xf7, 0x61, 0xb2, 0xd4,
+ 0xed, 0x46, 0x12, 0x67, 0x4e, 0xb1, 0xcb, 0x74, 0xbb, 0x56, 0xaa, 0xd4, 0xd1, 0x28, 0xe2, 0x82,
+ 0x79, 0xfe, 0x44, 0x82, 0x99, 0xbc, 0x1e, 0x6a, 0xeb, 0xa7, 0x22, 0x23, 0xa3, 0x38, 0xc7, 0x68,
+ 0xaa, 0x3f, 0x57, 0xdc, 0xcb, 0x30, 0xc5, 0xad, 0x6e, 0x52, 0x9b, 0x39, 0x9d, 0xf8, 0x7a, 0x52,
+ 0x94, 0x1a, 0x9d, 0x86, 0xac, 0xc2, 0x34, 0x0f, 0x29, 0x6b, 0x89, 0x24, 0x83, 0x0b, 0x67, 0xa2,
+ 0x57, 0x6f, 0x79, 0x24, 0x5a, 0x0b, 0x73, 0x4f, 0xdb, 0x1a, 0x97, 0x18, 0x91, 0xf1, 0x07, 0x19,
+ 0x38, 0xd3, 0x67, 0xc6, 0xc3, 0x14, 0x74, 0x99, 0x63, 0x1e, 0xfe, 0xbf, 0x1a, 0x69, 0x59, 0x8a,
+ 0x91, 0x55, 0x68, 0x59, 0xea, 0x7c, 0x49, 0x7d, 0xcb, 0x05, 0x22, 0x9e, 0xfd, 0x57, 0x9e, 0xc7,
+ 0x17, 0x79, 0x50, 0x63, 0x9b, 0x90, 0xc0, 0xe3, 0x8d, 0x5a, 0x31, 0x1e, 0x1f, 0x2d, 0x3d, 0xef,
+ 0x71, 0x50, 0x38, 0xad, 0x1f, 0xb9, 0xda, 0x17, 0x9c, 0xc2, 0xda, 0x38, 0xca, 0xc0, 0x84, 0xf2,
+ 0x1d, 0x92, 0xf3, 0x4a, 0x80, 0x5a, 0x91, 0xe7, 0xb5, 0x57, 0x38, 0x64, 0xf9, 0x4e, 0x84, 0x1f,
+ 0x55, 0xf6, 0x78, 0x7b, 0xe8, 0x5d, 0xa6, 0x0a, 0x29, 0x69, 0xfa, 0xda, 0x9a, 0xf1, 0xd2, 0xc4,
+ 0x72, 0x7c, 0xd3, 0xd1, 0xf6, 0x83, 0x52, 0x23, 0x70, 0x1e, 0xd0, 0x21, 0x36, 0x9d, 0xe8, 0x4d,
+ 0x47, 0xdb, 0x0f, 0x2c, 0x1b, 0xc9, 0x12, 0x6f, 0x3a, 0x86, 0x0c, 0x8d, 0x1f, 0xce, 0x00, 0xdc,
+ 0xab, 0x96, 0x31, 0xcf, 0xe6, 0x27, 0x55, 0x0a, 0xd2, 0x73, 0x97, 0x49, 0xee, 0x03, 0xd4, 0x81,
+ 0x1a, 0x4c, 0xeb, 0x58, 0xe4, 0x5d, 0x98, 0xa9, 0x37, 0x3c, 0xb7, 0xd5, 0xda, 0xb1, 0x1b, 0x07,
+ 0xeb, 0x4e, 0x87, 0xf2, 0xa4, 0x51, 0x23, 0x7c, 0x2b, 0xf2, 0xc3, 0x22, 0xab, 0xc5, 0xca, 0xcc,
+ 0x38, 0xb2, 0xf1, 0xc7, 0x19, 0x98, 0xc0, 0xc3, 0x46, 0xab, 0x85, 0xca, 0xce, 0xf7, 0xd3, 0xd3,
+ 0x26, 0x61, 0xbf, 0x06, 0x8c, 0xe8, 0x1b, 0x30, 0x13, 0x43, 0x23, 0x06, 0x8c, 0xd6, 0x31, 0x1a,
+ 0x58, 0xb5, 0x0c, 0xf0, 0xf8, 0x60, 0x53, 0x94, 0x18, 0xab, 0x0a, 0xd9, 0xfd, 0x6b, 0x78, 0xbd,
+ 0xb7, 0x0c, 0xe0, 0x48, 0x90, 0x3c, 0x52, 0x90, 0x78, 0x4b, 0xee, 0x5f, 0x33, 0x15, 0x2c, 0x63,
+ 0x03, 0x46, 0xeb, 0xae, 0x17, 0xac, 0x1c, 0x72, 0x2d, 0xbe, 0x42, 0xfd, 0x86, 0x7a, 0x7f, 0xe7,
+ 0xa0, 0xcd, 0xbc, 0x61, 0x8a, 0x22, 0xb2, 0x04, 0x23, 0x37, 0x1d, 0xda, 0x6a, 0xaa, 0x8e, 0x9a,
+ 0xbb, 0x0c, 0x60, 0x72, 0x38, 0x3b, 0xe9, 0x9c, 0x8e, 0xf2, 0x40, 0x47, 0x1e, 0xa1, 0x9f, 0x74,
+ 0xc1, 0x96, 0xb5, 0xf1, 0x7d, 0x41, 0x7f, 0x39, 0x54, 0xab, 0x69, 0xc0, 0x50, 0xff, 0x47, 0x19,
+ 0x58, 0xec, 0x4f, 0xa2, 0x3a, 0x99, 0x66, 0x06, 0x38, 0x99, 0xbe, 0x14, 0xbf, 0x6f, 0x42, 0x34,
+ 0x71, 0xdf, 0x14, 0xdd, 0x32, 0x55, 0xd0, 0xc7, 0xb7, 0x11, 0x3e, 0xec, 0x7c, 0x7e, 0x40, 0x9b,
+ 0x11, 0x91, 0x4f, 0x73, 0x80, 0x34, 0xa6, 0xa0, 0x35, 0x7e, 0x2d, 0x0f, 0x67, 0xfb, 0x52, 0x90,
+ 0x35, 0x25, 0xa5, 0xfc, 0x74, 0x98, 0xcc, 0xba, 0x2f, 0xfe, 0x15, 0xfc, 0x17, 0xdd, 0xb8, 0xe2,
+ 0xa1, 0x27, 0x9b, 0x61, 0x2a, 0xf1, 0x2c, 0xf2, 0x7a, 0xf5, 0x58, 0x5e, 0x1c, 0x1d, 0x99, 0x41,
+ 0x32, 0xab, 0x38, 0x06, 0x29, 0xd1, 0xc0, 0x76, 0x5a, 0xbe, 0xfa, 0xd9, 0x35, 0x39, 0xc8, 0x94,
+ 0x65, 0x91, 0xe7, 0x6f, 0x3e, 0xdd, 0xf3, 0xd7, 0xf8, 0xd7, 0x19, 0x18, 0x0f, 0x9b, 0x4d, 0x16,
+ 0xe1, 0xf4, 0x96, 0x59, 0x2a, 0xaf, 0x5a, 0x5b, 0x1f, 0xd4, 0x56, 0xad, 0x7b, 0x1b, 0xf5, 0xda,
+ 0x6a, 0xb9, 0x7a, 0xb3, 0xba, 0x5a, 0x29, 0x3e, 0x43, 0x66, 0x61, 0xea, 0xde, 0xc6, 0x9d, 0x8d,
+ 0xcd, 0xed, 0x0d, 0x6b, 0xd5, 0x34, 0x37, 0xcd, 0x62, 0x86, 0x4c, 0xc1, 0xb8, 0xb9, 0x52, 0x2a,
+ 0x5b, 0x1b, 0x9b, 0x95, 0xd5, 0x62, 0x96, 0x14, 0x61, 0xb2, 0xbc, 0xb9, 0xb1, 0xb1, 0x5a, 0xde,
+ 0xaa, 0xde, 0xaf, 0x6e, 0x7d, 0x50, 0xcc, 0x11, 0x02, 0xd3, 0x88, 0x50, 0x33, 0xab, 0x1b, 0xe5,
+ 0x6a, 0xad, 0xb4, 0x5e, 0xcc, 0x33, 0x18, 0xc3, 0x57, 0x60, 0x23, 0x21, 0xa3, 0x3b, 0xf7, 0x56,
+ 0x56, 0x8b, 0xa3, 0x0c, 0x85, 0xfd, 0xa5, 0xa0, 0x8c, 0xb1, 0xea, 0x11, 0xa5, 0x52, 0xda, 0x2a,
+ 0xad, 0x94, 0xea, 0xab, 0xc5, 0x02, 0x39, 0x03, 0x73, 0x1a, 0xc8, 0x5a, 0xdf, 0xbc, 0x55, 0xdd,
+ 0x28, 0x8e, 0x93, 0x79, 0x28, 0x86, 0xb0, 0xca, 0x8a, 0x75, 0xaf, 0xbe, 0x6a, 0x16, 0x21, 0x0e,
+ 0xdd, 0x28, 0xdd, 0x5d, 0x2d, 0x4e, 0x18, 0xef, 0xf0, 0xa0, 0x20, 0x3e, 0xd4, 0xe4, 0x34, 0x90,
+ 0xfa, 0x56, 0x69, 0xeb, 0x5e, 0x3d, 0xd6, 0xf9, 0x09, 0x18, 0xab, 0xdf, 0x2b, 0x97, 0x57, 0xeb,
+ 0xf5, 0x62, 0x86, 0x00, 0x8c, 0xde, 0x2c, 0x55, 0xd7, 0x57, 0x2b, 0xc5, 0xac, 0xf1, 0x93, 0x19,
+ 0x98, 0x95, 0xaa, 0x97, 0xbc, 0x3c, 0xf8, 0x84, 0xdf, 0xe2, 0xbb, 0xda, 0x89, 0x52, 0xc6, 0x6c,
+ 0xc4, 0x2a, 0x19, 0xf0, 0x19, 0x7a, 0x70, 0x2a, 0x15, 0x99, 0x7c, 0x00, 0x45, 0xd9, 0x80, 0xbb,
+ 0x76, 0xd0, 0xd8, 0x8f, 0xc4, 0xd8, 0xf3, 0xb1, 0x4a, 0x62, 0x68, 0xdc, 0x9c, 0x18, 0xbd, 0x9d,
+ 0x96, 0x60, 0x63, 0x7c, 0x27, 0x03, 0x67, 0xfa, 0x10, 0x93, 0x32, 0x8c, 0x86, 0x19, 0xb6, 0x07,
+ 0xb8, 0x27, 0xcd, 0x7f, 0xf7, 0x68, 0x49, 0x20, 0xe2, 0x13, 0x52, 0xf8, 0x97, 0x39, 0x1a, 0xa6,
+ 0xcc, 0xc6, 0xbc, 0xd5, 0x7c, 0x4c, 0xce, 0xc6, 0x86, 0x53, 0xd4, 0x54, 0xda, 0xae, 0xaf, 0x4c,
+ 0x88, 0x01, 0xc9, 0xd9, 0x0f, 0x7d, 0x4c, 0x5c, 0x6d, 0x7c, 0x3b, 0xc3, 0x54, 0xa5, 0x38, 0x22,
+ 0xd3, 0x20, 0x4b, 0xbe, 0xdf, 0x6b, 0x53, 0xd3, 0x6d, 0xd1, 0x92, 0xb9, 0x21, 0xf6, 0x02, 0xd4,
+ 0xfd, 0x6c, 0x2c, 0x40, 0x25, 0xdd, 0xb2, 0xbd, 0x8e, 0x76, 0x15, 0xa9, 0xd2, 0x90, 0x37, 0x01,
+ 0xc2, 0xa7, 0xbc, 0x65, 0x30, 0x3e, 0x4f, 0x46, 0x21, 0xa0, 0xba, 0xf6, 0xaa, 0x20, 0x1b, 0x7f,
+ 0x31, 0x03, 0x93, 0xe2, 0x08, 0x52, 0x6a, 0x51, 0x2f, 0xf8, 0x64, 0x6b, 0xe6, 0x4d, 0x6d, 0xcd,
+ 0x84, 0xde, 0xf8, 0x0a, 0x7f, 0x56, 0x9c, 0xba, 0x5c, 0xfe, 0x8b, 0x0c, 0x14, 0xe3, 0x88, 0xe4,
+ 0x5d, 0x28, 0xd4, 0xe9, 0x03, 0xea, 0x39, 0xc1, 0xa1, 0x90, 0x7e, 0xf2, 0x2d, 0x12, 0x8e, 0x23,
+ 0xca, 0xb8, 0x79, 0xd5, 0x17, 0xbf, 0xcc, 0x90, 0x66, 0x58, 0x21, 0xae, 0x18, 0x11, 0x72, 0x4f,
+ 0xca, 0x88, 0x60, 0xfc, 0x4f, 0x59, 0x38, 0x73, 0x8b, 0x06, 0x6a, 0x9f, 0xc2, 0xbb, 0xe3, 0xcf,
+ 0x0c, 0xd7, 0x2f, 0xa5, 0x27, 0x0b, 0x30, 0x86, 0x45, 0x72, 0x7e, 0x4d, 0xf9, 0x93, 0xac, 0x84,
+ 0xeb, 0x3a, 0xa7, 0x3d, 0x76, 0xd0, 0xa7, 0xee, 0x2b, 0x4a, 0xfa, 0xf3, 0x70, 0x59, 0x5f, 0x84,
+ 0x69, 0xcc, 0xef, 0xd9, 0x63, 0x9f, 0x03, 0x6d, 0x0a, 0x63, 0x4a, 0xc1, 0x8c, 0x41, 0xc9, 0x2b,
+ 0x50, 0x64, 0x90, 0x52, 0xe3, 0xa0, 0xe3, 0x3e, 0x6c, 0xd1, 0xe6, 0x1e, 0xe5, 0x6f, 0x2f, 0x17,
+ 0xcc, 0x04, 0x5c, 0xf2, 0xbc, 0xd7, 0xe1, 0x07, 0x21, 0xda, 0x44, 0x8b, 0x87, 0xe0, 0x19, 0x41,
+ 0x17, 0xdf, 0x84, 0x89, 0x8f, 0xf9, 0x94, 0x81, 0xf1, 0x3f, 0x66, 0x60, 0x1e, 0x3b, 0xa7, 0x54,
+ 0x8c, 0xf6, 0xf7, 0xcf, 0x44, 0xa3, 0xa5, 0x64, 0xf7, 0xb6, 0x19, 0x48, 0xff, 0x14, 0xc2, 0x51,
+ 0x8c, 0x2c, 0x2c, 0xd9, 0x21, 0x2c, 0x2c, 0xf5, 0x93, 0x3c, 0xd5, 0x38, 0xa4, 0x81, 0x88, 0x3f,
+ 0xb0, 0x1d, 0x4d, 0xb9, 0xf1, 0xe7, 0xb3, 0x30, 0x66, 0x52, 0x7c, 0xc3, 0x8e, 0x5c, 0x84, 0xb1,
+ 0x0d, 0x37, 0xa0, 0xfe, 0x5d, 0xed, 0xc1, 0xc2, 0x0e, 0x03, 0x59, 0xed, 0xa6, 0x29, 0x0b, 0xd9,
+ 0x82, 0xaf, 0x79, 0x6e, 0xb3, 0xd7, 0x08, 0xd4, 0x05, 0xdf, 0xe5, 0x20, 0x53, 0x96, 0x91, 0xd7,
+ 0x60, 0x5c, 0x70, 0x0e, 0x6f, 0xec, 0xd0, 0xd3, 0xd4, 0xa3, 0xe1, 0x1b, 0x88, 0x11, 0x02, 0x2a,
+ 0xaa, 0x5c, 0x6b, 0xc8, 0x2b, 0x8a, 0x6a, 0x42, 0x11, 0x90, 0xfa, 0xf7, 0xc8, 0x00, 0xfd, 0xfb,
+ 0x33, 0x30, 0x5a, 0xf2, 0x7d, 0x1a, 0xc8, 0x38, 0xe5, 0xc9, 0x30, 0xd3, 0x8b, 0x4f, 0x03, 0xce,
+ 0xd8, 0xc6, 0x72, 0x53, 0xe0, 0x19, 0x7f, 0x94, 0x85, 0x11, 0xfc, 0x13, 0x6f, 0x29, 0xbd, 0xc6,
+ 0xbe, 0x76, 0x4b, 0xe9, 0x35, 0xf6, 0x4d, 0x84, 0x92, 0x6b, 0x78, 0xee, 0x97, 0x89, 0xe8, 0x45,
+ 0xef, 0xd1, 0xa0, 0xdd, 0x8c, 0xc0, 0xa6, 0x8a, 0x13, 0x5e, 0xdf, 0xe6, 0x52, 0xb3, 0x13, 0x9c,
+ 0x86, 0xec, 0x66, 0x5d, 0xf4, 0x18, 0x53, 0x9f, 0xb8, 0xbe, 0x99, 0xdd, 0xac, 0xe3, 0x68, 0xac,
+ 0x95, 0x96, 0xdf, 0xb8, 0xa1, 0xbe, 0xad, 0xe9, 0xef, 0xdb, 0xcb, 0x6f, 0xdc, 0x30, 0x45, 0x09,
+ 0x1b, 0x5f, 0x6c, 0x33, 0x5e, 0x63, 0xf2, 0xb8, 0x5a, 0x1c, 0x5f, 0xec, 0x1b, 0x5e, 0x59, 0x9a,
+ 0x11, 0x02, 0x59, 0x86, 0x09, 0x11, 0xcd, 0x8d, 0xf8, 0x4a, 0xb4, 0xb5, 0x88, 0xf6, 0xe6, 0x14,
+ 0x2a, 0x12, 0xbf, 0xd0, 0x12, 0x13, 0x24, 0x9f, 0xcb, 0x12, 0x17, 0x5a, 0x72, 0x0a, 0x7d, 0x53,
+ 0x41, 0x89, 0xc2, 0x82, 0xa3, 0x78, 0x59, 0x35, 0x2c, 0x18, 0xf3, 0xb5, 0x86, 0x08, 0xc6, 0x2f,
+ 0x66, 0xa1, 0x50, 0x6b, 0xf5, 0xf6, 0x9c, 0xce, 0xfd, 0x6b, 0x7f, 0xa2, 0xef, 0xbb, 0xbf, 0x0e,
+ 0xb8, 0x49, 0x88, 0x13, 0x81, 0x34, 0x0f, 0xf3, 0xa6, 0x09, 0xe5, 0x83, 0x93, 0x20, 0x1a, 0xb9,
+ 0x0e, 0x62, 0x61, 0x8a, 0xe7, 0xfe, 0x4e, 0xe9, 0x04, 0xfc, 0xa1, 0x1b, 0x49, 0x22, 0x50, 0xc9,
+ 0xdb, 0x30, 0x11, 0x3d, 0xb4, 0x1d, 0xbd, 0xe2, 0xa7, 0x52, 0x96, 0xa3, 0xf2, 0xfb, 0xd7, 0x4c,
+ 0x15, 0xdd, 0xf8, 0x85, 0x51, 0x98, 0x54, 0xdb, 0x43, 0x4c, 0x98, 0xf3, 0x5b, 0xec, 0x28, 0x2c,
+ 0x3c, 0x89, 0xba, 0x58, 0x28, 0xb6, 0xd3, 0xf3, 0x7a, 0x83, 0x18, 0x1e, 0x77, 0x2b, 0x92, 0x61,
+ 0xe8, 0x6b, 0xcf, 0x98, 0xb3, 0x7e, 0x04, 0xe6, 0x78, 0xa4, 0x04, 0x05, 0xb7, 0xeb, 0xef, 0xd1,
+ 0x8e, 0x23, 0x6f, 0x2f, 0x2e, 0x68, 0x8c, 0x36, 0x45, 0x61, 0x82, 0x57, 0x48, 0x46, 0xde, 0x80,
+ 0x51, 0xb7, 0x4b, 0x3b, 0xb6, 0x23, 0xf6, 0xb8, 0x67, 0x63, 0x0c, 0x68, 0xa7, 0x54, 0x55, 0x08,
+ 0x05, 0x32, 0xb9, 0x0a, 0x79, 0xf7, 0x20, 0x9c, 0xaf, 0xb3, 0x3a, 0xd1, 0x41, 0x60, 0x2b, 0x24,
+ 0x88, 0xc8, 0x08, 0x3e, 0xb2, 0xdb, 0xbb, 0x62, 0xc6, 0x74, 0x82, 0xdb, 0x76, 0x7b, 0x57, 0x25,
+ 0x60, 0x88, 0xe4, 0x3d, 0x80, 0xae, 0xbd, 0x47, 0x3d, 0xab, 0xd9, 0x0b, 0x0e, 0xc5, 0xbc, 0x3d,
+ 0xaf, 0x91, 0xd5, 0x58, 0x71, 0xa5, 0x17, 0x1c, 0x2a, 0xb4, 0xe3, 0x5d, 0x09, 0x24, 0x25, 0x80,
+ 0xb6, 0x1d, 0x04, 0xd4, 0x6b, 0xbb, 0xc2, 0x95, 0x6b, 0x62, 0x79, 0x49, 0x63, 0x70, 0x37, 0x2c,
+ 0x56, 0x38, 0x28, 0x44, 0xd8, 0x68, 0xc7, 0xb3, 0xc5, 0xa3, 0x8b, 0xb1, 0x46, 0x3b, 0x9e, 0xd6,
+ 0x4b, 0x86, 0x48, 0x3e, 0x0f, 0x63, 0x4d, 0xc7, 0x6f, 0xb8, 0x5e, 0x53, 0xe4, 0x27, 0x78, 0x4e,
+ 0xa3, 0xa9, 0xf0, 0x32, 0x85, 0x4c, 0xa2, 0xb3, 0xd6, 0x8a, 0xbc, 0x65, 0x1b, 0xee, 0x43, 0xf1,
+ 0xa0, 0xbf, 0xde, 0xda, 0x7a, 0x58, 0xac, 0xb6, 0x36, 0x22, 0x62, 0x53, 0xb9, 0xe7, 0x04, 0x2d,
+ 0x7b, 0x47, 0xdc, 0x1a, 0xeb, 0x53, 0x79, 0x0b, 0x8b, 0xd4, 0xa9, 0xe4, 0xc8, 0xe4, 0x4d, 0x28,
+ 0xd0, 0x4e, 0xe0, 0xd9, 0x96, 0xd3, 0x14, 0x21, 0x70, 0x7a, 0xa3, 0xd9, 0x06, 0x6c, 0x57, 0x2b,
+ 0x6a, 0xa3, 0x11, 0xbf, 0xda, 0x64, 0xe3, 0xe3, 0x37, 0x9c, 0xb6, 0x88, 0x5c, 0xd3, 0xc7, 0xa7,
+ 0x5e, 0xae, 0xde, 0x55, 0xc7, 0x87, 0x21, 0x7e, 0x21, 0xff, 0x3f, 0xff, 0xdc, 0x52, 0x66, 0x05,
+ 0xa0, 0x20, 0x13, 0x30, 0x18, 0xeb, 0x70, 0xb6, 0xef, 0xa2, 0x27, 0x97, 0xa1, 0xb8, 0x6b, 0x0b,
+ 0x0b, 0x52, 0x63, 0xdf, 0xee, 0x74, 0x68, 0x4b, 0x88, 0x9b, 0x19, 0x09, 0x2f, 0x73, 0x30, 0xe7,
+ 0x6c, 0xbc, 0x07, 0xf3, 0x69, 0xbd, 0x25, 0x2f, 0xc0, 0xa4, 0x9a, 0x6b, 0x42, 0x30, 0x99, 0xb0,
+ 0xbb, 0x8e, 0xcc, 0x36, 0x21, 0x18, 0xfc, 0x6a, 0x06, 0x9e, 0x1b, 0xf4, 0xed, 0x90, 0x45, 0x28,
+ 0x74, 0x3d, 0xc7, 0x45, 0x1d, 0x8d, 0x4b, 0xb8, 0xf0, 0x37, 0x39, 0x07, 0xc0, 0x95, 0x89, 0xc0,
+ 0xde, 0x13, 0xae, 0xeb, 0xe6, 0x38, 0x42, 0xb6, 0xec, 0x3d, 0x9f, 0xbc, 0x0a, 0xb3, 0x4d, 0xba,
+ 0x6b, 0xf7, 0x5a, 0x81, 0xe5, 0x37, 0xf6, 0x69, 0x13, 0xa3, 0x45, 0xd0, 0x25, 0xc9, 0x2c, 0x8a,
+ 0x82, 0xba, 0x84, 0x27, 0x5a, 0x3c, 0xd2, 0xa7, 0xc5, 0xb7, 0xf3, 0x85, 0x4c, 0x31, 0x6b, 0xa2,
+ 0x67, 0x8e, 0xf1, 0xcd, 0x2c, 0x2c, 0xf4, 0x5b, 0x2c, 0xe4, 0x9d, 0xb4, 0x31, 0xe0, 0x36, 0x70,
+ 0x15, 0xae, 0xda, 0xc0, 0x95, 0xda, 0xc8, 0x32, 0x84, 0xb1, 0x1e, 0xc7, 0xc5, 0x6d, 0x4b, 0x18,
+ 0xa3, 0xe9, 0xda, 0xbe, 0xff, 0x90, 0x7d, 0x0f, 0x39, 0x25, 0x01, 0x9c, 0x80, 0xa9, 0x34, 0x12,
+ 0x46, 0x3e, 0x07, 0xd0, 0x68, 0xb9, 0x3e, 0xc5, 0xab, 0x66, 0xb1, 0xd1, 0x72, 0x87, 0xd7, 0x10,
+ 0xaa, 0xde, 0x2d, 0x22, 0xb4, 0xec, 0x36, 0xa9, 0x98, 0x40, 0x1b, 0xce, 0xf4, 0x91, 0x0e, 0x6c,
+ 0x7a, 0xa2, 0x37, 0x1e, 0x65, 0xc6, 0xf8, 0x5e, 0xf8, 0xd2, 0x63, 0x7c, 0xc4, 0xb3, 0xfd, 0xd6,
+ 0xc8, 0x21, 0x90, 0xa4, 0x08, 0x60, 0xdc, 0x85, 0xdb, 0x66, 0xcf, 0x0b, 0xb9, 0x73, 0xc8, 0x3d,
+ 0xaf, 0x45, 0x96, 0x60, 0x42, 0xbe, 0x08, 0xc3, 0x14, 0x59, 0xce, 0x1c, 0x04, 0xe8, 0x0e, 0xc5,
+ 0xc5, 0x83, 0x79, 0x0a, 0x31, 0xa2, 0x47, 0x6c, 0x91, 0xe3, 0x08, 0x61, 0x67, 0x7f, 0x51, 0xf5,
+ 0x73, 0x72, 0x7d, 0xeb, 0x82, 0x59, 0x94, 0xfe, 0x74, 0x46, 0x4e, 0x7f, 0x52, 0xb2, 0x1d, 0xd7,
+ 0x3e, 0x02, 0x18, 0x7f, 0x21, 0x1a, 0x86, 0x7f, 0xb3, 0x2d, 0x5b, 0x7e, 0x75, 0x62, 0xcb, 0x16,
+ 0x3f, 0xc9, 0x45, 0x98, 0xf1, 0xb8, 0x87, 0x5e, 0xe0, 0x8a, 0xf1, 0xc4, 0x99, 0x32, 0xa7, 0x38,
+ 0x78, 0xcb, 0xc5, 0x31, 0x15, 0xed, 0xba, 0x1d, 0x0e, 0x98, 0x22, 0xe8, 0xc9, 0x15, 0x18, 0x67,
+ 0x82, 0x1e, 0x53, 0x39, 0xc4, 0x1c, 0xbf, 0x11, 0x0f, 0xb7, 0x4d, 0xb3, 0xf0, 0x91, 0xf8, 0x5b,
+ 0xf0, 0xfa, 0x27, 0x19, 0xc9, 0x4c, 0xdd, 0x66, 0xc8, 0x19, 0x18, 0x73, 0xbd, 0x3d, 0xa5, 0x6b,
+ 0xa3, 0xae, 0xb7, 0xc7, 0xfa, 0x75, 0x09, 0x8a, 0x3c, 0x0e, 0x81, 0x07, 0x78, 0xfb, 0x87, 0x1d,
+ 0x7e, 0x0e, 0x2d, 0x98, 0xd3, 0x1c, 0x8e, 0xcf, 0x5e, 0x1e, 0x76, 0x1a, 0x0c, 0xd3, 0xf7, 0x5d,
+ 0x4b, 0xcd, 0xdf, 0x22, 0xba, 0x3d, 0xed, 0xfb, 0x6e, 0x94, 0xc8, 0xa5, 0x49, 0x56, 0x60, 0x8a,
+ 0xf1, 0x09, 0xb3, 0xc8, 0x88, 0x5d, 0xf0, 0x5c, 0x72, 0x17, 0x3c, 0xec, 0x34, 0x64, 0x13, 0xcd,
+ 0x49, 0x5f, 0xf9, 0x25, 0x7a, 0xf3, 0x33, 0x59, 0x38, 0x9d, 0x8e, 0x8e, 0xf3, 0xc5, 0x2a, 0xc1,
+ 0x70, 0x1c, 0x6e, 0x93, 0x34, 0xc7, 0x19, 0x84, 0x67, 0x1c, 0x48, 0x6b, 0x6d, 0x36, 0xb5, 0xb5,
+ 0xaf, 0xc0, 0x2c, 0x32, 0x12, 0x7a, 0x47, 0xcb, 0xf1, 0x03, 0x11, 0x48, 0x6f, 0xce, 0xb0, 0x02,
+ 0x2e, 0xe0, 0xd6, 0x19, 0x98, 0xbc, 0x04, 0xd3, 0x52, 0x44, 0xb9, 0x0f, 0x3b, 0xac, 0x62, 0x2e,
+ 0x9f, 0xa6, 0x04, 0x74, 0x13, 0x81, 0xe4, 0x14, 0x8c, 0xda, 0xdd, 0x2e, 0xab, 0x92, 0x8b, 0xa5,
+ 0x11, 0xbb, 0xdb, 0xad, 0x36, 0xc9, 0x05, 0x98, 0xc2, 0xe0, 0x23, 0x6b, 0x17, 0x3d, 0x30, 0x84,
+ 0xbb, 0x97, 0x39, 0x89, 0x40, 0xee, 0x95, 0xe1, 0xb3, 0x0f, 0x81, 0xd1, 0x4a, 0x94, 0x31, 0x44,
+ 0x01, 0xbb, 0x2b, 0x11, 0xc4, 0xc8, 0x7c, 0x1e, 0x66, 0xc4, 0x6e, 0x29, 0x24, 0x3c, 0x52, 0x8a,
+ 0xf5, 0xc7, 0xd4, 0x58, 0x91, 0x2a, 0x1b, 0x04, 0xa8, 0xda, 0x94, 0x94, 0xbf, 0x9b, 0x81, 0x53,
+ 0xa9, 0xdb, 0x2d, 0xf9, 0x1a, 0xf0, 0x58, 0x8c, 0xc0, 0xb5, 0x3c, 0xda, 0x70, 0xba, 0x0e, 0x46,
+ 0xab, 0x73, 0x23, 0xd3, 0xf2, 0xa0, 0x8d, 0x1a, 0xe3, 0x3a, 0xb6, 0x5c, 0x33, 0x24, 0xe2, 0xe7,
+ 0xe4, 0xa2, 0x17, 0x03, 0x2f, 0x7e, 0x08, 0xa7, 0x52, 0x51, 0x53, 0xce, 0xaf, 0xaf, 0xe9, 0x2f,
+ 0x8a, 0xc9, 0x5b, 0x83, 0x58, 0xa7, 0x95, 0x73, 0xad, 0xe8, 0xde, 0xaf, 0x87, 0xdd, 0x8b, 0x6d,
+ 0xcc, 0x64, 0x35, 0xbe, 0x2c, 0xd3, 0x74, 0x4b, 0x49, 0xd4, 0x77, 0x65, 0x92, 0x0f, 0xe1, 0x94,
+ 0x58, 0x2a, 0x7b, 0x9e, 0xdd, 0xdd, 0x8f, 0xd8, 0xf1, 0x86, 0xbe, 0x9c, 0xc6, 0x8e, 0xaf, 0xa1,
+ 0x5b, 0x0c, 0x3f, 0xe4, 0x3a, 0x67, 0x27, 0x81, 0xa2, 0x0f, 0x9e, 0xdc, 0xf4, 0x53, 0x5a, 0x93,
+ 0xb2, 0x06, 0x33, 0x69, 0x6b, 0x70, 0xe8, 0x0f, 0x40, 0xd4, 0xf9, 0x43, 0x19, 0x38, 0x7f, 0x5c,
+ 0x9b, 0xc9, 0x36, 0x9c, 0xc6, 0x0b, 0x65, 0xdf, 0x0d, 0xbb, 0x6d, 0x35, 0xec, 0xc6, 0x3e, 0x15,
+ 0xab, 0xc4, 0x48, 0xed, 0x7c, 0xb7, 0x5b, 0xaf, 0x6f, 0x2a, 0xfd, 0xee, 0x76, 0xeb, 0xbe, 0x2b,
+ 0x7f, 0x97, 0x19, 0xb9, 0x68, 0x43, 0x13, 0x9e, 0x1d, 0x40, 0xa9, 0x7c, 0x56, 0x19, 0xf5, 0xb3,
+ 0xba, 0x04, 0xc5, 0x5d, 0xda, 0xa4, 0x1e, 0x86, 0x7b, 0xb0, 0xa6, 0x3d, 0x58, 0xe6, 0xcf, 0xf2,
+ 0x99, 0xd3, 0x21, 0xbc, 0xee, 0xbb, 0xf7, 0x97, 0x45, 0x2d, 0x6d, 0x29, 0x21, 0x55, 0x15, 0x8c,
+ 0x5c, 0x81, 0xb9, 0x58, 0xe4, 0x7d, 0x14, 0xca, 0x69, 0xce, 0xb2, 0x22, 0x3d, 0x4f, 0xcb, 0x0b,
+ 0x30, 0x29, 0xa7, 0xc1, 0x0b, 0x03, 0x42, 0xcc, 0x09, 0x01, 0x63, 0xab, 0x5c, 0x54, 0xf7, 0xb7,
+ 0xb3, 0x52, 0x65, 0x5a, 0x71, 0xdd, 0xc0, 0x0f, 0x3c, 0xbb, 0xab, 0x9d, 0x8b, 0x48, 0x1b, 0xce,
+ 0xba, 0x76, 0x2f, 0xd8, 0x5f, 0xb6, 0xd8, 0xbf, 0xae, 0x27, 0xa3, 0x33, 0x1b, 0xd2, 0xc5, 0x6c,
+ 0x62, 0xf9, 0xaa, 0x2e, 0x3a, 0x4b, 0x0c, 0xbb, 0xa4, 0x22, 0xb3, 0x1d, 0x5e, 0xe1, 0xba, 0xf6,
+ 0x8c, 0x79, 0x86, 0xf3, 0x4c, 0x60, 0x91, 0x35, 0xd0, 0x1e, 0x81, 0x4f, 0x3d, 0x18, 0x29, 0x0f,
+ 0xb6, 0xeb, 0x5c, 0x27, 0x76, 0x94, 0x17, 0xe3, 0xdf, 0x85, 0x71, 0xa7, 0x29, 0xb2, 0xc1, 0x89,
+ 0xe3, 0x91, 0xae, 0x92, 0x57, 0x9b, 0x3c, 0x39, 0x5c, 0xc4, 0x83, 0x9d, 0xad, 0x1c, 0x01, 0x5d,
+ 0x99, 0xd2, 0x4e, 0x90, 0xc6, 0x8a, 0xdc, 0x9d, 0x93, 0x64, 0x64, 0x1a, 0xb2, 0xe1, 0xb4, 0x67,
+ 0x9d, 0x26, 0x39, 0x0d, 0xa3, 0xbe, 0x92, 0x9e, 0xce, 0x14, 0xbf, 0x8c, 0x3f, 0x03, 0x97, 0x86,
+ 0x1d, 0x23, 0xf2, 0x3a, 0x90, 0x3e, 0x03, 0x3e, 0x6e, 0xce, 0xda, 0x89, 0x71, 0x7b, 0x01, 0xd4,
+ 0xfc, 0x5a, 0x8e, 0x9c, 0x70, 0x09, 0xbb, 0xe7, 0x39, 0xc6, 0x7f, 0x95, 0x85, 0x69, 0xfd, 0xcc,
+ 0x4c, 0x5e, 0x85, 0x7c, 0xc8, 0x76, 0x3a, 0xb4, 0xed, 0xaa, 0x48, 0x8c, 0xb9, 0x89, 0x48, 0x6c,
+ 0x83, 0xc0, 0xfb, 0x1d, 0xab, 0xad, 0x9a, 0x5f, 0xcd, 0x49, 0x04, 0x4a, 0xb3, 0xeb, 0x6d, 0xe0,
+ 0xaf, 0xc0, 0xa2, 0x2c, 0x0b, 0x86, 0x7b, 0xf3, 0xbc, 0xc0, 0x4e, 0xee, 0x68, 0x37, 0x9b, 0x64,
+ 0xb4, 0x4c, 0x9e, 0xe0, 0x33, 0xe7, 0xd1, 0x91, 0x28, 0xdf, 0xff, 0x48, 0x24, 0xba, 0xd2, 0xe7,
+ 0x48, 0x34, 0x32, 0xe0, 0x48, 0x14, 0x51, 0x86, 0x47, 0xa2, 0x17, 0x45, 0xeb, 0x3d, 0xfb, 0xa1,
+ 0x85, 0xdd, 0xe2, 0x1e, 0x5d, 0xbc, 0x5d, 0xa6, 0xfd, 0x10, 0x2f, 0xb6, 0x56, 0xc6, 0x41, 0xde,
+ 0x86, 0x19, 0x7f, 0x35, 0x13, 0x3b, 0xb3, 0xc8, 0x91, 0x7d, 0x09, 0xa6, 0x9d, 0x36, 0x53, 0xa6,
+ 0x68, 0x53, 0x51, 0x02, 0xa6, 0xcc, 0x29, 0x09, 0xe5, 0x8a, 0xc0, 0xcb, 0x30, 0x13, 0xa2, 0xf1,
+ 0xd0, 0x5f, 0xee, 0x9e, 0x6e, 0x86, 0xd4, 0x22, 0xf4, 0xf7, 0x55, 0x98, 0x0d, 0x11, 0x85, 0xde,
+ 0xc9, 0xf5, 0x80, 0x29, 0xb3, 0x28, 0x0b, 0xc4, 0xf3, 0x84, 0xbe, 0xb1, 0x17, 0xdf, 0x64, 0x3e,
+ 0xa5, 0x56, 0x19, 0xff, 0x22, 0x0b, 0x73, 0x29, 0xc6, 0x14, 0xf2, 0x21, 0xcc, 0x49, 0xa1, 0xc1,
+ 0x37, 0x23, 0xfe, 0x31, 0x73, 0x71, 0x71, 0x39, 0x4d, 0x5c, 0x20, 0x5a, 0xca, 0x27, 0x3d, 0x2b,
+ 0x04, 0x45, 0x54, 0xfe, 0xa7, 0x47, 0x44, 0x90, 0x0f, 0xe0, 0xb4, 0x78, 0x55, 0x58, 0x91, 0x14,
+ 0x96, 0x47, 0x77, 0xc5, 0x82, 0x7d, 0x21, 0xf1, 0x41, 0x39, 0x0d, 0xa5, 0x39, 0x26, 0xdd, 0x5d,
+ 0x7b, 0xc6, 0x9c, 0xf7, 0x53, 0xe0, 0x71, 0xe9, 0xf3, 0x77, 0x32, 0x60, 0x1c, 0x3f, 0x5e, 0x78,
+ 0x0a, 0x8a, 0x0f, 0x38, 0x3b, 0x05, 0x29, 0xa3, 0x77, 0x01, 0xa6, 0x3c, 0xba, 0xeb, 0x51, 0x7f,
+ 0x5f, 0x19, 0xbe, 0x71, 0x73, 0x52, 0x00, 0xe5, 0xc0, 0xc8, 0xa4, 0x03, 0x27, 0xfa, 0x7c, 0x25,
+ 0x91, 0x71, 0x33, 0xdc, 0x54, 0x52, 0xe7, 0x81, 0xcc, 0xc3, 0x88, 0xda, 0x40, 0xfe, 0xe3, 0x76,
+ 0xbe, 0x90, 0x2d, 0xe6, 0x4c, 0x91, 0x1a, 0x61, 0xd7, 0x69, 0x51, 0xe3, 0xef, 0x65, 0x60, 0xb1,
+ 0xff, 0xe0, 0x91, 0x0f, 0x95, 0xeb, 0xbf, 0x1c, 0xcf, 0x0c, 0x77, 0xcc, 0x78, 0xab, 0x37, 0x25,
+ 0x22, 0x5a, 0x3f, 0xfe, 0xa0, 0xae, 0x60, 0xf9, 0x49, 0xee, 0x30, 0xde, 0x94, 0xd6, 0x43, 0xa6,
+ 0x97, 0xdf, 0xbf, 0x46, 0x2e, 0xc3, 0x18, 0x37, 0x18, 0xca, 0x86, 0xce, 0x68, 0x0d, 0xbd, 0x7f,
+ 0xcd, 0x94, 0xe5, 0xc6, 0x77, 0x32, 0xa1, 0x49, 0x25, 0xde, 0xfc, 0xfb, 0xd7, 0xc8, 0xe7, 0x86,
+ 0xbb, 0xc8, 0x2b, 0xc8, 0x8b, 0xbc, 0xf0, 0x12, 0xef, 0xf3, 0xda, 0x25, 0xde, 0x8b, 0x83, 0xc7,
+ 0x49, 0x1c, 0xde, 0xe2, 0x4f, 0x1e, 0xfe, 0xab, 0x0c, 0x9c, 0x1b, 0x48, 0x41, 0x9e, 0x83, 0x42,
+ 0xa9, 0x56, 0xdd, 0x8a, 0x66, 0x96, 0x7d, 0x2d, 0x12, 0x42, 0x6e, 0xc1, 0xf8, 0x8a, 0xed, 0x3b,
+ 0x0d, 0xb6, 0x80, 0x53, 0xd5, 0xd1, 0x04, 0xdb, 0x10, 0x7d, 0xed, 0x19, 0x33, 0xa2, 0x25, 0x16,
+ 0xcc, 0xe2, 0x57, 0x90, 0x78, 0x52, 0x2c, 0xae, 0x8a, 0x24, 0x18, 0x26, 0xc8, 0x98, 0x84, 0x49,
+ 0x00, 0xe3, 0x1f, 0xdf, 0x03, 0xa9, 0x7b, 0xf6, 0x6f, 0xe0, 0x09, 0x12, 0x6c, 0x5c, 0x82, 0x42,
+ 0x4d, 0x9a, 0x55, 0x94, 0x17, 0x45, 0xa5, 0x09, 0xc5, 0x0c, 0x4b, 0x8d, 0xbf, 0x9c, 0x91, 0xfa,
+ 0xc2, 0xf1, 0x1d, 0x51, 0x72, 0xe8, 0x36, 0x07, 0xe7, 0xd0, 0x6d, 0x7e, 0xcc, 0x1c, 0xba, 0xc6,
+ 0x2f, 0x8a, 0xf4, 0x57, 0xd5, 0x66, 0x2d, 0xf6, 0x16, 0xc3, 0x27, 0x75, 0x4b, 0x58, 0xd5, 0x56,
+ 0xe7, 0x05, 0x25, 0x19, 0x77, 0xb2, 0xae, 0xfe, 0xde, 0x09, 0xca, 0x52, 0xfd, 0x17, 0x59, 0x78,
+ 0x6e, 0x10, 0x79, 0xea, 0xb3, 0x11, 0x99, 0x93, 0x3d, 0x1b, 0x71, 0x19, 0x0a, 0x1c, 0xa6, 0x3f,
+ 0x7f, 0x27, 0x48, 0xd9, 0x80, 0xcb, 0x62, 0x72, 0x01, 0x46, 0x4b, 0xe5, 0x7a, 0x94, 0x78, 0x18,
+ 0xef, 0xd1, 0xec, 0x86, 0x8f, 0x37, 0x34, 0xa2, 0x88, 0x7c, 0x35, 0x99, 0x6b, 0x5b, 0x64, 0x1c,
+ 0x7e, 0x56, 0x19, 0x90, 0x44, 0x66, 0x3a, 0x6c, 0x6f, 0x94, 0x49, 0x4d, 0x24, 0x27, 0x32, 0x93,
+ 0x79, 0xbb, 0x0d, 0x18, 0xad, 0x79, 0xd4, 0xa7, 0x81, 0x7a, 0xc7, 0xd5, 0x45, 0x88, 0x29, 0x4a,
+ 0xc4, 0x0d, 0x94, 0x7d, 0xc8, 0xdd, 0xf7, 0x47, 0xd5, 0x90, 0x2a, 0xbc, 0xb2, 0x62, 0x60, 0x53,
+ 0x41, 0x31, 0xbe, 0x95, 0x81, 0xf9, 0xb4, 0x66, 0x91, 0xe7, 0x20, 0xdf, 0x49, 0xcd, 0x12, 0xde,
+ 0xe1, 0x4e, 0xc4, 0x13, 0xf8, 0xf4, 0xd8, 0xae, 0xeb, 0xb5, 0xed, 0x40, 0xbd, 0xd8, 0x53, 0xc0,
+ 0x26, 0xb0, 0x1f, 0x37, 0xf1, 0x6f, 0xb2, 0x24, 0x85, 0x6d, 0x2e, 0x91, 0x57, 0x1c, 0xff, 0x33,
+ 0x4a, 0x00, 0xd5, 0x66, 0x6d, 0xb3, 0xcb, 0x13, 0x9d, 0x5d, 0x87, 0x3c, 0x6b, 0x56, 0x6c, 0x31,
+ 0xb2, 0xe5, 0x50, 0xba, 0xbb, 0x2e, 0x90, 0x78, 0xab, 0xd8, 0xd9, 0xc9, 0x44, 0x64, 0x63, 0x1b,
+ 0xa6, 0x75, 0x0c, 0xb2, 0xaa, 0xa7, 0xc6, 0x88, 0x5e, 0x45, 0x5f, 0x71, 0x5d, 0xee, 0x5c, 0xb2,
+ 0x72, 0xf6, 0xbb, 0x47, 0x4b, 0xc0, 0x7e, 0x72, 0x9a, 0xb4, 0xd4, 0x19, 0xc6, 0x4f, 0x64, 0x61,
+ 0x3e, 0xf2, 0x0e, 0x97, 0x9f, 0xc4, 0x53, 0xeb, 0x31, 0x59, 0xd2, 0x3c, 0xfa, 0x96, 0x12, 0x0f,
+ 0x0f, 0xcb, 0x0e, 0x0e, 0x70, 0x24, 0xba, 0x05, 0x0b, 0xfd, 0xf0, 0xc9, 0xab, 0x89, 0xa7, 0x41,
+ 0x45, 0xe8, 0x64, 0xf8, 0x86, 0xa8, 0xf2, 0x52, 0xe8, 0x3f, 0xcd, 0xc0, 0xa2, 0x70, 0x89, 0xb8,
+ 0x6b, 0x3b, 0x1d, 0x7c, 0x0e, 0xbd, 0x41, 0x9f, 0x8c, 0xab, 0xed, 0x2d, 0x4d, 0x2c, 0xbd, 0xa4,
+ 0x7b, 0xbe, 0x24, 0x6a, 0xeb, 0xdf, 0x5b, 0x72, 0x19, 0x83, 0x64, 0x1b, 0x7c, 0xf1, 0xe6, 0x79,
+ 0x68, 0x43, 0x87, 0x01, 0xd4, 0xd0, 0x06, 0xc4, 0x30, 0xfe, 0x1c, 0x3c, 0x3f, 0xb8, 0x02, 0xf2,
+ 0x15, 0x98, 0x2a, 0xed, 0xd1, 0x4e, 0x70, 0xaf, 0xbb, 0xe7, 0xd9, 0x4d, 0x2a, 0x0d, 0x45, 0xf2,
+ 0xfe, 0x46, 0x2d, 0xe3, 0x81, 0xc1, 0xc2, 0xd5, 0x9e, 0xc1, 0xad, 0x9e, 0x20, 0xd2, 0xfc, 0x8e,
+ 0x54, 0x6e, 0xc6, 0x37, 0x33, 0x40, 0x92, 0x3c, 0xc8, 0x0d, 0x98, 0xbc, 0xb7, 0x55, 0xae, 0x07,
+ 0xb6, 0x17, 0xac, 0xb9, 0x3d, 0x4f, 0x04, 0xdc, 0x72, 0xcf, 0xeb, 0xa0, 0xc1, 0x24, 0x83, 0x17,
+ 0x58, 0xfb, 0x6e, 0xcf, 0x33, 0x35, 0x3c, 0xcc, 0x5e, 0x4b, 0xe9, 0x41, 0xd3, 0x3e, 0xd4, 0xb3,
+ 0xd7, 0x0a, 0x98, 0x96, 0xbd, 0x56, 0xc0, 0x8c, 0xbf, 0x95, 0x81, 0x67, 0xe5, 0x5d, 0x4a, 0x33,
+ 0xa5, 0x2d, 0x65, 0x8c, 0x2f, 0xf2, 0x64, 0xc2, 0x91, 0x41, 0xba, 0xe9, 0xac, 0x0c, 0xc1, 0xc3,
+ 0x06, 0xa2, 0x92, 0xca, 0x69, 0xc9, 0xfb, 0x90, 0xaf, 0x07, 0x6e, 0x77, 0x88, 0x18, 0xbc, 0x62,
+ 0x38, 0xa3, 0x81, 0xdb, 0x45, 0x16, 0x48, 0x69, 0x50, 0x98, 0x57, 0x1b, 0x27, 0x5b, 0x4c, 0xee,
+ 0xc2, 0x98, 0x88, 0xc8, 0x8e, 0xd9, 0x9d, 0x06, 0xf4, 0x69, 0x65, 0x46, 0x06, 0xfa, 0x89, 0x84,
+ 0x17, 0xa6, 0xe4, 0x61, 0xfc, 0x78, 0x06, 0x26, 0x98, 0xf2, 0x80, 0x47, 0xae, 0x4f, 0xba, 0xa4,
+ 0x75, 0x3d, 0x50, 0x9a, 0x2d, 0x43, 0xf6, 0x43, 0x6d, 0xae, 0x6f, 0xc0, 0x4c, 0x8c, 0x80, 0x18,
+ 0x18, 0xe2, 0xd1, 0x72, 0xf8, 0xab, 0xfa, 0xd2, 0xe6, 0xa7, 0xc1, 0x8c, 0x7f, 0x27, 0x03, 0xf3,
+ 0x9b, 0x07, 0x81, 0x5d, 0xc5, 0x23, 0xa4, 0xd9, 0x6b, 0xc9, 0xef, 0x9d, 0x29, 0x44, 0xf2, 0x52,
+ 0x8e, 0xfb, 0x9f, 0x73, 0x85, 0x48, 0xc0, 0xcc, 0xb0, 0x94, 0xac, 0x41, 0x41, 0xec, 0x2f, 0xbe,
+ 0xc8, 0x53, 0x21, 0xef, 0x94, 0x75, 0xc6, 0x02, 0x89, 0xf5, 0x04, 0x45, 0x98, 0xa0, 0x31, 0x43,
+ 0x6a, 0xe3, 0x8f, 0x32, 0x70, 0xa6, 0x0f, 0x0d, 0x79, 0x07, 0x46, 0xd0, 0x99, 0x4f, 0xcc, 0xde,
+ 0x73, 0x7d, 0xaa, 0x08, 0x1a, 0xfb, 0xf7, 0xaf, 0xf1, 0x8d, 0xa8, 0xcd, 0x7e, 0x98, 0x9c, 0x8a,
+ 0x7c, 0x08, 0xe3, 0xa5, 0x66, 0x53, 0x9c, 0x4b, 0xb2, 0xda, 0xb9, 0xa4, 0x4f, 0x8d, 0x57, 0x42,
+ 0x7c, 0x7e, 0x2e, 0xe1, 0x6e, 0x25, 0xcd, 0xa6, 0x25, 0x1c, 0x15, 0x23, 0x7e, 0x8b, 0x6f, 0xc3,
+ 0xb4, 0x8e, 0x7c, 0xa2, 0x73, 0xc9, 0x77, 0x32, 0x50, 0xd4, 0xdb, 0xf0, 0xe9, 0x84, 0x28, 0xa6,
+ 0x4d, 0xf3, 0x31, 0x8b, 0xea, 0xa7, 0xb2, 0x70, 0x2a, 0x75, 0x84, 0xc9, 0xeb, 0x30, 0x5a, 0xea,
+ 0x76, 0xab, 0x15, 0xb1, 0xaa, 0x84, 0xc2, 0x83, 0x96, 0x56, 0xed, 0xd8, 0xc6, 0x91, 0xc8, 0x75,
+ 0x28, 0xe0, 0xca, 0x64, 0x04, 0xd9, 0x28, 0x63, 0x04, 0xbf, 0xda, 0x88, 0x65, 0x8c, 0x90, 0x88,
+ 0xe4, 0x26, 0x4c, 0x8b, 0x68, 0x25, 0x93, 0xee, 0xd1, 0x47, 0x61, 0xea, 0x32, 0xcc, 0xae, 0x26,
+ 0x63, 0x9b, 0x2c, 0x8f, 0x97, 0xa9, 0xf1, 0x3a, 0x3a, 0x15, 0x3e, 0x55, 0xcb, 0x78, 0xaa, 0x9c,
+ 0x78, 0xda, 0x0a, 0xfe, 0x54, 0x2d, 0x36, 0xa2, 0x0f, 0xaf, 0x04, 0x65, 0x38, 0x5d, 0x25, 0xdf,
+ 0x77, 0xf6, 0x3a, 0x6d, 0xda, 0x09, 0x3e, 0xbd, 0xe9, 0x8a, 0xea, 0x18, 0x6a, 0xba, 0xbe, 0x9d,
+ 0xe7, 0x1f, 0x73, 0x9c, 0xec, 0x98, 0xd7, 0xd8, 0x2b, 0x30, 0xc6, 0xe3, 0xa4, 0xe4, 0x97, 0x71,
+ 0x2e, 0xb5, 0x09, 0x1c, 0xe7, 0xfe, 0x35, 0xae, 0xbe, 0x70, 0xaf, 0x42, 0xdf, 0x94, 0xa4, 0xe4,
+ 0x3e, 0x4c, 0x94, 0x5b, 0xd4, 0xee, 0xf4, 0xba, 0x5b, 0xc3, 0x19, 0x18, 0x17, 0x44, 0x5f, 0x26,
+ 0x1b, 0x9c, 0x0c, 0x0d, 0x93, 0x28, 0xc9, 0x55, 0x46, 0x64, 0x2b, 0x74, 0x34, 0xca, 0xa3, 0x3d,
+ 0xf4, 0x33, 0x03, 0xc6, 0x27, 0x0e, 0x44, 0x3a, 0xdd, 0x8b, 0x4e, 0x78, 0x22, 0x59, 0x30, 0xbd,
+ 0x6e, 0xfb, 0xc1, 0x96, 0x67, 0x77, 0x7c, 0xcc, 0xaf, 0x30, 0x44, 0xfc, 0xa9, 0x7c, 0x11, 0x6e,
+ 0x06, 0xad, 0x91, 0x41, 0x48, 0x8a, 0x6d, 0x8e, 0xb1, 0x63, 0xfa, 0xd2, 0x4d, 0xa7, 0x63, 0xb7,
+ 0x9c, 0x6f, 0x48, 0x7f, 0x4c, 0xae, 0x2f, 0xed, 0x4a, 0xa0, 0x19, 0x95, 0x1b, 0x5f, 0x4e, 0xcc,
+ 0x1b, 0x6f, 0xe5, 0x04, 0x8c, 0x09, 0x17, 0x7c, 0xee, 0x92, 0x5e, 0x5b, 0xdd, 0xa8, 0x54, 0x37,
+ 0x6e, 0x15, 0x33, 0x64, 0x1a, 0xa0, 0x66, 0x6e, 0x96, 0x57, 0xeb, 0x75, 0xf6, 0x3b, 0xcb, 0x7e,
+ 0x0b, 0x7f, 0xf5, 0x9b, 0xf7, 0xd6, 0x8b, 0x39, 0xc5, 0x65, 0x3d, 0x6f, 0xfc, 0x93, 0x0c, 0x9c,
+ 0x4e, 0x9f, 0x4a, 0xb2, 0x05, 0x18, 0xb4, 0x20, 0x4c, 0xcd, 0x37, 0x06, 0xce, 0x7b, 0x2a, 0x38,
+ 0x1e, 0xfc, 0x10, 0x70, 0xa7, 0xfa, 0xac, 0xbc, 0x39, 0x8a, 0xde, 0x32, 0x73, 0x9a, 0x46, 0x19,
+ 0x16, 0xfa, 0xf1, 0xd0, 0xbb, 0x3a, 0x03, 0x13, 0xa5, 0x5a, 0x6d, 0xbd, 0x5a, 0x2e, 0x6d, 0x55,
+ 0x37, 0x37, 0x8a, 0x19, 0x32, 0x0e, 0x23, 0xb7, 0xcc, 0xcd, 0x7b, 0xb5, 0x62, 0xd6, 0xf8, 0x2b,
+ 0x19, 0x98, 0xaa, 0xfe, 0xbf, 0xd4, 0x5d, 0xcd, 0x6f, 0x1b, 0xc7, 0x15, 0xd7, 0x92, 0x92, 0x22,
+ 0x3d, 0x4a, 0xd6, 0x6a, 0xec, 0xc8, 0xaa, 0x6c, 0xcb, 0x2e, 0xe1, 0x1a, 0xf5, 0xb6, 0x71, 0x9a,
+ 0xb8, 0x41, 0x62, 0x17, 0xa9, 0xb1, 0x22, 0x97, 0xe2, 0x5a, 0xe4, 0x2e, 0xbd, 0xb3, 0xb4, 0x62,
+ 0xf7, 0x63, 0x41, 0x4b, 0x6b, 0x99, 0x2d, 0xbd, 0x64, 0xf8, 0x61, 0x57, 0xb9, 0xf5, 0x92, 0x4b,
+ 0x11, 0xa0, 0xe8, 0xb5, 0x87, 0x5e, 0x72, 0xe9, 0xdf, 0xd0, 0x7f, 0x20, 0x40, 0x51, 0x20, 0x87,
+ 0xde, 0x0a, 0x04, 0xad, 0x81, 0x5e, 0x7a, 0xef, 0x25, 0xa7, 0x62, 0xde, 0xcc, 0xec, 0xce, 0xee,
+ 0x8a, 0x8a, 0x64, 0x1b, 0x2d, 0x7a, 0x13, 0xdf, 0xbc, 0x19, 0xcd, 0xce, 0xc7, 0x9b, 0xf7, 0x66,
+ 0xde, 0xfb, 0xbd, 0x68, 0x1c, 0x1e, 0x70, 0x4c, 0x84, 0x57, 0xdd, 0x7c, 0xb7, 0x53, 0x9b, 0x6f,
+ 0x3d, 0x0e, 0xef, 0x89, 0xff, 0xc1, 0x89, 0x76, 0xde, 0x5f, 0x35, 0x58, 0xcd, 0xd5, 0x21, 0x14,
+ 0xde, 0x30, 0x77, 0xa9, 0x6b, 0x57, 0x2b, 0xa2, 0x67, 0x52, 0x2b, 0x17, 0xd4, 0xfc, 0x7f, 0xe1,
+ 0xde, 0xb3, 0xcf, 0x47, 0x41, 0xbf, 0xbb, 0xaf, 0x24, 0x63, 0xa8, 0xcf, 0x78, 0xb2, 0x25, 0x3c,
+ 0xc9, 0x3e, 0x99, 0x0c, 0x43, 0x6c, 0xb6, 0x90, 0xba, 0xd1, 0x8c, 0xe9, 0xf9, 0x86, 0x79, 0x9e,
+ 0x76, 0x56, 0x9e, 0x6f, 0x3a, 0x69, 0x6f, 0x6b, 0x19, 0x4a, 0xc2, 0x6a, 0x41, 0x83, 0xe0, 0x33,
+ 0x0d, 0xd6, 0xa7, 0xf5, 0x95, 0x19, 0x42, 0x69, 0x57, 0xfa, 0xb5, 0x18, 0x99, 0x2f, 0xed, 0x43,
+ 0x2f, 0xd9, 0xc8, 0x1d, 0x28, 0xf1, 0x04, 0x91, 0xf4, 0x66, 0xdb, 0xb3, 0xc5, 0x02, 0xb9, 0xf4,
+ 0xaf, 0xaf, 0x2e, 0x9f, 0x17, 0xb9, 0xec, 0x47, 0x37, 0xd3, 0x89, 0xcd, 0xd7, 0x35, 0x4f, 0xad,
+ 0x51, 0xfe, 0x54, 0x83, 0x8d, 0xe9, 0x1f, 0xc9, 0x4e, 0x19, 0x9f, 0xe9, 0xe6, 0x89, 0x37, 0x32,
+ 0x9e, 0x32, 0xa8, 0xaf, 0x67, 0xdc, 0x91, 0x63, 0x46, 0x56, 0x29, 0x93, 0x30, 0x5f, 0xcd, 0x6e,
+ 0x92, 0xae, 0x24, 0x19, 0xcb, 0xbf, 0x2f, 0xc0, 0x1a, 0x5b, 0x40, 0xbd, 0x70, 0x34, 0x32, 0x27,
+ 0xe3, 0x27, 0x61, 0x34, 0x16, 0x2a, 0x15, 0x79, 0x1f, 0xe6, 0x9f, 0x9c, 0xee, 0x36, 0x90, 0xb3,
+ 0x13, 0x02, 0x28, 0x94, 0xa5, 0xbb, 0x08, 0xfb, 0x9b, 0x5c, 0x02, 0x25, 0x9b, 0x0c, 0xca, 0xd4,
+ 0x25, 0x6f, 0x71, 0x10, 0xe7, 0x94, 0xf9, 0x00, 0xe6, 0xd0, 0xfa, 0x17, 0xa2, 0x51, 0xaa, 0xb4,
+ 0x47, 0xf7, 0x0c, 0xef, 0x06, 0x3c, 0x5e, 0x81, 0xbc, 0x0d, 0x90, 0x20, 0xc0, 0x09, 0xd9, 0x27,
+ 0xcd, 0xe8, 0x18, 0x04, 0xce, 0x5b, 0x7c, 0xfa, 0xb8, 0x23, 0x60, 0xd5, 0x0c, 0x58, 0x95, 0x43,
+ 0x32, 0x90, 0xe1, 0xe6, 0xe2, 0x1d, 0x66, 0x85, 0x17, 0xd8, 0x03, 0x11, 0x72, 0x5e, 0xfe, 0x67,
+ 0x01, 0x16, 0x77, 0x99, 0xa2, 0x80, 0xe6, 0xef, 0xf1, 0xe6, 0xf4, 0xbb, 0x50, 0x6a, 0xf4, 0x3b,
+ 0xe2, 0xee, 0x7e, 0x24, 0x10, 0x2f, 0xd0, 0x25, 0xb7, 0xd7, 0xef, 0xc8, 0x67, 0x80, 0x91, 0xa7,
+ 0x32, 0x7d, 0x83, 0x3b, 0xf1, 0x5d, 0x98, 0xe7, 0x7e, 0x0f, 0xe2, 0xa2, 0x46, 0xaa, 0x8a, 0x71,
+ 0x8f, 0x6e, 0xf0, 0x62, 0xe5, 0xba, 0x99, 0x7b, 0x4e, 0xa8, 0x7a, 0x8b, 0x00, 0xbc, 0x50, 0x8c,
+ 0xfd, 0xb9, 0x93, 0x19, 0xfb, 0x4a, 0x60, 0xef, 0xfc, 0x49, 0x02, 0x7b, 0x37, 0x6e, 0x41, 0x49,
+ 0xe9, 0xcf, 0xa9, 0x34, 0xc7, 0x5f, 0x17, 0x60, 0x19, 0xbf, 0x2a, 0x7e, 0x4a, 0xfa, 0xff, 0xbc,
+ 0xba, 0xb8, 0x9d, 0xba, 0xba, 0x58, 0x57, 0xe7, 0x8b, 0x7f, 0xd9, 0x31, 0x77, 0x16, 0x77, 0x61,
+ 0x35, 0xc7, 0x48, 0xde, 0x83, 0x39, 0xd6, 0x7d, 0x69, 0xea, 0xe9, 0xd9, 0x15, 0x90, 0x80, 0xc0,
+ 0xb0, 0x0f, 0x1f, 0x79, 0x9c, 0xbb, 0xfc, 0x6f, 0x0d, 0x96, 0x04, 0x24, 0x60, 0xf4, 0xb8, 0xff,
+ 0x8d, 0xc3, 0x79, 0x2d, 0x3b, 0x9c, 0x3c, 0x38, 0x46, 0x0c, 0xe7, 0x7f, 0x7b, 0x10, 0x6f, 0xa5,
+ 0x06, 0xf1, 0x7c, 0x1c, 0x12, 0x2e, 0x3f, 0xe7, 0x98, 0x31, 0xfc, 0x13, 0x82, 0xa4, 0xa4, 0x19,
+ 0xc9, 0xcf, 0x61, 0xd1, 0x09, 0x9f, 0xa7, 0x2c, 0xa6, 0x6b, 0x53, 0x1a, 0xbd, 0x11, 0x33, 0xf2,
+ 0x3d, 0x85, 0x87, 0x4d, 0x14, 0x3e, 0x0f, 0x72, 0xcf, 0x38, 0x49, 0x93, 0xcc, 0x68, 0x4a, 0x57,
+ 0x3b, 0xcd, 0xd2, 0x17, 0x2e, 0x9a, 0x18, 0xef, 0xf5, 0xc7, 0x22, 0x40, 0xe2, 0xdd, 0xc6, 0x36,
+ 0x60, 0x98, 0x02, 0xce, 0x15, 0x77, 0xc7, 0x48, 0x52, 0xd7, 0xb8, 0x20, 0x91, 0x6b, 0xe2, 0x52,
+ 0xb4, 0x30, 0x3d, 0x64, 0x1f, 0xaf, 0x47, 0x2b, 0xc2, 0x7b, 0x6c, 0x3f, 0xec, 0x75, 0xb8, 0x2c,
+ 0x2e, 0x6e, 0x5d, 0x45, 0x84, 0x96, 0x98, 0x3a, 0x25, 0xb7, 0x0b, 0xfa, 0x98, 0x55, 0x19, 0x43,
+ 0xce, 0x63, 0x74, 0xf6, 0xe5, 0x3d, 0x46, 0xe7, 0x5e, 0xc2, 0x63, 0x74, 0xfe, 0x84, 0x1e, 0xa3,
+ 0x2d, 0x58, 0xec, 0x46, 0xcf, 0xc2, 0x68, 0xdc, 0x1f, 0x1e, 0xa2, 0x3f, 0x59, 0x72, 0x95, 0xc5,
+ 0x86, 0xda, 0x96, 0x65, 0x7c, 0xbe, 0xf1, 0xc0, 0x8c, 0xf9, 0xd5, 0xe9, 0x8e, 0x89, 0xc2, 0xb1,
+ 0xe5, 0xeb, 0x02, 0x90, 0x7c, 0x03, 0xe4, 0x36, 0x94, 0xb8, 0x08, 0x0e, 0x86, 0xa3, 0x8f, 0x85,
+ 0xbb, 0x21, 0x8f, 0xab, 0x53, 0xc8, 0x6a, 0x5c, 0x1d, 0x27, 0x7b, 0xa3, 0x8f, 0x7b, 0xe4, 0x67,
+ 0x70, 0x16, 0x27, 0x60, 0x10, 0x0e, 0xbb, 0xfd, 0xfd, 0x00, 0x21, 0x45, 0x3a, 0x3d, 0x81, 0xd4,
+ 0xfe, 0x16, 0xa6, 0x14, 0xc9, 0x17, 0x4f, 0x99, 0x28, 0xf4, 0xea, 0x6b, 0x21, 0x67, 0x8b, 0x33,
+ 0x12, 0x1f, 0x74, 0xb5, 0xfe, 0xe3, 0x49, 0xaf, 0x27, 0xe6, 0xde, 0xc0, 0xd4, 0xcd, 0x99, 0xb2,
+ 0x29, 0x0d, 0x9f, 0x49, 0x1a, 0xae, 0x4d, 0x7a, 0x3d, 0xf2, 0x3e, 0x40, 0x3f, 0x0a, 0x9e, 0x76,
+ 0x47, 0x23, 0xfe, 0xa0, 0x10, 0x7b, 0xe4, 0x26, 0x54, 0x75, 0x18, 0xfb, 0x51, 0x93, 0x13, 0xc9,
+ 0x0f, 0x01, 0xdd, 0xf1, 0x31, 0x4e, 0x05, 0x57, 0xc0, 0x9c, 0xc0, 0x5e, 0x94, 0xc4, 0xf4, 0x74,
+ 0x1e, 0x84, 0xb4, 0xfb, 0x89, 0xf4, 0x2a, 0x7a, 0x08, 0xab, 0xc2, 0x21, 0x64, 0xb7, 0x3b, 0x7e,
+ 0x22, 0xf4, 0xdf, 0x57, 0x51, 0x9e, 0x15, 0x05, 0xf8, 0x6f, 0xb3, 0x00, 0xe6, 0x2e, 0x95, 0x21,
+ 0xa0, 0xd7, 0x61, 0x8e, 0x69, 0xf5, 0xf2, 0x76, 0x00, 0xef, 0x56, 0xb1, 0x5d, 0xf5, 0x6e, 0x15,
+ 0x39, 0xd8, 0x7e, 0xf5, 0xc2, 0x03, 0xbc, 0xa0, 0x2a, 0x24, 0x57, 0x09, 0x43, 0x4e, 0x4a, 0x69,
+ 0x91, 0x9c, 0x44, 0x1a, 0x00, 0x49, 0x50, 0xa6, 0xb0, 0x33, 0x57, 0x93, 0xe8, 0x26, 0x51, 0x20,
+ 0x40, 0xf5, 0x92, 0xc0, 0x4e, 0x75, 0xf9, 0x24, 0x6c, 0x64, 0x07, 0x66, 0xfd, 0x4e, 0xec, 0x6f,
+ 0x3a, 0x25, 0x54, 0xf5, 0x8a, 0x40, 0xd2, 0x4f, 0xc2, 0x55, 0xcf, 0x8c, 0x3b, 0xa9, 0x84, 0x23,
+ 0xd8, 0x08, 0xb1, 0x60, 0x5e, 0x64, 0x49, 0x9a, 0x82, 0x5b, 0x20, 0x92, 0x24, 0x09, 0x98, 0x20,
+ 0x24, 0xaa, 0x5a, 0x87, 0xc8, 0x87, 0xf4, 0x2e, 0x14, 0x29, 0x6d, 0x8a, 0x00, 0x8d, 0xe5, 0xc4,
+ 0x66, 0xa0, 0xb4, 0x29, 0x33, 0xc1, 0x3d, 0x55, 0xaa, 0x31, 0x66, 0xf2, 0x23, 0x28, 0x29, 0x0a,
+ 0xb1, 0x08, 0x6d, 0xc2, 0x31, 0xe8, 0x26, 0x64, 0x55, 0xac, 0x28, 0xdc, 0xa4, 0x01, 0xfa, 0xce,
+ 0xe4, 0x51, 0x68, 0x0e, 0x06, 0xe8, 0x2b, 0xf9, 0x2c, 0x1c, 0x72, 0xc0, 0xbf, 0x85, 0x04, 0x61,
+ 0x27, 0xe8, 0x0c, 0x06, 0xc1, 0xbe, 0x2c, 0x55, 0x6f, 0x48, 0xb2, 0x35, 0x49, 0x0b, 0x56, 0x69,
+ 0x38, 0x9e, 0x0c, 0xb8, 0x3b, 0x44, 0xad, 0x3f, 0x64, 0x26, 0x02, 0x0f, 0x84, 0x42, 0x30, 0x92,
+ 0x11, 0x2b, 0x94, 0x3e, 0x28, 0x8f, 0xfb, 0xc3, 0x8c, 0xb9, 0x90, 0xaf, 0x5c, 0x0e, 0xd5, 0x29,
+ 0x67, 0xe7, 0x6e, 0xda, 0xf0, 0xc0, 0x73, 0x57, 0x1a, 0x1e, 0x89, 0xb9, 0xf1, 0xf6, 0x11, 0xc1,
+ 0xba, 0xf8, 0x9c, 0xa5, 0x04, 0xeb, 0xa6, 0x42, 0x74, 0x3f, 0x9f, 0x55, 0x40, 0x20, 0xc4, 0x5c,
+ 0x7c, 0x08, 0x70, 0xb7, 0xdf, 0x8d, 0x9a, 0xe1, 0xf8, 0x49, 0x7f, 0x5f, 0x89, 0x19, 0x2e, 0xfd,
+ 0xa2, 0xdf, 0x8d, 0x82, 0xa7, 0x48, 0xfe, 0xfa, 0xab, 0xcb, 0x0a, 0x93, 0xa7, 0xfc, 0x4d, 0xbe,
+ 0x0f, 0x8b, 0xec, 0x97, 0x9f, 0x38, 0x75, 0xf0, 0x8b, 0x44, 0xac, 0x2d, 0x32, 0x4a, 0xc6, 0x0c,
+ 0xe4, 0x16, 0xa2, 0x72, 0x76, 0x07, 0x63, 0x45, 0xbd, 0x95, 0x10, 0x9c, 0xdd, 0xc1, 0x38, 0x0b,
+ 0xa8, 0xa3, 0x30, 0x93, 0x7a, 0xdc, 0x75, 0x89, 0xeb, 0x2a, 0xc0, 0x3f, 0xf1, 0xb6, 0x4c, 0xac,
+ 0xb5, 0x40, 0xa2, 0xc0, 0xaa, 0x19, 0x38, 0x32, 0xd5, 0xb0, 0x13, 0xb4, 0x5e, 0xe5, 0xcf, 0x1b,
+ 0xe2, 0x94, 0xe1, 0x9d, 0x18, 0x3d, 0xd9, 0x0f, 0xf6, 0x90, 0x9c, 0xea, 0x44, 0xcc, 0x4c, 0xb6,
+ 0x60, 0x85, 0x47, 0xb6, 0xc5, 0xf8, 0xf0, 0xe2, 0xc4, 0x41, 0xd9, 0x96, 0x00, 0xc8, 0xab, 0xff,
+ 0x3e, 0x53, 0x81, 0xd4, 0x60, 0x0e, 0x4d, 0x3c, 0x11, 0x5e, 0x74, 0x41, 0xb5, 0x6d, 0xb3, 0xfb,
+ 0x08, 0xe5, 0x0a, 0x5a, 0xb5, 0xaa, 0x5c, 0x41, 0x56, 0xf2, 0x11, 0x80, 0x15, 0x0d, 0xfb, 0xbd,
+ 0x1e, 0x62, 0xcd, 0x2c, 0xa0, 0x81, 0x74, 0x29, 0xbd, 0x1f, 0xb1, 0x95, 0x84, 0x49, 0x44, 0x72,
+ 0xe3, 0xef, 0x20, 0x83, 0x48, 0xa3, 0xb4, 0x55, 0xb6, 0x61, 0x9e, 0x6f, 0x46, 0xc4, 0x6d, 0x12,
+ 0x48, 0x94, 0x0a, 0xea, 0x0f, 0xc7, 0x6d, 0x12, 0xf4, 0x3c, 0x6e, 0x93, 0x52, 0xa1, 0xbc, 0x03,
+ 0xe7, 0x8e, 0xfa, 0xb0, 0x94, 0x51, 0xaa, 0x9d, 0xd4, 0x28, 0xfd, 0x43, 0x11, 0x96, 0xb0, 0x35,
+ 0x29, 0x85, 0x4d, 0x58, 0xa6, 0x93, 0x47, 0x71, 0x18, 0xa6, 0x94, 0xc6, 0xd8, 0xbf, 0x91, 0x5a,
+ 0xa0, 0x3e, 0x3c, 0xa5, 0x6a, 0x10, 0x0b, 0xce, 0xc8, 0x93, 0x60, 0x5b, 0xfa, 0x9c, 0xc5, 0x90,
+ 0x49, 0x12, 0x20, 0x20, 0x9f, 0x1f, 0x23, 0x53, 0x29, 0x39, 0x0f, 0x8a, 0xa7, 0x39, 0x0f, 0x66,
+ 0x4f, 0x74, 0x1e, 0xfc, 0x04, 0x96, 0xe4, 0x7f, 0x43, 0x49, 0x3e, 0xf7, 0x6a, 0x92, 0x3c, 0xd5,
+ 0x18, 0x69, 0xc4, 0x12, 0x7d, 0xfe, 0x58, 0x89, 0x8e, 0xaf, 0x79, 0x72, 0x97, 0xe5, 0x52, 0xde,
+ 0x89, 0x36, 0x10, 0x40, 0x7e, 0xbb, 0xd2, 0x7a, 0x89, 0x53, 0xf2, 0x3d, 0x58, 0x6c, 0xf4, 0xe5,
+ 0x43, 0x8e, 0x72, 0x83, 0xde, 0x93, 0x44, 0x55, 0x5d, 0x88, 0x39, 0xe3, 0xd3, 0xad, 0xf8, 0x3a,
+ 0x4e, 0xb7, 0x5b, 0x00, 0xc2, 0x99, 0x31, 0x01, 0x7e, 0xc6, 0x2d, 0x23, 0xa3, 0x70, 0xd2, 0x17,
+ 0xf9, 0x0a, 0x33, 0x93, 0x4e, 0xc2, 0xe5, 0xc3, 0xdc, 0xdb, 0xeb, 0x4f, 0xa2, 0x71, 0x2a, 0x53,
+ 0x8a, 0x08, 0xb8, 0x63, 0x47, 0x02, 0x96, 0xa9, 0xe2, 0x21, 0x53, 0xed, 0xf5, 0x4e, 0x08, 0xb9,
+ 0x17, 0xfb, 0xaa, 0x1d, 0x9b, 0x38, 0xb2, 0x9c, 0x1b, 0xa1, 0xa9, 0x1e, 0x6a, 0xe5, 0x3f, 0x6b,
+ 0x2a, 0x5e, 0xdd, 0x4b, 0x4c, 0xf5, 0x07, 0x00, 0xf1, 0x4b, 0xba, 0x9c, 0x6b, 0x6e, 0x51, 0xc5,
+ 0x54, 0x75, 0x94, 0x13, 0x5e, 0xe5, 0x6b, 0x8a, 0xaf, 0xeb, 0x6b, 0x7c, 0x28, 0xb9, 0xbf, 0x1c,
+ 0x77, 0x12, 0xd7, 0x0b, 0xa0, 0xb1, 0x26, 0x8b, 0x92, 0x49, 0x26, 0xb8, 0x4c, 0xf4, 0xe0, 0xa9,
+ 0x09, 0x2e, 0xe3, 0x8a, 0xe5, 0x7b, 0xb0, 0xa2, 0x86, 0x0a, 0x1c, 0x46, 0x7b, 0xe4, 0xc7, 0x1c,
+ 0xef, 0x43, 0x4b, 0xd9, 0x1a, 0x0a, 0x13, 0x93, 0xb8, 0x87, 0xd1, 0x1e, 0xd7, 0x7f, 0x3a, 0xcf,
+ 0xd5, 0xbe, 0xa2, 0x15, 0xf8, 0xa5, 0x06, 0x24, 0xcf, 0xae, 0x4a, 0x13, 0xed, 0x7f, 0xa0, 0x5d,
+ 0x66, 0xb4, 0xb2, 0xd9, 0xd3, 0x68, 0x65, 0xc6, 0x6f, 0x35, 0x58, 0xb1, 0xcd, 0xa6, 0x00, 0x97,
+ 0xe3, 0x2f, 0x02, 0xdf, 0x86, 0x4b, 0xb6, 0xd9, 0x0c, 0x5a, 0x6e, 0xc3, 0xae, 0x3c, 0x08, 0x8e,
+ 0x84, 0xae, 0xb9, 0x04, 0xdf, 0xca, 0xb3, 0x24, 0x2f, 0x07, 0x17, 0x61, 0x3d, 0x5f, 0x2c, 0xe1,
+ 0x6d, 0x8e, 0xae, 0x2c, 0x91, 0x70, 0x8a, 0xc6, 0x1d, 0x58, 0x91, 0xa8, 0x2f, 0x7e, 0x83, 0x22,
+ 0x4a, 0xdb, 0x0a, 0x94, 0xee, 0x5b, 0x9e, 0x5d, 0x7b, 0x10, 0xd4, 0xda, 0x8d, 0x86, 0x3e, 0x43,
+ 0x96, 0x61, 0x51, 0x10, 0x2a, 0xa6, 0xae, 0x91, 0x25, 0x58, 0xb0, 0x1d, 0x6a, 0x55, 0xda, 0x9e,
+ 0xa5, 0x17, 0x8c, 0x3b, 0x70, 0xa6, 0x35, 0xec, 0x3e, 0xeb, 0x8c, 0xc3, 0x9d, 0xf0, 0x10, 0x2f,
+ 0xfe, 0xdf, 0x80, 0xa2, 0x67, 0xee, 0xea, 0x33, 0x04, 0x60, 0xbe, 0xb5, 0x53, 0xa1, 0xef, 0xbc,
+ 0xa3, 0x6b, 0xa4, 0x04, 0x6f, 0x6c, 0x57, 0x5a, 0xc1, 0x4e, 0x93, 0xea, 0x05, 0xf6, 0xc3, 0xdc,
+ 0xa5, 0xf8, 0xa3, 0x68, 0xfc, 0x00, 0x56, 0x51, 0x57, 0x68, 0x74, 0x47, 0xe3, 0x30, 0x0a, 0x87,
+ 0xd8, 0x87, 0x25, 0x58, 0xa0, 0x21, 0xdb, 0xe4, 0xe3, 0x90, 0x77, 0xa0, 0x39, 0xe9, 0x8d, 0xbb,
+ 0x83, 0x5e, 0xf8, 0x2b, 0x5d, 0x33, 0x6e, 0xc1, 0x8a, 0xd7, 0x9f, 0x8c, 0xbb, 0xd1, 0x01, 0x1d,
+ 0x33, 0x8e, 0x83, 0x43, 0xf2, 0x26, 0xac, 0xb6, 0x1d, 0xb3, 0xb9, 0x65, 0x6f, 0xb7, 0xdd, 0x36,
+ 0x0d, 0x9a, 0xa6, 0x5f, 0xa9, 0xf3, 0x67, 0x87, 0xa6, 0x4b, 0xfd, 0xc0, 0xb3, 0x2a, 0x96, 0xe3,
+ 0xeb, 0x9a, 0xf1, 0x1b, 0x0d, 0xce, 0xb4, 0x47, 0xc2, 0x55, 0xb6, 0x8d, 0xae, 0xf4, 0x57, 0xe0,
+ 0x62, 0x9b, 0x5a, 0x5e, 0xe0, 0xbb, 0x3b, 0x96, 0x13, 0xb4, 0xa9, 0xb9, 0x9d, 0xc5, 0x4d, 0xba,
+ 0x0c, 0x17, 0x14, 0x0e, 0xcf, 0xaa, 0xb8, 0xf7, 0x2d, 0x2f, 0x68, 0x99, 0x94, 0xee, 0xba, 0x5e,
+ 0x55, 0xd7, 0xc8, 0x06, 0xac, 0x1d, 0xc1, 0xd0, 0xac, 0x99, 0x7a, 0x21, 0x57, 0xe6, 0x58, 0xbb,
+ 0x66, 0x23, 0xd8, 0x72, 0x7d, 0xbd, 0x68, 0x34, 0xd9, 0x41, 0x87, 0xd0, 0x22, 0x1c, 0x91, 0x75,
+ 0x01, 0x66, 0x1d, 0xd7, 0xb1, 0xb2, 0x4f, 0x43, 0x4b, 0xb0, 0x60, 0xb6, 0x5a, 0x9e, 0x7b, 0x1f,
+ 0x27, 0x14, 0x60, 0xbe, 0x6a, 0x39, 0xac, 0x67, 0x45, 0x56, 0xd2, 0xf2, 0xdc, 0xa6, 0xeb, 0x5b,
+ 0x55, 0x7d, 0xd6, 0xf0, 0xe4, 0x86, 0x91, 0x8d, 0xee, 0xf5, 0xf9, 0x3b, 0x4c, 0xd5, 0xaa, 0x99,
+ 0xed, 0x86, 0x2f, 0x06, 0xe4, 0x41, 0xe0, 0x59, 0xf7, 0xda, 0x16, 0xf5, 0xa9, 0xae, 0x11, 0x1d,
+ 0x96, 0x1c, 0xcb, 0xaa, 0xd2, 0xc0, 0xb3, 0xee, 0xdb, 0xd6, 0xae, 0x5e, 0x60, 0x6d, 0xf2, 0xbf,
+ 0xd9, 0x7f, 0x30, 0x3e, 0xd7, 0x80, 0x70, 0x58, 0x16, 0x89, 0x9c, 0x89, 0xf3, 0xb3, 0x09, 0x1b,
+ 0x75, 0x36, 0xb0, 0xf8, 0x69, 0x4d, 0xb7, 0x9a, 0x1d, 0xb2, 0x35, 0x20, 0x99, 0x72, 0xb7, 0x56,
+ 0xd3, 0x35, 0x72, 0x01, 0xce, 0x66, 0xe8, 0x55, 0xcf, 0x6d, 0xe9, 0x85, 0x8d, 0xc2, 0x82, 0x46,
+ 0xce, 0xe7, 0x0a, 0x77, 0x2c, 0xab, 0xa5, 0x17, 0xd9, 0x14, 0x65, 0x0a, 0xe4, 0x02, 0xe4, 0xd5,
+ 0x67, 0x8d, 0x4f, 0x35, 0x58, 0xe3, 0xdd, 0x94, 0xab, 0x39, 0xee, 0xea, 0x45, 0x58, 0x17, 0x08,
+ 0x52, 0x47, 0x75, 0xf4, 0x1c, 0xe8, 0xa9, 0x52, 0xde, 0xcd, 0x37, 0x61, 0x35, 0x45, 0xc5, 0x7e,
+ 0x14, 0xd8, 0x5e, 0x4d, 0x91, 0xb7, 0x2c, 0xea, 0x07, 0x56, 0xad, 0xe6, 0x7a, 0x3e, 0xef, 0x48,
+ 0xd1, 0x28, 0xc3, 0x6a, 0x25, 0x1c, 0x8e, 0x99, 0x0d, 0x12, 0x8d, 0xba, 0xfd, 0x08, 0xbb, 0xb0,
+ 0x0c, 0x8b, 0xd6, 0x47, 0xbe, 0xe5, 0x50, 0xdb, 0x75, 0xf4, 0x19, 0xe3, 0x62, 0x86, 0x47, 0xee,
+ 0x1a, 0x4a, 0xeb, 0xfa, 0x8c, 0xd1, 0x81, 0x65, 0xe9, 0x9a, 0xca, 0x57, 0xc5, 0x26, 0x6c, 0xc8,
+ 0xb5, 0x86, 0xfb, 0x37, 0xfb, 0x09, 0xeb, 0x70, 0x2e, 0x5f, 0x6e, 0xf9, 0xba, 0xc6, 0x66, 0x21,
+ 0x53, 0xc2, 0xe8, 0x05, 0xe3, 0xa7, 0xb0, 0x94, 0x82, 0x98, 0x3e, 0x0f, 0x67, 0xd5, 0xdf, 0xad,
+ 0x30, 0xda, 0xef, 0x46, 0x07, 0xfa, 0x4c, 0xb6, 0xc0, 0x9b, 0x44, 0x11, 0x2b, 0xc0, 0x15, 0xaf,
+ 0x16, 0xf8, 0xe1, 0xf0, 0x69, 0x37, 0xea, 0x8c, 0xc3, 0x7d, 0xbd, 0x60, 0xdc, 0x80, 0xe5, 0x14,
+ 0x14, 0x0f, 0xfb, 0xb4, 0x86, 0x2b, 0x04, 0x42, 0xd3, 0xaa, 0xda, 0xed, 0xa6, 0x3e, 0xc7, 0xd6,
+ 0x7a, 0xdd, 0xde, 0xae, 0xeb, 0x60, 0xfc, 0x4e, 0x63, 0x2a, 0x29, 0xc2, 0x55, 0x36, 0x6b, 0xa6,
+ 0x1c, 0x0c, 0x36, 0x11, 0x1c, 0xb5, 0xcb, 0xa2, 0x94, 0xbf, 0x19, 0x5e, 0x84, 0x75, 0xf1, 0x23,
+ 0x30, 0x9d, 0x6a, 0x50, 0x37, 0xbd, 0xea, 0xae, 0xe9, 0xb1, 0xd9, 0x79, 0xa0, 0x17, 0x70, 0xc9,
+ 0x29, 0x94, 0xc0, 0x77, 0xdb, 0x95, 0xba, 0x5e, 0x64, 0x33, 0x9c, 0xa2, 0xb7, 0x6c, 0x47, 0x9f,
+ 0xc5, 0x05, 0x9c, 0xe3, 0xc6, 0x66, 0x59, 0xf9, 0x9c, 0xd1, 0x05, 0x3d, 0x1b, 0x9f, 0x93, 0x7b,
+ 0xbc, 0xf5, 0xda, 0x8e, 0xc3, 0x77, 0xe8, 0x0a, 0x94, 0x5c, 0xbf, 0x6e, 0x79, 0x02, 0x57, 0x0d,
+ 0x81, 0xd4, 0xda, 0x8e, 0xd9, 0xf6, 0xeb, 0xae, 0x67, 0x3f, 0xc4, 0xad, 0xba, 0x0e, 0xe7, 0x68,
+ 0xc3, 0xac, 0xec, 0x04, 0x8e, 0xeb, 0x07, 0xb6, 0x13, 0x54, 0xea, 0xa6, 0xe3, 0x58, 0x0d, 0x1d,
+ 0x8c, 0xbf, 0x68, 0x70, 0xe1, 0x98, 0x07, 0x1e, 0xf2, 0x16, 0x5c, 0xaf, 0x5b, 0x66, 0xb5, 0x61,
+ 0x51, 0x1a, 0xb0, 0x26, 0x2d, 0xc7, 0x17, 0xef, 0xa8, 0x47, 0x2e, 0x87, 0xeb, 0xf0, 0x9d, 0xe3,
+ 0xd9, 0x13, 0xc1, 0xf2, 0x5d, 0xb8, 0x7a, 0x3c, 0xab, 0x10, 0x34, 0x05, 0x62, 0xc0, 0xb5, 0xe3,
+ 0x39, 0x63, 0x01, 0x55, 0x34, 0x3e, 0xd3, 0x60, 0xed, 0x68, 0x7b, 0x8c, 0xf5, 0xcd, 0x76, 0xa8,
+ 0x6f, 0x36, 0x1a, 0x41, 0xcb, 0xf4, 0xcc, 0x66, 0x60, 0x39, 0x9e, 0xdb, 0x68, 0x1c, 0xb5, 0x31,
+ 0xaf, 0xc2, 0x95, 0xe9, 0xac, 0xb4, 0xe2, 0xd9, 0x2d, 0xb6, 0xc2, 0xcb, 0xb0, 0x39, 0x9d, 0xcb,
+ 0xb2, 0x2b, 0x96, 0x5e, 0xd8, 0xfa, 0xf0, 0x8b, 0x7f, 0x6c, 0xce, 0x7c, 0xf1, 0x62, 0x53, 0xfb,
+ 0xf2, 0xc5, 0xa6, 0xf6, 0xf7, 0x17, 0x9b, 0xda, 0xc3, 0xef, 0x9d, 0x22, 0x7f, 0xe2, 0xa3, 0x79,
+ 0x74, 0x1c, 0xb8, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x02, 0x74, 0xf9, 0xb6, 0x3a, 0x82,
+ 0x01, 0x00,
}
func (this *PluginSpecV1) Equal(that interface{}) bool {
@@ -37547,6 +37561,18 @@ func (m *RegisterUsingTokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.BotGeneration != 0 {
+ i = encodeVarintTypes(dAtA, i, uint64(m.BotGeneration))
+ i--
+ dAtA[i] = 0x70
+ }
+ if len(m.BotInstanceID) > 0 {
+ i -= len(m.BotInstanceID)
+ copy(dAtA[i:], m.BotInstanceID)
+ i = encodeVarintTypes(dAtA, i, uint64(len(m.BotInstanceID)))
+ i--
+ dAtA[i] = 0x6a
+ }
if m.Expires != nil {
n270, err270 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):])
if err270 != nil {
@@ -50989,6 +51015,13 @@ func (m *RegisterUsingTokenRequest) Size() (n int) {
l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires)
n += 1 + l + sovTypes(uint64(l))
}
+ l = len(m.BotInstanceID)
+ if l > 0 {
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ if m.BotGeneration != 0 {
+ n += 1 + sovTypes(uint64(m.BotGeneration))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -101093,6 +101126,57 @@ func (m *RegisterUsingTokenRequest) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotInstanceID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthTypes
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BotInstanceID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 14:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BotGeneration", wireType)
+ }
+ m.BotGeneration = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BotGeneration |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
diff --git a/constants.go b/constants.go
index fa231f3d0c4b4..3b55a69080c6e 100644
--- a/constants.go
+++ b/constants.go
@@ -502,6 +502,10 @@ const (
// CertExtensionBotName indicates the name of the Machine ID bot this
// certificate was issued to, if any.
CertExtensionBotName = "bot-name@goteleport.com"
+ // CertExtensionBotInstanceID indicates the unique identifier of this
+ // Machine ID bot instance, if any. This identifier is persisted through
+ // certificate renewals.
+ CertExtensionBotInstanceID = "bot-instance-id@goteleport.com"
// CertCriticalOptionSourceAddress is a critical option that defines IP addresses (in CIDR notation)
// from which this certificate is accepted for authentication.
diff --git a/lib/auth/auth.go b/lib/auth/auth.go
index 4d19e289b4ff9..3bd69ea0cfaeb 100644
--- a/lib/auth/auth.go
+++ b/lib/auth/auth.go
@@ -334,6 +334,12 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) {
return nil, trace.Wrap(err)
}
}
+ if cfg.BotInstance == nil {
+ cfg.BotInstance, err = local.NewBotInstanceService(cfg.Backend, cfg.Clock)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ }
limiter, err := limiter.NewConnectionsLimiter(limiter.Config{
MaxConnections: defaults.LimiterMaxConcurrentSignatures,
@@ -421,6 +427,7 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) {
Notifications: cfg.Notifications,
AccessMonitoringRules: cfg.AccessMonitoringRules,
CrownJewels: cfg.CrownJewels,
+ BotInstance: cfg.BotInstance,
}
as := Server{
@@ -618,6 +625,7 @@ type Services struct {
services.KubeWaitingContainer
services.AccessMonitoringRules
services.CrownJewels
+ services.BotInstance
}
// GetWebSession returns existing web session described by req.
@@ -1957,6 +1965,9 @@ type certRequest struct {
deviceExtensions DeviceExtensions
// botName is the name of the bot requesting this cert, if any
botName string
+ // botInstanceID is the unique identifier of the bot instance associated
+ // with this cert, if any
+ botInstanceID string
}
// check verifies the cert request is valid.
@@ -2782,6 +2793,7 @@ func generateCert(ctx context.Context, a *Server, req certRequest, caType types.
Renewable: req.renewable,
Generation: req.generation,
BotName: req.botName,
+ BotInstanceID: req.botInstanceID,
CertificateExtensions: req.checker.CertificateExtensions(),
AllowedResourceIDs: requestedResourcesStr,
ConnectionDiagnosticID: req.connectionDiagnosticID,
@@ -2877,6 +2889,7 @@ func generateCert(ctx context.Context, a *Server, req certRequest, caType types.
Renewable: req.renewable,
Generation: req.generation,
BotName: req.botName,
+ BotInstanceID: req.botInstanceID,
AllowedResourceIDs: req.checker.GetAllowedResourceIDs(),
PrivateKeyPolicy: attestedKeyPolicy,
ConnectionDiagnosticID: req.connectionDiagnosticID,
diff --git a/lib/auth/auth_with_roles.go b/lib/auth/auth_with_roles.go
index 67da561b3a2ee..ebde61dde9695 100644
--- a/lib/auth/auth_with_roles.go
+++ b/lib/auth/auth_with_roles.go
@@ -19,6 +19,7 @@
package auth
import (
+ "cmp"
"context"
"fmt"
"net/url"
@@ -602,13 +603,43 @@ func (a *ServerWithRoles) GetClusterCACert(
}
func (a *ServerWithRoles) RegisterUsingToken(ctx context.Context, req *types.RegisterUsingTokenRequest) (*proto.Certs, error) {
+ isProxy := a.hasBuiltinRole(types.RoleProxy)
+
// We do not trust remote addr in the request unless it's coming from the Proxy.
- if !a.hasBuiltinRole(types.RoleProxy) || req.RemoteAddr == "" {
+ if !isProxy || req.RemoteAddr == "" {
if err := setRemoteAddrFromContext(ctx, req); err != nil {
return nil, trace.Wrap(err)
}
}
+ // Similarly, do not trust bot instance IDs or generation values in the
+ // request unless from a component with the proxy role (e.g. the join
+ // service). They will be derived from the client certificate otherwise.
+ if !isProxy {
+ if req.BotInstanceID != "" {
+ log.WithFields(logrus.Fields{
+ "bot_instance_id": req.BotInstanceID,
+ }).Warnf("Untrusted client attempted to provide a bot instance ID, this will be ignored")
+
+ req.BotInstanceID = ""
+ }
+
+ if req.BotGeneration > 0 {
+ log.WithFields(logrus.Fields{
+ "bot_generation": req.BotGeneration,
+ }).Warnf("Untrusted client attempted to provide a bot generation, this will be ignored")
+
+ req.BotGeneration = 0
+ }
+ }
+
+ // If the identity has a BotInstanceID or BotGeneration included, copy it
+ // onto the request - but only if one wasn't already passed along via the
+ // proxy.
+ ident := a.context.Identity.GetIdentity()
+ req.BotInstanceID = cmp.Or(req.BotInstanceID, ident.BotInstanceID)
+ req.BotGeneration = cmp.Or(req.BotGeneration, int32(ident.Generation))
+
// tokens have authz mechanism on their own, no need to check
return a.authServer.RegisterUsingToken(ctx, req)
}
@@ -3153,7 +3184,14 @@ func (a *ServerWithRoles) generateUserCerts(ctx context.Context, req proto.UserC
connectionDiagnosticID: req.ConnectionDiagnosticID,
attestationStatement: keys.AttestationStatementFromProto(req.AttestationStatement),
botName: getBotName(user),
+
+ // Always pass through a bot instance ID if available. Legacy bots
+ // joining without an instance ID may have one generated when
+ // `updateBotInstance()` is called below, and this (empty) value will be
+ // overridden.
+ botInstanceID: a.context.Identity.GetIdentity().BotInstanceID,
}
+
if user.GetName() != a.context.User.GetName() {
certReq.impersonator = a.context.User.GetName()
} else if isRoleImpersonation(req) {
@@ -3199,10 +3237,24 @@ func (a *ServerWithRoles) generateUserCerts(ctx context.Context, req proto.UserC
certReq.renewable = true
}
- // If the cert is renewable, process any certificate generation counter.
+ // If the cert is renewable, process any bot instance updates (generation
+ // counter, auth records, etc). `updateBotInstance()` may modify certain
+ // `certReq` attributes (generation, botInstanceID).
if certReq.renewable {
currentIdentityGeneration := a.context.Identity.GetIdentity().Generation
- if err := a.authServer.validateGenerationLabel(ctx, user.GetName(), &certReq, currentIdentityGeneration); err != nil {
+
+ // If we're handling a renewal for a bot, we want to return the
+ // Host CAs as well as the User CAs.
+ if certReq.botName != "" {
+ certReq.includeHostCA = true
+ }
+
+ // Update the bot instance based on this authentication. This may create
+ // a new bot instance record if the identity is missing an instance ID.
+ if err := a.authServer.updateBotInstance(
+ ctx, &certReq, user.GetName(), certReq.botName,
+ certReq.botInstanceID, nil, int32(currentIdentityGeneration),
+ ); err != nil {
return nil, trace.Wrap(err)
}
}
diff --git a/lib/auth/authclient/clt.go b/lib/auth/authclient/clt.go
index fd0d6ba856139..14a9df3fcac41 100644
--- a/lib/auth/authclient/clt.go
+++ b/lib/auth/authclient/clt.go
@@ -1542,12 +1542,19 @@ type ClientI interface {
// (as per the default gRPC behavior).
SecReportsClient() *secreport.Client
- // BotServiceClient returns a client for security reports.
+ // BotServiceClient returns a client for the Machine ID Bot Service.
// Clients connecting to older Teleport versions, still get a bot service client
// when calling this method, but all RPCs will return "not implemented" errors
// (as per the default gRPC behavior).
BotServiceClient() machineidv1pb.BotServiceClient
+ // BotInstanceServiceClient returns a client for interacting with Machine ID
+ // Bot Instances.
+ // Clients connecting to older Teleport versions, still get a bot service client
+ // when calling this method, but all RPCs will return "not implemented" errors
+ // (as per the default gRPC behavior).
+ BotInstanceServiceClient() machineidv1pb.BotInstanceServiceClient
+
// UserLoginStateClient returns a user login state client.
// Clients connecting to older Teleport versions still get a user login state client
// when calling this method, but all RPCs will return "not implemented" errors
diff --git a/lib/auth/bot.go b/lib/auth/bot.go
index 472d5f672e922..801000c759412 100644
--- a/lib/auth/bot.go
+++ b/lib/auth/bot.go
@@ -20,25 +20,39 @@ package auth
import (
"context"
+ "crypto/rsa"
+ "crypto/x509"
+ "encoding/pem"
"fmt"
"strconv"
"time"
"github.com/google/uuid"
"github.com/gravitational/trace"
+ "github.com/sirupsen/logrus"
+ "google.golang.org/protobuf/types/known/timestamppb"
"github.com/gravitational/teleport/api/client/proto"
+ headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
+ machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/types"
apievents "github.com/gravitational/teleport/api/types/events"
apiutils "github.com/gravitational/teleport/api/utils"
+ "github.com/gravitational/teleport/lib/auth/machineid/machineidv1"
"github.com/gravitational/teleport/lib/authz"
"github.com/gravitational/teleport/lib/defaults"
"github.com/gravitational/teleport/lib/events"
"github.com/gravitational/teleport/lib/services"
+ "github.com/gravitational/teleport/lib/sshutils"
)
-// validateGenerationLabel validates and updates a generation label.
-func (a *Server) validateGenerationLabel(ctx context.Context, username string, certReq *certRequest, currentIdentityGeneration uint64) error {
+// legacyValidateGenerationLabel validates and updates a generation label.
+// TODO(timothyb89): This is deprecated in favor of bot instance generation
+// counters. Upgrade/downgrade compatibility will be provided through v17.
+// TODO(timothyb89): In v18, we should explicitly remove generation counters
+// labels from the bot user.
+// REMOVE IN V18: Use bot instance generation counters instead.
+func (a *Server) legacyValidateGenerationLabel(ctx context.Context, username string, certReq *certRequest, currentIdentityGeneration uint64) error {
// Fetch the user, bypassing the cache. We might otherwise fetch a stale
// value in case of a rapid certificate renewal.
user, err := a.Services.GetUser(ctx, username, false)
@@ -108,33 +122,8 @@ func (a *Server) validateGenerationLabel(ctx context.Context, username string, c
// The current generations must match to continue:
if currentIdentityGeneration != currentUserGeneration {
- // Lock the bot user indefinitely.
- lock, err := types.NewLock(uuid.New().String(), types.LockSpecV2{
- Target: types.LockTarget{
- User: user.GetName(),
- },
- Message: fmt.Sprintf(
- "The bot user %q has been locked due to a certificate generation mismatch, possibly indicating a stolen certificate.",
- user.GetName(),
- ),
- })
- if err != nil {
- return trace.Wrap(err)
- }
- if err := a.UpsertLock(ctx, lock); err != nil {
- return trace.Wrap(err)
- }
-
- // Emit an audit event.
- userMetadata := authz.ClientUserMetadata(ctx)
- if err := a.emitter.EmitAuditEvent(a.closeCtx, &apievents.RenewableCertificateGenerationMismatch{
- Metadata: apievents.Metadata{
- Type: events.RenewableCertificateGenerationMismatchEvent,
- Code: events.RenewableCertificateGenerationMismatchCode,
- },
- UserMetadata: userMetadata,
- }); err != nil {
- log.WithError(err).Warn("Failed to emit renewable cert generation mismatch event")
+ if err := a.tryLockBotDueToGenerationMismatch(ctx, user.GetName()); err != nil {
+ log.WithError(err).Warnf("Failed to lock bot %q when a generation mismatch was detected", user.GetName())
}
return trace.AccessDenied(
@@ -168,6 +157,334 @@ func (a *Server) validateGenerationLabel(ctx context.Context, username string, c
return nil
}
+func sshPublicKeyToPKIXPEM(pubKey []byte) ([]byte, error) {
+ cryptoPubKey, err := sshutils.CryptoPublicKey(pubKey)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ // Note: Manually unrolled `MarshalPublicKey` from
+ // https://github.com/gravitational/teleport/pull/43260 as it was not
+ // backported to v15.
+ switch pubKey := cryptoPubKey.(type) {
+ case *rsa.PublicKey:
+ pubPEM := pem.EncodeToMemory(&pem.Block{
+ Type: "RSA PUBLIC KEY",
+ Bytes: x509.MarshalPKCS1PublicKey(pubKey),
+ })
+ return pubPEM, nil
+ default:
+ return nil, trace.BadParameter("unsupported public key type %T", cryptoPubKey)
+ }
+}
+
+// commitGenerationCounterToBotUser updates the legacy generation counter label
+// for a user, but only when the counter is greater than the previous value. If
+// multiple bot instances exist for a given bot user, only the largest counter
+// value is persisted. This ensures that, if a cluster is downgraded, exactly
+// one bot instance (with the largest generation value) will be able to
+// reauthenticate.
+func (a *Server) commitLegacyGenerationCounterToBotUser(ctx context.Context, username string, newValue uint64) error {
+ var err error
+
+ for i := 0; i < 3; i++ {
+ user, err := a.Services.GetUser(ctx, username, false)
+ if err != nil {
+ return trace.Wrap(err)
+ }
+
+ var currentUserGeneration uint64
+ label := user.BotGenerationLabel()
+ if label != "" {
+ currentUserGeneration, err = strconv.ParseUint(label, 10, 64)
+ if err != nil {
+ return trace.BadParameter("user has invalid value for label %q", types.BotGenerationLabel)
+ }
+ }
+
+ if newValue <= currentUserGeneration {
+ // Nothing to do, value is up to date
+ return nil
+ }
+
+ // Clone the user and update the generation label.
+ userV2, ok := user.(*types.UserV2)
+ if !ok {
+ return trace.BadParameter("unsupported version of user: %T", user)
+ }
+ newUser := apiutils.CloneProtoMsg(userV2)
+ metadata := newUser.GetMetadata()
+ metadata.Labels[types.BotGenerationLabel] = fmt.Sprint(newValue)
+ newUser.SetMetadata(metadata)
+
+ // Attempt to commit the change. If it fails due to a comparison
+ // failure, try again.
+ err = a.CompareAndSwapUser(ctx, newUser, user)
+ if err == nil {
+ return nil
+ } else if trace.IsCompareFailed(err) {
+ continue
+ } else {
+ return trace.Wrap(err)
+ }
+ }
+
+ return trace.Wrap(err)
+}
+
+// tryLockBotDueToGenerationMismatch creates a lock for the given bot user and
+// emits a `RenewableCertificateGenerationMismatch` audit event.
+func (a *Server) tryLockBotDueToGenerationMismatch(ctx context.Context, username string) error {
+ // TODO: In the future, consider only locking the current join method / token.
+
+ // Lock the bot user indefinitely.
+ lock, err := types.NewLock(uuid.New().String(), types.LockSpecV2{
+ Target: types.LockTarget{
+ User: username,
+ },
+ Message: fmt.Sprintf(
+ "The bot user %q has been locked due to a certificate generation mismatch, possibly indicating a stolen certificate.",
+ username,
+ ),
+ })
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ if err := a.UpsertLock(ctx, lock); err != nil {
+ return trace.Wrap(err)
+ }
+
+ // Emit an audit event.
+ userMetadata := authz.ClientUserMetadata(ctx)
+ if err := a.emitter.EmitAuditEvent(a.closeCtx, &apievents.RenewableCertificateGenerationMismatch{
+ Metadata: apievents.Metadata{
+ Type: events.RenewableCertificateGenerationMismatchEvent,
+ Code: events.RenewableCertificateGenerationMismatchCode,
+ },
+ UserMetadata: userMetadata,
+ }); err != nil {
+ log.WithError(err).Warn("Failed to emit renewable cert generation mismatch event")
+ }
+
+ return nil
+}
+
+// updateBotInstance updates the bot instance associated with the context
+// identity, if any. If the optional `templateAuthRecord` is provided, various
+// metadata fields will be copied into the newly generated auth record.
+func (a *Server) updateBotInstance(
+ ctx context.Context, req *certRequest,
+ username, botName, botInstanceID string,
+ templateAuthRecord *machineidv1pb.BotInstanceStatusAuthentication,
+ currentIdentityGeneration int32,
+) error {
+ if botName == "" {
+ // Only applies to bot identities
+ return nil
+ }
+
+ // Check if this bot instance actually exists.
+ var instanceGeneration int32
+ instanceNotFound := false
+ if botInstanceID != "" {
+ existingInstance, err := a.BotInstance.GetBotInstance(ctx, botName, botInstanceID)
+ if trace.IsNotFound(err) {
+ instanceNotFound = true
+ } else if err != nil {
+ // Some other error, bail.
+ return trace.Wrap(err)
+ } else {
+ // We have an existing instance, so fetch its generation.
+ auths := existingInstance.Status.LatestAuthentications
+ if len(auths) > 0 {
+ latest := auths[len(auths)-1]
+ instanceGeneration = latest.Generation
+ }
+ }
+ }
+
+ // req.PublicKey is in SSH Authorized Keys format. For consistency, we
+ // only store public keys in PEM wrapped PKIX, DER format within
+ // BotInstances.
+ pkixPEM, err := sshPublicKeyToPKIXPEM(req.publicKey)
+ if err != nil {
+ return trace.Wrap(err, "converting key")
+ }
+
+ authRecord := &machineidv1pb.BotInstanceStatusAuthentication{
+ AuthenticatedAt: timestamppb.New(a.GetClock().Now()),
+ PublicKey: pkixPEM,
+
+ // Note: This is presumed to be a token join. If not, a
+ // `templateAuthRecord` should be provided to override this value.
+ JoinMethod: string(types.JoinMethodToken),
+ }
+
+ if templateAuthRecord != nil {
+ authRecord.JoinToken = templateAuthRecord.JoinToken
+ authRecord.JoinMethod = templateAuthRecord.JoinMethod
+ authRecord.Metadata = templateAuthRecord.Metadata
+ }
+
+ // An empty bot instance most likely means a bot is rejoining after an
+ // upgrade, so a new bot instance should be generated. We may consider
+ // making this an error in the future.
+ if botInstanceID == "" || instanceNotFound {
+ instanceID, err := uuid.NewRandom()
+ if err != nil {
+ return trace.Wrap(err)
+ }
+
+ // TODO(timothyb89): consider making this the only path where bot
+ // instances are created. We could call `updateBotInstance()`
+ // unconditionally from `generateInitialBotCerts()` and have only one
+ // codepath. (But may need to clean up log messages.)
+
+ // Set the initial generation counter. Note that with bot instances, the
+ // counter is now set for all join methods, but only enforced for token
+ // joins.
+ if currentIdentityGeneration > 0 {
+ // If the incoming identity has a nonzero generation, validate it
+ // using the legacy check. This will increment the counter on the
+ // request automatically
+ if err := a.legacyValidateGenerationLabel(ctx, username, req, uint64(currentIdentityGeneration)); err != nil {
+ return trace.Wrap(err)
+ }
+
+ // Copy the value from the request into the auth record.
+ authRecord.Generation = int32(req.generation)
+ } else {
+ // Otherwise, just set it to 1.
+ req.generation = 1
+ authRecord.Generation = 1
+ }
+
+ log.WithFields(logrus.Fields{
+ "bot_name": botName,
+ "invalid_instance_id": botInstanceID,
+ "new_instance_id": instanceID.String(),
+ }).Info("bot has no valid instance ID, a new instance will be generated")
+
+ expires := a.GetClock().Now().Add(req.ttl + machineidv1.ExpiryMargin)
+
+ bi := newBotInstance(&machineidv1pb.BotInstanceSpec{
+ BotName: botName,
+ InstanceId: instanceID.String(),
+ }, authRecord, expires)
+
+ if _, err := a.BotInstance.CreateBotInstance(ctx, bi); err != nil {
+ return trace.Wrap(err)
+ }
+
+ // Add the new ID to the cert request
+ req.botInstanceID = instanceID.String()
+
+ return nil
+ }
+
+ l := log.WithFields(logrus.Fields{
+ "bot_name": botName,
+ "bot_instance_id": botInstanceID,
+ })
+
+ if currentIdentityGeneration == 0 {
+ // Nothing to do.
+ l.Warn("bot attempted to fetch certificates without providing a current identity generation, this is not allowed")
+
+ return trace.AccessDenied("a current identity generation must be provided")
+ } else if currentIdentityGeneration > 0 && currentIdentityGeneration != instanceGeneration {
+ // For now, continue to only enforce generation counter checks on
+ // renewable (i.e. token) identities.
+ if req.renewable {
+ if err := a.tryLockBotDueToGenerationMismatch(ctx, username); err != nil {
+ l.WithError(err).Warn("Failed to lock bot when a generation mismatch was detected")
+ }
+
+ return trace.AccessDenied(
+ "renewable cert generation mismatch for bot %s/%s: stored=%v, presented=%v",
+ botName, botInstanceID,
+ instanceGeneration, currentIdentityGeneration,
+ )
+ } else {
+ // We'll still log the check failure, but won't deny access. This
+ // log data will help make an informed decision about reliability of
+ // the generation counter for all join methods in the future.
+ l.WithFields(logrus.Fields{
+ "bot_instance_generation": instanceGeneration,
+ "bot_identity_generation": currentIdentityGeneration,
+ "bot_join_method": authRecord.JoinMethod,
+ }).Warn("Bot generation counter mismatch detected. This check is not enforced for this join method, " +
+ "but may indicate multiple uses of a bot identity and possibly a compromised certificate.")
+ }
+ }
+
+ // Increment the generation counter the cert and bot instance. The counter
+ // should be incremented and stored even if it is not validated above.
+ newGeneration := instanceGeneration + 1
+ authRecord.Generation = newGeneration
+ req.generation = uint64(newGeneration)
+
+ // Commit the generation counter to the bot user for downgrade
+ // compatibility, but only if this is a renewable identity. Previous
+ // versions only expect a nonzero generation counter for token joins, so
+ // setting this for other methods will break compatibility.
+ if req.renewable {
+ if err := a.commitLegacyGenerationCounterToBotUser(ctx, username, uint64(newGeneration)); err != nil {
+ l.WithError(err).Warn("unable to commit legacy generation counter to bot user")
+ }
+ }
+
+ _, err = a.BotInstance.PatchBotInstance(ctx, botName, botInstanceID, func(bi *machineidv1pb.BotInstance) (*machineidv1pb.BotInstance, error) {
+ if bi.Status == nil {
+ bi.Status = &machineidv1pb.BotInstanceStatus{}
+ }
+
+ // Update the record's expiration timestamp based on the request TTL
+ // plus an expiry margin.
+ bi.Metadata.Expires = timestamppb.New(a.GetClock().Now().Add(req.ttl + machineidv1.ExpiryMargin))
+
+ // If we're at or above the limit, remove enough of the front elements
+ // to make room for the new one at the end.
+ if len(bi.Status.LatestAuthentications) >= machineidv1.AuthenticationHistoryLimit {
+ toRemove := len(bi.Status.LatestAuthentications) - machineidv1.AuthenticationHistoryLimit + 1
+ bi.Status.LatestAuthentications = bi.Status.LatestAuthentications[toRemove:]
+ }
+
+ // An initial auth record should have been added during initial join,
+ // but if not, add it now.
+ if bi.Status.InitialAuthentication == nil {
+ l.Warn("bot instance is missing its initial authentication record, a new one will be added")
+ bi.Status.InitialAuthentication = authRecord
+ }
+
+ bi.Status.LatestAuthentications = append(bi.Status.LatestAuthentications, authRecord)
+
+ return bi, nil
+ })
+
+ return trace.Wrap(err)
+}
+
+// newBotInstance constructs a new bot instance from a spec and initial authentication
+func newBotInstance(
+ spec *machineidv1pb.BotInstanceSpec,
+ initialAuth *machineidv1pb.BotInstanceStatusAuthentication,
+ expires time.Time,
+) *machineidv1pb.BotInstance {
+ return &machineidv1pb.BotInstance{
+ Kind: types.KindBotInstance,
+ Version: types.V1,
+ Metadata: &headerv1.Metadata{
+ Expires: timestamppb.New(expires),
+ },
+ Spec: spec,
+ Status: &machineidv1pb.BotInstanceStatus{
+ InitialAuthentication: initialAuth,
+ LatestAuthentications: []*machineidv1pb.BotInstanceStatusAuthentication{initialAuth},
+ },
+ }
+}
+
// generateInitialBotCerts is used to generate bot certs and overlaps
// significantly with `generateUserCerts()`. However, it omits a number of
// options (impersonation, access requests, role requests, actual cert renewal,
@@ -175,7 +492,14 @@ func (a *Server) validateGenerationLabel(ctx context.Context, username string, c
// care if the current identity is Nop. This function does not validate the
// current identity at all; the caller is expected to validate that the client
// is allowed to issue the (possibly renewable) certificates.
-func (a *Server) generateInitialBotCerts(ctx context.Context, botName, username, loginIP string, pubKey []byte, expires time.Time, renewable bool) (*proto.Certs, error) {
+//
+// Returns a second argument of the bot instance ID for inclusion in audit logs.
+func (a *Server) generateInitialBotCerts(
+ ctx context.Context, botName, username, loginIP string, pubKey []byte,
+ expires time.Time, renewable bool,
+ initialAuth *machineidv1pb.BotInstanceStatusAuthentication,
+ existingInstanceID string, currentIdentityGeneration int32,
+) (*proto.Certs, string, error) {
var err error
// Extract the user and role set for whom the certificate will be generated.
@@ -187,13 +511,13 @@ func (a *Server) generateInitialBotCerts(ctx context.Context, botName, username,
userState, err := a.GetUserOrLoginState(ctx, username)
if err != nil {
log.WithError(err).Debugf("Could not impersonate user %v. The user could not be fetched from local store.", username)
- return nil, trace.AccessDenied("access denied")
+ return nil, "", trace.AccessDenied("access denied")
}
// Do not allow SSO users to be impersonated.
if userState.GetUserType() == types.UserTypeSSO {
log.Warningf("Tried to issue a renewable cert for externally managed user %v, this is not supported.", username)
- return nil, trace.AccessDenied("access denied")
+ return nil, "", trace.AccessDenied("access denied")
}
// Cap the cert TTL to the MaxRenewableCertTTL.
@@ -205,17 +529,11 @@ func (a *Server) generateInitialBotCerts(ctx context.Context, botName, username,
accessInfo := services.AccessInfoFromUserState(userState)
clusterName, err := a.GetClusterName()
if err != nil {
- return nil, trace.Wrap(err)
+ return nil, "", trace.Wrap(err)
}
checker, err := services.NewAccessChecker(accessInfo, clusterName.GetClusterName(), a)
if err != nil {
- return nil, trace.Wrap(err)
- }
-
- // renewable cert request must include a generation
- var generation uint64
- if renewable {
- generation = 1
+ return nil, "", trace.Wrap(err)
}
// Generate certificate
@@ -227,19 +545,55 @@ func (a *Server) generateInitialBotCerts(ctx context.Context, botName, username,
traits: accessInfo.Traits,
renewable: renewable,
includeHostCA: true,
- generation: generation,
loginIP: loginIP,
botName: botName,
}
- if err := a.validateGenerationLabel(ctx, userState.GetName(), &certReq, 0); err != nil {
- return nil, trace.Wrap(err)
+ if existingInstanceID == "" {
+ // If no existing instance ID is known, create a new one.
+ uuid, err := uuid.NewRandom()
+ if err != nil {
+ return nil, "", trace.Wrap(err)
+ }
+
+ initialAuth.Generation = 1
+
+ bi := newBotInstance(&machineidv1pb.BotInstanceSpec{
+ BotName: botName,
+ InstanceId: uuid.String(),
+ }, initialAuth, expires.Add(machineidv1.ExpiryMargin))
+
+ _, err = a.BotInstance.CreateBotInstance(ctx, bi)
+ if err != nil {
+ return nil, "", trace.Wrap(err)
+ }
+
+ certReq.botInstanceID = uuid.String()
+ certReq.generation = 1
+ } else {
+ // Otherwise, reuse the existing instance ID, and pass the
+ // initialAuth along.
+
+ // Note: botName is derived from the provision token rather than any
+ // value sent by the client, so we can trust it.
+ if err := a.updateBotInstance(
+ ctx, &certReq, username, botName, existingInstanceID,
+ initialAuth, currentIdentityGeneration,
+ ); err != nil {
+ return nil, "", trace.Wrap(err)
+ }
+
+ // Only set the bot instance ID if it's empty; `updateBotInstance()`
+ // may set it if a new instance is created.
+ if certReq.botInstanceID == "" {
+ certReq.botInstanceID = existingInstanceID
+ }
}
certs, err := a.generateUserCert(ctx, certReq)
if err != nil {
- return nil, trace.Wrap(err)
+ return nil, "", trace.Wrap(err)
}
- return certs, nil
+ return certs, certReq.botInstanceID, nil
}
diff --git a/lib/auth/bot_test.go b/lib/auth/bot_test.go
index 4c54114a96522..bff50bdb7558a 100644
--- a/lib/auth/bot_test.go
+++ b/lib/auth/bot_test.go
@@ -31,23 +31,38 @@ import (
"testing"
"time"
+ "github.com/aws/aws-sdk-go/aws/credentials"
"github.com/digitorus/pkcs7"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
"github.com/google/uuid"
"github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+ "github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
"golang.org/x/crypto/ssh"
+ "google.golang.org/grpc"
+ "github.com/gravitational/teleport"
"github.com/gravitational/teleport/api/client/proto"
+ "github.com/gravitational/teleport/api/client/webclient"
headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/metadata"
"github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/api/types/events"
"github.com/gravitational/teleport/lib/auth/authclient"
"github.com/gravitational/teleport/lib/auth/join"
"github.com/gravitational/teleport/lib/auth/machineid/machineidv1"
"github.com/gravitational/teleport/lib/auth/state"
"github.com/gravitational/teleport/lib/auth/testauthority"
"github.com/gravitational/teleport/lib/cloud/azure"
+ libevents "github.com/gravitational/teleport/lib/events"
+ "github.com/gravitational/teleport/lib/events/eventstest"
"github.com/gravitational/teleport/lib/fixtures"
+ "github.com/gravitational/teleport/lib/kubernetestoken"
+ "github.com/gravitational/teleport/lib/reversetunnelclient"
+ "github.com/gravitational/teleport/lib/tbot/identity"
"github.com/gravitational/teleport/lib/tlsca"
"github.com/gravitational/teleport/lib/utils"
)
@@ -60,12 +75,13 @@ func renewBotCerts(
publicKey []byte,
privateKey []byte,
) (*authclient.Client, *proto.Certs, tls.Certificate, error) {
+ fakeClock := srv.Clock().(clockwork.FakeClock)
client := srv.NewClientWithCert(tlsCert)
certs, err := client.GenerateUserCerts(ctx, proto.UserCertsRequest{
PublicKey: publicKey,
Username: botUser,
- Expires: time.Now().Add(time.Hour),
+ Expires: fakeClock.Now().Add(time.Hour),
})
if err != nil {
return nil, nil, tls.Certificate{}, trace.Wrap(err)
@@ -84,8 +100,10 @@ func renewBotCerts(
// work in ordinary conditions, with several rapid renewals.
func TestRegisterBotCertificateGenerationCheck(t *testing.T) {
t.Parallel()
+
srv := newTestTLSServer(t)
ctx := context.Background()
+ fakeClock := srv.Clock().(clockwork.FakeClock)
_, err := CreateRole(ctx, srv.Auth(), "example", types.RoleSpecV6{})
require.NoError(t, err)
@@ -131,29 +149,220 @@ func TestRegisterBotCertificateGenerationCheck(t *testing.T) {
require.NoError(t, err)
checkCertLoginIP(t, certs.TLS, "127.0.0.1")
+ initialCert, err := tlsca.ParseCertificatePEM(certs.TLS)
+ require.NoError(t, err)
+ initialIdent, err := tlsca.FromSubject(initialCert.Subject, initialCert.NotAfter)
+ require.NoError(t, err)
+
+ require.Equal(t, uint64(1), initialIdent.Generation)
+ require.Equal(t, "test", initialIdent.BotName)
+ require.NotEmpty(t, initialIdent.BotInstanceID)
+
tlsCert, err := tls.X509KeyPair(certs.TLS, privateKey)
require.NoError(t, err)
// Renew the cert a bunch of times.
for i := 0; i < 10; i++ {
+ // Ensure the state of the bot instance before renewal is sane.
+ bi, err := srv.Auth().BotInstance.GetBotInstance(ctx, initialIdent.BotName, initialIdent.BotInstanceID)
+ require.NoError(t, err)
+
+ // There should always be at least 1 entry as the initial join is
+ // duplicated in the list.
+ require.Len(t, bi.Status.LatestAuthentications, min(i+1, machineidv1.AuthenticationHistoryLimit))
+
+ // Generation starts at 1 for initial certs.
+ latest := bi.Status.LatestAuthentications[len(bi.Status.LatestAuthentications)-1]
+ require.Equal(t, int32(i+1), latest.Generation)
+
+ lastExpires := bi.Metadata.Expires.AsTime()
+
+ // Advance the clock a bit.
+ fakeClock.Advance(time.Minute)
+
_, certs, tlsCert, err = renewBotCerts(ctx, srv, tlsCert, bot.Status.UserName, publicKey, privateKey)
require.NoError(t, err)
// Parse the Identity
- impersonatedTLSCert, err := tlsca.ParseCertificatePEM(certs.TLS)
+ renewedCert, err := tlsca.ParseCertificatePEM(certs.TLS)
require.NoError(t, err)
- impersonatedIdent, err := tlsca.FromSubject(impersonatedTLSCert.Subject, impersonatedTLSCert.NotAfter)
+ renewedIdent, err := tlsca.FromSubject(renewedCert.Subject, renewedCert.NotAfter)
require.NoError(t, err)
+ // Validate that we receive 2 TLS CAs (Host and User)
+ require.Len(t, certs.TLSCACerts, 2)
+
// Cert must be renewable.
- require.True(t, impersonatedIdent.Renewable)
- require.False(t, impersonatedIdent.DisallowReissue)
+ require.True(t, renewedIdent.Renewable)
+ require.False(t, renewedIdent.DisallowReissue)
// Initial certs have generation=1 and we start the loop with a renewal, so add 2
- require.Equal(t, uint64(i+2), impersonatedIdent.Generation)
+ require.Equal(t, uint64(i+2), renewedIdent.Generation)
+
+ // Ensure the bot instance after renewal is sane.
+ bi, err = srv.Auth().BotInstance.GetBotInstance(ctx, initialIdent.BotName, initialIdent.BotInstanceID)
+ require.NoError(t, err)
+
+ require.Len(t, bi.Status.LatestAuthentications, min(i+2, machineidv1.AuthenticationHistoryLimit))
+
+ latest = bi.Status.LatestAuthentications[len(bi.Status.LatestAuthentications)-1]
+ require.Equal(t, int32(i+2), latest.Generation)
+
+ require.True(t, bi.Metadata.Expires.AsTime().After(lastExpires), "Metadata.Expires must be extended")
}
}
+// TestRegisterBotInstance tests that bot instances are created properly on join
+func TestRegisterBotInstance(t *testing.T) {
+ t.Parallel()
+
+ srv := newTestTLSServer(t)
+ // Inject mockEmitter to capture audit events
+ mockEmitter := &eventstest.MockRecorderEmitter{}
+ srv.Auth().SetEmitter(mockEmitter)
+ ctx := context.Background()
+
+ _, err := CreateRole(ctx, srv.Auth(), "example", types.RoleSpecV6{})
+ require.NoError(t, err)
+
+ // Create a new bot.
+ client, err := srv.NewClient(TestAdmin())
+ require.NoError(t, err)
+ bot, err := client.BotServiceClient().CreateBot(ctx, &machineidv1pb.CreateBotRequest{
+ Bot: &machineidv1pb.Bot{
+ Metadata: &headerv1.Metadata{
+ Name: "test",
+ },
+ Spec: &machineidv1pb.BotSpec{
+ Roles: []string{"example"},
+ },
+ },
+ })
+ require.NoError(t, err)
+
+ token, err := types.NewProvisionTokenFromSpec("testxyzzy", time.Time{}, types.ProvisionTokenSpecV2{
+ Roles: types.SystemRoles{types.RoleBot},
+ BotName: bot.Metadata.Name,
+ })
+ require.NoError(t, err)
+ require.NoError(t, client.CreateToken(ctx, token))
+
+ privateKey, publicKey, err := testauthority.New().GenerateKeyPair()
+ require.NoError(t, err)
+ sshPrivateKey, err := ssh.ParseRawPrivateKey(privateKey)
+ require.NoError(t, err)
+ tlsPublicKey, err := tlsca.MarshalPublicKeyFromPrivateKeyPEM(sshPrivateKey)
+ require.NoError(t, err)
+
+ certs, err := join.Register(ctx, join.RegisterParams{
+ Token: token.GetName(),
+ ID: state.IdentityID{
+ Role: types.RoleBot,
+ },
+ AuthServers: []utils.NetAddr{*utils.MustParseAddr(srv.Addr().String())},
+ PublicTLSKey: tlsPublicKey,
+ PublicSSHKey: publicKey,
+ })
+ require.NoError(t, err)
+
+ // The returned certs should have a bot instance ID.
+ cert, err := tlsca.ParseCertificatePEM(certs.TLS)
+ require.NoError(t, err)
+
+ ident, err := tlsca.FromSubject(cert.Subject, cert.NotAfter)
+ require.NoError(t, err)
+
+ require.NotEmpty(t, ident.BotInstanceID)
+
+ // The instance ID should match a bot instance record.
+ botInstance, err := srv.Auth().BotInstance.GetBotInstance(ctx, ident.BotName, ident.BotInstanceID)
+ require.NoError(t, err)
+
+ require.Equal(t, ident.BotName, botInstance.GetSpec().BotName)
+ require.Equal(t, ident.BotInstanceID, botInstance.GetSpec().InstanceId)
+
+ // The initial authentication record should be sane
+ ia := botInstance.GetStatus().InitialAuthentication
+ require.NotNil(t, ia)
+ require.Equal(t, int32(1), ia.Generation)
+ require.Equal(t, string(types.JoinMethodToken), ia.JoinMethod)
+ require.Equal(t, token.GetSafeName(), ia.JoinToken)
+
+ // The latest authentications field should contain the same record (and
+ // only that record.)
+ require.Len(t, botInstance.GetStatus().LatestAuthentications, 1)
+ require.EqualExportedValues(t, ia, botInstance.GetStatus().LatestAuthentications[0])
+
+ // Validate that expected audit events were emitted...
+ auditEvents := mockEmitter.Events()
+ var joinEvent *events.BotJoin
+ for _, event := range auditEvents {
+ evt, ok := event.(*events.BotJoin)
+ if ok {
+ joinEvent = evt
+ break
+ }
+ }
+ require.NotNil(t, joinEvent)
+ require.Empty(t,
+ cmp.Diff(joinEvent, &events.BotJoin{
+ Metadata: events.Metadata{
+ Type: libevents.BotJoinEvent,
+ Code: libevents.BotJoinCode,
+ },
+ Status: events.Status{
+ Success: true,
+ },
+ BotName: "test",
+ Method: string(types.JoinMethodToken),
+ TokenName: token.GetSafeName(),
+ ConnectionMetadata: events.ConnectionMetadata{
+ RemoteAddr: "127.0.0.1",
+ },
+ BotInstanceID: ident.BotInstanceID,
+ },
+ // There appears to be a bug with cmp.Diff and nil event.Struct that
+ // causes a panic so let's just ignore it.
+ cmpopts.IgnoreFields(events.BotJoin{}, "Attributes"),
+ cmpopts.IgnoreFields(events.Metadata{}, "Time"),
+ cmpopts.EquateEmpty(),
+ ),
+ )
+
+ var certIssueEvent *events.CertificateCreate
+ for _, event := range auditEvents {
+ evt, ok := event.(*events.CertificateCreate)
+ if ok {
+ certIssueEvent = evt
+ break
+ }
+ }
+ require.NotNil(t, certIssueEvent)
+ require.Empty(t,
+ cmp.Diff(certIssueEvent, &events.CertificateCreate{
+ Metadata: events.Metadata{
+ Type: libevents.CertificateCreateEvent,
+ Code: libevents.CertificateCreateCode,
+ },
+ CertificateType: "user",
+ Identity: &events.Identity{
+ User: "bot-test",
+ Roles: []string{"bot-test"},
+ RouteToCluster: "localhost",
+ ClientIP: "127.0.0.1",
+ TeleportCluster: "localhost",
+ PrivateKeyPolicy: "none",
+ BotName: "test",
+ BotInstanceID: ident.BotInstanceID,
+ },
+ },
+ cmpopts.IgnoreFields(events.Metadata{}, "Time"),
+ cmpopts.IgnoreFields(events.Identity{}, "Logins", "Expires"),
+ cmpopts.EquateEmpty(),
+ ),
+ )
+}
+
// TestRegisterBotCertificateGenerationStolen simulates a stolen renewable
// certificate where a generation check is expected to fail.
func TestRegisterBotCertificateGenerationStolen(t *testing.T) {
@@ -462,6 +671,490 @@ func TestRegisterBot_RemoteAddr(t *testing.T) {
})
}
+// authClientForCerts is a test helper that creates an auth client for the given certs.
+func authClientForCerts(t *testing.T, ctx context.Context, addr *utils.NetAddr, tlsPrivateKey, sshPublicKey []byte, certs *proto.Certs) *authclient.Client {
+ t.Helper()
+
+ ident, err := identity.ReadIdentityFromStore(&identity.LoadIdentityParams{
+ PrivateKeyBytes: tlsPrivateKey,
+ PublicKeyBytes: sshPublicKey,
+ TokenHashBytes: []byte{},
+ }, certs)
+ require.NoError(t, err)
+
+ facade := identity.NewFacade(false, true, ident)
+
+ tlsConfig, err := facade.TLSConfig()
+ require.NoError(t, err)
+ sshConfig, err := facade.SSHClientConfig()
+ require.NoError(t, err)
+
+ resolver, err := reversetunnelclient.CachingResolver(
+ ctx,
+ reversetunnelclient.WebClientResolver(&webclient.Config{
+ Context: ctx,
+ ProxyAddr: addr.String(),
+ Insecure: true,
+ }),
+ nil /* clock */)
+ require.NoError(t, err)
+
+ dialer, err := reversetunnelclient.NewTunnelAuthDialer(reversetunnelclient.TunnelAuthDialerConfig{
+ Resolver: resolver,
+ ClientConfig: sshConfig,
+ Log: logrus.StandardLogger(),
+ InsecureSkipTLSVerify: true,
+ ClusterCAs: tlsConfig.RootCAs,
+ })
+ require.NoError(t, err)
+
+ authClientConfig := &authclient.Config{
+ TLS: tlsConfig,
+ SSH: sshConfig,
+ AuthServers: []utils.NetAddr{*addr},
+ Log: logrus.StandardLogger(),
+ Insecure: true,
+ ProxyDialer: dialer,
+ DialOpts: []grpc.DialOption{
+ metadata.WithUserAgentFromTeleportComponent(teleport.ComponentTBot),
+ },
+ }
+
+ c, err := authclient.Connect(ctx, authClientConfig)
+ require.NoError(t, err)
+
+ return c
+}
+
+// instanceIDFromCerts parses a TLS identity from the certificates and returns
+// the embedded BotInstanceID and generation, if any.
+func instanceIDFromCerts(t *testing.T, certs *proto.Certs) (string, uint64) {
+ t.Helper()
+
+ cert, err := tlsca.ParseCertificatePEM(certs.TLS)
+ require.NoError(t, err)
+
+ ident, err := tlsca.FromSubject(cert.Subject, cert.NotAfter)
+ require.NoError(t, err)
+
+ return ident.BotInstanceID, ident.Generation
+}
+
+// registerHelper calls `join.Register` with the given token, prefilling params
+// where possible. Overrides may be applied with `fns`.
+func registerHelper(
+ ctx context.Context, token types.ProvisionToken,
+ addr *utils.NetAddr, tlsPublicKey, sshPublicKey []byte,
+ fns ...func(*join.RegisterParams),
+) (*proto.Certs, error) {
+ params := join.RegisterParams{
+ JoinMethod: token.GetJoinMethod(),
+ Token: token.GetName(),
+ ID: state.IdentityID{
+ Role: types.RoleBot,
+ },
+ AuthServers: []utils.NetAddr{*addr},
+ PublicTLSKey: tlsPublicKey,
+ PublicSSHKey: sshPublicKey,
+ KubernetesReadFileFunc: func(name string) ([]byte, error) {
+ return []byte("jwks-matching-service-account"), nil
+ },
+ }
+
+ for _, fn := range fns {
+ fn(¶ms)
+ }
+
+ return join.Register(ctx, params)
+}
+
+// TestRegisterBot_BotInstanceRejoin validates that bot instance IDs are
+// preserved when rejoining with an authenticated auth client.
+func TestRegisterBot_BotInstanceRejoin(t *testing.T) {
+ // Note: we can't enable parallel testing for this due to use of t.Setenv()
+ // for AWS client configuration.
+
+ ctx, cancel := context.WithCancel(context.Background())
+ t.Cleanup(cancel)
+
+ srv := newTestTLSServer(t)
+ a := srv.Auth()
+ addr := utils.MustParseAddr(srv.Addr().String())
+
+ // Configure mock join methods
+ k8sTokenName := "jwks-matching-service-account"
+ k8sReadFileFunc := func(name string) ([]byte, error) {
+ return []byte(k8sTokenName), nil
+ }
+ a.k8sJWKSValidator = func(_ time.Time, _ []byte, _ string, token string) (*kubernetestoken.ValidationResult, error) {
+ if token == k8sTokenName {
+ return &kubernetestoken.ValidationResult{Username: "system:serviceaccount:static-jwks:matching"}, nil
+ }
+
+ return nil, errMockInvalidToken
+ }
+
+ a.httpClientForAWSSTS = &mockClient{
+ respStatusCode: http.StatusOK,
+ respBody: responseFromAWSIdentity(awsIdentity{
+ Account: "1234",
+ Arn: "arn:aws::1111",
+ }),
+ }
+
+ nodeCredentials, err := credentials.NewStaticCredentials("FAKE_ID", "FAKE_KEY", "FAKE_TOKEN").Get()
+ require.NoError(t, err)
+ t.Setenv("AWS_ACCESS_KEY_ID", nodeCredentials.AccessKeyID)
+ t.Setenv("AWS_SECRET_ACCESS_KEY", nodeCredentials.SecretAccessKey)
+ t.Setenv("AWS_SESSION_TOKEN", nodeCredentials.SessionToken)
+ t.Setenv("AWS_REGION", "us-west-2")
+
+ // Create a bot
+ sshPrivateKey, sshPublicKey, err := testauthority.New().GenerateKeyPair()
+ require.NoError(t, err)
+
+ tlsPublicKey, err := PrivateKeyToPublicKeyTLS(sshPrivateKey)
+ require.NoError(t, err)
+
+ roleName := "test-role"
+ _, err = CreateRole(ctx, a, roleName, types.RoleSpecV6{})
+ require.NoError(t, err)
+
+ botName := "bot"
+ _, err = machineidv1.UpsertBot(ctx, a, &machineidv1pb.Bot{
+ Metadata: &headerv1.Metadata{
+ Name: botName,
+ },
+ Spec: &machineidv1pb.BotSpec{
+ Roles: []string{roleName},
+ },
+ }, a.clock.Now(), "")
+ require.NoError(t, err)
+
+ // Create k8s and IAM join tokens
+ k8sToken, err := types.NewProvisionTokenFromSpec("static-jwks", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{
+ JoinMethod: types.JoinMethodKubernetes,
+ Roles: []types.SystemRole{types.RoleBot},
+ BotName: botName,
+ Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{
+ Type: types.KubernetesJoinTypeStaticJWKS,
+ Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{
+ {ServiceAccount: "static-jwks:matching"},
+ },
+ StaticJWKS: &types.ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{
+ JWKS: "fake-jwks",
+ },
+ },
+ })
+ require.NoError(t, err)
+ require.NoError(t, a.CreateToken(ctx, k8sToken))
+
+ awsToken, err := types.NewProvisionTokenFromSpec(
+ "aws-test-token",
+ time.Now().Add(10*time.Minute),
+ types.ProvisionTokenSpecV2{
+ Roles: []types.SystemRole{types.RoleBot},
+ Allow: []*types.TokenRule{
+ {
+ AWSAccount: "1234",
+ AWSARN: "arn:aws::1111",
+ },
+ },
+ BotName: botName,
+ JoinMethod: types.JoinMethodIAM,
+ })
+ require.NoError(t, err)
+ require.NoError(t, a.UpsertToken(ctx, awsToken))
+
+ // Join as a "bot" with both token types.
+ k8sCerts, err := registerHelper(ctx, k8sToken, addr, tlsPublicKey, sshPublicKey, func(p *join.RegisterParams) {
+ p.KubernetesReadFileFunc = k8sReadFileFunc
+ })
+ require.NoError(t, err)
+ initialK8sInstanceID, initialK8sGeneration := instanceIDFromCerts(t, k8sCerts)
+ require.NotEmpty(t, initialK8sInstanceID)
+ require.Equal(t, uint64(1), initialK8sGeneration)
+
+ awsCerts, err := registerHelper(ctx, awsToken, addr, tlsPublicKey, sshPublicKey)
+ require.NoError(t, err)
+ initialAWSInstanceID, initialAWSGeneration := instanceIDFromCerts(t, awsCerts)
+ require.NotEmpty(t, initialAWSInstanceID)
+ require.Equal(t, uint64(1), initialAWSGeneration)
+
+ // They should be issued unique IDs despite being the same bot.
+ require.NotEqual(t, initialK8sInstanceID, initialAWSInstanceID, "instance IDs must not be the same when no client certs are provided")
+
+ // Rejoin using the k8s client and make sure we're issued certs with the
+ // same instance ID.
+ k8sClient := authClientForCerts(t, ctx, addr, sshPrivateKey, sshPublicKey, k8sCerts)
+ rejoinedK8sCerts, err := registerHelper(ctx, k8sToken, addr, tlsPublicKey, sshPublicKey, func(p *join.RegisterParams) {
+ p.KubernetesReadFileFunc = k8sReadFileFunc
+ p.AuthClient = k8sClient
+ })
+ require.NoError(t, err)
+
+ rejoinedK8sID, rejoinedK8sGeneration := instanceIDFromCerts(t, rejoinedK8sCerts)
+ require.Equal(t, initialK8sInstanceID, rejoinedK8sID)
+ require.Equal(t, uint64(2), rejoinedK8sGeneration)
+
+ // Repeat for the AWS client. Note that the AWS client is routed through the
+ // join service, the instance ID must be provided to auth by the proxy as
+ // part of the `RegisterUsingTokenRequest`.
+ iamClient := authClientForCerts(t, ctx, addr, sshPrivateKey, sshPublicKey, awsCerts)
+ rejoinedAWSCerts, err := registerHelper(ctx, awsToken, addr, tlsPublicKey, sshPublicKey, func(p *join.RegisterParams) {
+ p.AuthClient = iamClient
+ })
+ require.NoError(t, err)
+
+ rejoinedAWSID, rejoinedAWSGeneration := instanceIDFromCerts(t, rejoinedAWSCerts)
+ require.Equal(t, initialAWSInstanceID, rejoinedAWSID)
+ require.Equal(t, uint64(2), rejoinedAWSGeneration)
+
+ // Last, try to lie to auth. The k8s value should be overwritten with the
+ // correct instance ID since auth can directly inspect the client identity.
+ // For good measure, we'll include a "legitimate" instance ID from the AWS
+ // bot.
+ certs, err := k8sClient.RegisterUsingToken(ctx, &types.RegisterUsingTokenRequest{
+ Token: k8sToken.GetName(),
+ HostID: "test-bot",
+ IDToken: k8sTokenName,
+ Role: types.RoleBot,
+ PublicSSHKey: sshPublicKey,
+ PublicTLSKey: tlsPublicKey,
+ BotInstanceID: initialAWSInstanceID,
+ })
+ require.NoError(t, err)
+
+ rejoinedK8sID, rejoinedK8sGeneration = instanceIDFromCerts(t, certs)
+ require.Equal(t, initialK8sInstanceID, rejoinedK8sID)
+ require.Equal(t, uint64(3), rejoinedK8sGeneration)
+
+ // Note: Lying via IAM join not tested as that must be routed through the
+ // join service (along with Azure and TPM).
+}
+
+// TestRegisterBotWithInvalidInstanceID ensures that client-specified instance
+// IDs from untrusted sources are ignored and will be issued a new bot instance
+// ID.
+func TestRegisterBotWithInvalidInstanceID(t *testing.T) {
+ t.Parallel()
+
+ ctx, cancel := context.WithCancel(context.Background())
+ t.Cleanup(cancel)
+
+ srv := newTestTLSServer(t)
+ a := srv.Auth()
+
+ botName := "bot"
+ k8sTokenName := "jwks-matching-service-account"
+ a.k8sJWKSValidator = func(_ time.Time, _ []byte, _ string, token string) (*kubernetestoken.ValidationResult, error) {
+ if token == k8sTokenName {
+ return &kubernetestoken.ValidationResult{Username: "system:serviceaccount:static-jwks:matching"}, nil
+ }
+
+ return nil, errMockInvalidToken
+ }
+ token, err := types.NewProvisionTokenFromSpec("static-jwks", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{
+ JoinMethod: types.JoinMethodKubernetes,
+ Roles: []types.SystemRole{types.RoleBot},
+ BotName: botName,
+ Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{
+ Type: types.KubernetesJoinTypeStaticJWKS,
+ Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{
+ {ServiceAccount: "static-jwks:matching"},
+ },
+ StaticJWKS: &types.ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{
+ JWKS: "fake-jwks",
+ },
+ },
+ })
+ require.NoError(t, err)
+ require.NoError(t, a.CreateToken(ctx, token))
+
+ roleName := "test-role"
+ _, err = CreateRole(ctx, a, roleName, types.RoleSpecV6{})
+ require.NoError(t, err)
+
+ _, err = machineidv1.UpsertBot(ctx, a, &machineidv1pb.Bot{
+ Metadata: &headerv1.Metadata{
+ Name: botName,
+ },
+ Spec: &machineidv1pb.BotSpec{
+ Roles: []string{roleName},
+ },
+ }, a.clock.Now(), "")
+ require.NoError(t, err)
+
+ client, err := srv.NewClient(TestAdmin())
+ require.NoError(t, err)
+
+ privateKey, sshPublicKey, err := testauthority.New().GenerateKeyPair()
+ require.NoError(t, err)
+ sshPrivateKey, err := ssh.ParseRawPrivateKey(privateKey)
+ require.NoError(t, err)
+ tlsPublicKey, err := tlsca.MarshalPublicKeyFromPrivateKeyPEM(sshPrivateKey)
+ require.NoError(t, err)
+
+ // Try registering with a proxy client; this is trusted but the invalid
+ // instance ID should be overwritten and a new instance generated.
+ certs, err := srv.Auth().RegisterUsingToken(ctx, &types.RegisterUsingTokenRequest{
+ Token: token.GetName(),
+ HostID: "test-bot",
+ Role: types.RoleBot,
+ PublicSSHKey: sshPublicKey,
+ PublicTLSKey: tlsPublicKey,
+ IDToken: k8sTokenName,
+ BotInstanceID: "foo",
+ })
+
+ // Should not generate any errors, especially some variety of "instance not
+ // found" which might indicate improper behavior when encountering a
+ // nonexistent token.
+ require.NoError(t, err)
+
+ // Should not issue certs with an obviously invalid instance ID, or no ID.
+ id, generation := instanceIDFromCerts(t, certs)
+ require.NotEmpty(t, id)
+ require.NotEqual(t, "foo", id)
+ require.Equal(t, uint64(1), generation)
+
+ // Try registering with a non-proxy client; this is untrusted and the
+ // client-provided ID should be discarded.
+ certs, err = client.RegisterUsingToken(ctx, &types.RegisterUsingTokenRequest{
+ Token: token.GetName(),
+ HostID: "test-bot",
+ Role: types.RoleBot,
+ PublicSSHKey: sshPublicKey,
+ PublicTLSKey: tlsPublicKey,
+ IDToken: k8sTokenName,
+ BotInstanceID: "foo",
+ })
+
+ // As above, should not generate any errors, and a new ID should be
+ // generated.
+ require.NoError(t, err)
+
+ id, generation = instanceIDFromCerts(t, certs)
+ require.NotEmpty(t, id)
+ require.NotEqual(t, "foo", id)
+ require.Equal(t, uint64(1), generation)
+}
+
+func TestRegisterBotMultipleTokens(t *testing.T) {
+ t.Parallel()
+
+ ctx, cancel := context.WithCancel(context.Background())
+ t.Cleanup(cancel)
+
+ srv := newTestTLSServer(t)
+
+ // Initial setup, create a bot and join token.
+ client, err := srv.NewClient(TestAdmin())
+ require.NoError(t, err)
+ bot, err := client.BotServiceClient().CreateBot(ctx, &machineidv1pb.CreateBotRequest{
+ Bot: &machineidv1pb.Bot{
+ Metadata: &headerv1.Metadata{
+ Name: "test",
+ },
+ Spec: &machineidv1pb.BotSpec{
+ Roles: []string{"example"},
+ },
+ },
+ })
+ require.NoError(t, err)
+
+ tokenA, err := types.NewProvisionTokenFromSpec("a", time.Time{}, types.ProvisionTokenSpecV2{
+ Roles: types.SystemRoles{types.RoleBot},
+ BotName: bot.Metadata.Name,
+ })
+ require.NoError(t, err)
+ require.NoError(t, client.CreateToken(ctx, tokenA))
+
+ tokenB, err := types.NewProvisionTokenFromSpec("b", time.Time{}, types.ProvisionTokenSpecV2{
+ Roles: types.SystemRoles{types.RoleBot},
+ BotName: bot.Metadata.Name,
+ })
+ require.NoError(t, err)
+ require.NoError(t, client.CreateToken(ctx, tokenB))
+
+ privateKey, publicKey, err := testauthority.New().GenerateKeyPair()
+ require.NoError(t, err)
+ sshPrivateKey, err := ssh.ParseRawPrivateKey(privateKey)
+ require.NoError(t, err)
+ tlsPublicKey, err := tlsca.MarshalPublicKeyFromPrivateKeyPEM(sshPrivateKey)
+ require.NoError(t, err)
+
+ certsA, err := join.Register(ctx, join.RegisterParams{
+ Token: tokenA.GetName(),
+ ID: state.IdentityID{
+ Role: types.RoleBot,
+ },
+ AuthServers: []utils.NetAddr{*utils.MustParseAddr(srv.Addr().String())},
+ PublicTLSKey: tlsPublicKey,
+ PublicSSHKey: publicKey,
+ })
+ require.NoError(t, err)
+
+ initialInstanceA, _ := instanceIDFromCerts(t, certsA)
+ require.NotEmpty(t, initialInstanceA)
+
+ tlsA, err := tls.X509KeyPair(certsA.TLS, privateKey)
+ require.NoError(t, err)
+
+ certsB, err := join.Register(ctx, join.RegisterParams{
+ Token: tokenB.GetName(),
+ ID: state.IdentityID{
+ Role: types.RoleBot,
+ },
+ AuthServers: []utils.NetAddr{*utils.MustParseAddr(srv.Addr().String())},
+ PublicTLSKey: tlsPublicKey,
+ PublicSSHKey: publicKey,
+ })
+ require.NoError(t, err)
+
+ initialInstanceB, _ := instanceIDFromCerts(t, certsB)
+ require.NotEmpty(t, initialInstanceB)
+
+ require.NotEqual(t, initialInstanceA, initialInstanceB)
+
+ tlsB, err := tls.X509KeyPair(certsB.TLS, privateKey)
+ require.NoError(t, err)
+
+ for i := 0; i < 6; i++ {
+ _, certsA, tlsA, err = renewBotCerts(ctx, srv, tlsA, bot.Status.UserName, publicKey, privateKey)
+ require.NoError(t, err)
+
+ instanceA, generationA := instanceIDFromCerts(t, certsA)
+ require.Equal(t, initialInstanceA, instanceA)
+ require.Equal(t, uint64(i+2), generationA)
+
+ // Only renew bot B 3x.
+ if i < 3 {
+ _, certsB, tlsB, err = renewBotCerts(ctx, srv, tlsB, bot.Status.UserName, publicKey, privateKey)
+ require.NoError(t, err)
+
+ instanceB, generationB := instanceIDFromCerts(t, certsB)
+ require.Equal(t, initialInstanceB, instanceB)
+ require.Equal(t, uint64(i+2), generationB)
+ }
+ }
+
+ // Renew B again. This will be the final renewal, but the legacy generation
+ // counter on the user will be greater as it should have been incremented by
+ // bot A.
+ _, certsB, _, err = renewBotCerts(ctx, srv, tlsB, bot.Status.UserName, publicKey, privateKey)
+ require.NoError(t, err)
+
+ instanceB, generationB := instanceIDFromCerts(t, certsB)
+ require.Equal(t, initialInstanceB, instanceB)
+ require.Equal(t, uint64(5), generationB)
+
+ botUser, err := client.GetUser(ctx, bot.Status.UserName, false)
+ require.NoError(t, err)
+ genStr := botUser.BotGenerationLabel()
+ require.Equal(t, "7", genStr)
+}
+
func checkCertLoginIP(t *testing.T, certBytes []byte, loginIP string) {
t.Helper()
diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go
index 69da074a9b6c4..987095ee8610a 100644
--- a/lib/auth/grpcserver.go
+++ b/lib/auth/grpcserver.go
@@ -5787,6 +5787,16 @@ func NewGRPCServer(cfg GRPCServerConfig) (*GRPCServer, error) {
}
machineidv1pb.RegisterBotServiceServer(server, botService)
+ botInstanceService, err := machineidv1.NewBotInstanceService(machineidv1.BotInstanceServiceConfig{
+ Authorizer: cfg.Authorizer,
+ Backend: cfg.AuthServer.Services.BotInstance,
+ Clock: cfg.AuthServer.GetClock(),
+ })
+ if err != nil {
+ return nil, trace.Wrap(err, "creating bot instance service")
+ }
+ machineidv1pb.RegisterBotInstanceServiceServer(server, botInstanceService)
+
dbObjectImportRuleService, err := dbobjectimportrulev1.NewDatabaseObjectImportRuleService(dbobjectimportrulev1.DatabaseObjectImportRuleServiceConfig{
Authorizer: cfg.Authorizer,
Backend: cfg.AuthServer.Services,
diff --git a/lib/auth/init.go b/lib/auth/init.go
index 1577fce2f4cde..8e5d00de6e3cc 100644
--- a/lib/auth/init.go
+++ b/lib/auth/init.go
@@ -312,6 +312,9 @@ type InitConfig struct {
// Notifications is a service that manages notifications.
Notifications services.Notifications
+
+ // BotInstance is a service that manages Machine ID bot instances
+ BotInstance services.BotInstance
}
// Init instantiates and configures an instance of AuthServer
diff --git a/lib/auth/join.go b/lib/auth/join.go
index 53572c677b056..9aecba74ad90b 100644
--- a/lib/auth/join.go
+++ b/lib/auth/join.go
@@ -30,8 +30,11 @@ import (
"github.com/gravitational/trace"
"github.com/sirupsen/logrus"
"google.golang.org/grpc/peer"
+ "google.golang.org/protobuf/types/known/structpb"
+ "google.golang.org/protobuf/types/known/timestamppb"
"github.com/gravitational/teleport/api/client/proto"
+ machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/types"
apievents "github.com/gravitational/teleport/api/types/events"
"github.com/gravitational/teleport/lib/auth/machineid/machineidv1"
@@ -346,24 +349,7 @@ func (a *Server) generateCertsBot(
expires = *req.Expires
}
- certs, err := a.generateInitialBotCerts(
- ctx, botName, machineidv1.BotResourceName(botName), req.RemoteAddr, req.PublicSSHKey, expires, renewable,
- )
- if err != nil {
- return nil, trace.Wrap(err)
- }
-
- if shouldDeleteToken {
- // delete ephemeral bot join tokens so they can't be re-used
- if err := a.DeleteToken(ctx, provisionToken.GetName()); err != nil {
- log.WithError(err).Warnf("Could not delete bot provision token %q after generating certs",
- provisionToken.GetSafeName(),
- )
- }
- }
-
- // Emit audit event for bot join.
- log.Infof("Bot %q has joined the cluster.", botName)
+ // Construct a Join event to be sent later.
joinEvent := &apievents.BotJoin{
Metadata: apievents.Metadata{
Type: events.BotJoinEvent,
@@ -379,6 +365,24 @@ func (a *Server) generateCertsBot(
RemoteAddr: req.RemoteAddr,
},
}
+
+ // req.PublicSSHKey is in SSH Authorized Keys format. For consistency, we
+ // only store public keys in PEM wrapped PKIX, DER format within
+ // BotInstances.
+ pkixPEM, err := sshPublicKeyToPKIXPEM(req.PublicSSHKey)
+ if err != nil {
+ return nil, trace.Wrap(err, "converting key")
+ }
+ auth := &machineidv1pb.BotInstanceStatusAuthentication{
+ AuthenticatedAt: timestamppb.New(a.GetClock().Now()),
+ // TODO: GetSafeName may not return an appropriate value for later
+ // comparison / locking purposes, and this also shouldn't contain
+ // secrets. Should we hash it?
+ JoinToken: provisionToken.GetSafeName(),
+ JoinMethod: string(provisionToken.GetJoinMethod()),
+ PublicKey: pkixPEM,
+ }
+
if joinAttributeSrc != nil {
attributes, err := joinAttributeSrc.JoinAuditAttributes()
if err != nil {
@@ -388,7 +392,34 @@ func (a *Server) generateCertsBot(
if err != nil {
log.WithError(err).Warn("Unable to encode join attributes for audit event.")
}
+
+ auth.Metadata, err = structpb.NewStruct(attributes)
+ if err != nil {
+ log.WithError(err).Warn("Unable to encode struct value for join metadata.")
+ }
+ }
+
+ certs, botInstanceID, err := a.generateInitialBotCerts(
+ ctx, botName, machineidv1.BotResourceName(botName), req.RemoteAddr, req.PublicSSHKey, expires, renewable, auth,
+ req.BotInstanceID,
+ req.BotGeneration,
+ )
+ if err != nil {
+ return nil, trace.Wrap(err)
}
+ joinEvent.BotInstanceID = botInstanceID
+
+ if shouldDeleteToken {
+ // delete ephemeral bot join tokens so they can't be re-used
+ if err := a.DeleteToken(ctx, provisionToken.GetName()); err != nil {
+ log.WithError(err).Warnf("Could not delete bot provision token %q after generating certs",
+ provisionToken.GetSafeName(),
+ )
+ }
+ }
+
+ // Emit audit event for bot join.
+ log.Infof("Bot %q (instance: %s) has joined the cluster.", botName, botInstanceID)
if err := a.emitter.EmitAuditEvent(ctx, joinEvent); err != nil {
log.WithError(err).Warn("Failed to emit bot join event.")
}
diff --git a/lib/auth/join/join.go b/lib/auth/join/join.go
index 367b091612ac5..0415f5356be98 100644
--- a/lib/auth/join/join.go
+++ b/lib/auth/join/join.go
@@ -82,8 +82,10 @@ type RegisterParams struct {
// ID is identity ID
ID state.IdentityID
// AuthServers is a list of auth servers to dial
+ // Ignored if AuthClient is provided.
AuthServers []utils.NetAddr
// ProxyServer is a proxy server to dial
+ // Ignored if AuthClient is provided.
ProxyServer utils.NetAddr
// AdditionalPrincipals is a list of additional principals to dial
AdditionalPrincipals []string
@@ -94,12 +96,16 @@ type RegisterParams struct {
// PublicSSHKey is a server's public SSH key to sign
PublicSSHKey []byte
// CipherSuites is a list of cipher suites to use for TLS client connection
+ // Ignored if AuthClient is provided.
CipherSuites []uint16
// CAPins are the SKPI hashes of the CAs used to verify the Auth Server.
+ // Ignored if AuthClient is provided.
CAPins []string
// CAPath is the path to the CA file.
+ // Ignored if AuthClient is provided.
CAPath string
// GetHostCredentials is a client that can fetch host credentials.
+ // Ignored if AuthClient is provided.
GetHostCredentials HostCredentials
// Clock specifies the time provider. Will be used to override the time anchor
// for TLS certificate verification.
@@ -113,8 +119,10 @@ type RegisterParams struct {
// AzureParams is the parameters specific to the azure join method.
AzureParams AzureParams
// CircuitBreakerConfig defines how the circuit breaker should behave.
+ // Ignored if AuthClient is provided.
CircuitBreakerConfig breaker.Config
// FIPS means FedRAMP/FIPS 140-2 compliant configuration was requested.
+ // Ignored if AuthClient is provided.
FIPS bool
// IDToken is a token retrieved from a workload identity provider for
// certain join types e.g GitHub, Google.
@@ -124,7 +132,16 @@ type RegisterParams struct {
// It should not be specified for non-bot registrations.
Expires *time.Time
// Insecure trusts the certificates from the Auth Server or Proxy during registration without verification.
+ // Ignored if AuthClient is provided.
Insecure bool
+ // AuthClient allows an existing client with a connection to the auth
+ // server to be used for the registration process. If specified, then the
+ // Register method will not attempt to dial, and many other parameters
+ // may be ignored.
+ AuthClient AuthJoinClient
+ // KubernetesReadFileFunc is a function used to read the Kubernetes token
+ // from disk. Used in tests, and set to `os.ReadFile` if unset.
+ KubernetesReadFileFunc func(name string) ([]byte, error)
}
func (r *RegisterParams) checkAndSetDefaults() error {
@@ -132,6 +149,10 @@ func (r *RegisterParams) checkAndSetDefaults() error {
r.Clock = clockwork.NewRealClock()
}
+ if r.KubernetesReadFileFunc == nil {
+ r.KubernetesReadFileFunc = os.ReadFile
+ }
+
if err := r.verifyAuthOrProxyAddress(); err != nil {
return trace.BadParameter("no auth or proxy servers set")
}
@@ -140,6 +161,11 @@ func (r *RegisterParams) checkAndSetDefaults() error {
}
func (r *RegisterParams) verifyAuthOrProxyAddress() error {
+ // If AuthClient is provided we do not need addresses to dial with.
+ if r.AuthClient != nil {
+ return nil
+ }
+
haveAuthServers := len(r.AuthServers) > 0
haveProxyServer := !r.ProxyServer.IsEmpty()
@@ -202,7 +228,7 @@ func Register(ctx context.Context, params RegisterParams) (certs *proto.Certs, e
return nil, trace.Wrap(err)
}
case types.JoinMethodKubernetes:
- params.IDToken, err = kubernetestoken.GetIDToken(os.Getenv, os.ReadFile)
+ params.IDToken, err = kubernetestoken.GetIDToken(os.Getenv, params.KubernetesReadFileFunc)
if err != nil {
return nil, trace.Wrap(err)
}
@@ -218,6 +244,19 @@ func Register(ctx context.Context, params RegisterParams) (certs *proto.Certs, e
}
}
+ // If an explicit AuthClient has been provided, we want to go straight to
+ // using that rather than trying both proxy and auth dialing.
+ if params.AuthClient != nil {
+ log.Info("Attempting registration with existing auth client.")
+ certs, err := registerThroughAuthClient(ctx, token, params, params.AuthClient)
+ if err != nil {
+ log.WithError(err).Error("Registration with existing auth client failed.")
+ return nil, trace.Wrap(err)
+ }
+ log.Info("Successfully registered with existing auth client.")
+ return certs, nil
+ }
+
type registerMethod struct {
call func(ctx context.Context, token string, params RegisterParams) (*proto.Certs, error)
desc string
@@ -371,6 +410,26 @@ func registerThroughAuth(
}
defer client.Close()
+ certs, err = registerThroughAuthClient(ctx, token, params, client)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ return certs, nil
+}
+
+// AuthJoinClient is a client that allows access to the Auth Servers join
+// service and RegisterUsingToken method for the purposes of joining.
+type AuthJoinClient interface {
+ joinServiceClient
+ RegisterUsingToken(ctx context.Context, req *types.RegisterUsingTokenRequest) (*proto.Certs, error)
+}
+
+func registerThroughAuthClient(
+ ctx context.Context,
+ token string,
+ params RegisterParams,
+ client AuthJoinClient,
+) (certs *proto.Certs, err error) {
switch params.JoinMethod {
// IAM and Azure methods use unique gRPC endpoints
case types.JoinMethodIAM:
diff --git a/lib/auth/join/join_test.go b/lib/auth/join/join_test.go
index c0f29758de2ea..bf05e63c46c2e 100644
--- a/lib/auth/join/join_test.go
+++ b/lib/auth/join/join_test.go
@@ -24,11 +24,14 @@ import (
"testing"
"time"
+ "github.com/google/go-cmp/cmp"
"github.com/gravitational/trace"
"github.com/jonboulle/clockwork"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/crypto/ssh"
+ "github.com/gravitational/teleport/api/client/proto"
headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/types"
@@ -319,3 +322,48 @@ func TestVerifyALPNUpgradedConn(t *testing.T) {
})
}
}
+
+type authJoinClientMock struct {
+ AuthJoinClient
+ registerUsingToken func(ctx context.Context, req *types.RegisterUsingTokenRequest) (*proto.Certs, error)
+}
+
+func (a *authJoinClientMock) RegisterUsingToken(ctx context.Context, req *types.RegisterUsingTokenRequest) (*proto.Certs, error) {
+ return a.registerUsingToken(ctx, req)
+}
+
+// TestRegisterWithAuthClient is a unit test to validate joining using a
+// auth client supplied via RegisterParams
+func TestRegisterWithAuthClient(t *testing.T) {
+ ctx := context.Background()
+ expectedCerts := &proto.Certs{
+ SSH: []byte("ssh-cert"),
+ }
+ expectedToken := "test-token"
+ expectedRole := types.RoleBot
+ called := false
+ m := &authJoinClientMock{
+ registerUsingToken: func(ctx context.Context, req *types.RegisterUsingTokenRequest) (*proto.Certs, error) {
+ assert.Empty(t, cmp.Diff(
+ req,
+ &types.RegisterUsingTokenRequest{
+ Token: expectedToken,
+ Role: expectedRole,
+ },
+ ))
+ called = true
+ return expectedCerts, nil
+ },
+ }
+
+ gotCerts, gotErr := Register(ctx, RegisterParams{
+ Token: expectedToken,
+ ID: state.IdentityID{
+ Role: expectedRole,
+ },
+ AuthClient: m,
+ })
+ require.NoError(t, gotErr)
+ assert.True(t, called)
+ assert.Equal(t, expectedCerts, gotCerts)
+}
diff --git a/lib/auth/keygen/keygen.go b/lib/auth/keygen/keygen.go
index 2d432b6a89170..5aef3d45e9fcf 100644
--- a/lib/auth/keygen/keygen.go
+++ b/lib/auth/keygen/keygen.go
@@ -209,6 +209,9 @@ func (k *Keygen) GenerateUserCertWithoutValidation(c services.UserCertParams) ([
if c.BotName != "" {
cert.Permissions.Extensions[teleport.CertExtensionBotName] = c.BotName
}
+ if c.BotInstanceID != "" {
+ cert.Permissions.Extensions[teleport.CertExtensionBotInstanceID] = c.BotInstanceID
+ }
if c.AllowedResourceIDs != "" {
cert.Permissions.Extensions[teleport.CertExtensionAllowedResources] = c.AllowedResourceIDs
}
diff --git a/lib/auth/machineid/machineidv1/bot_instance_service.go b/lib/auth/machineid/machineidv1/bot_instance_service.go
new file mode 100644
index 0000000000000..025c5b0e64827
--- /dev/null
+++ b/lib/auth/machineid/machineidv1/bot_instance_service.go
@@ -0,0 +1,208 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package machineidv1
+
+import (
+ "context"
+ "log/slog"
+ "time"
+
+ "github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+ "google.golang.org/protobuf/types/known/emptypb"
+
+ "github.com/gravitational/teleport"
+ pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/lib/authz"
+ "github.com/gravitational/teleport/lib/services"
+ logutils "github.com/gravitational/teleport/lib/utils/log"
+)
+
+const (
+ // AuthenticationHistoryLimit is the maximum number of authentication
+ // records to be recorded in a bot instance's .Status.LatestAuthentications
+ // field.
+ AuthenticationHistoryLimit = 10
+ heartbeatHistoryLimit = 10
+
+ // ExpiryMargin is the duration added to bot instance expiration times to
+ // ensure the instance remains accessible until shortly after the last
+ // issued certificate expires.
+ ExpiryMargin = time.Minute * 5
+)
+
+// BotInstanceServiceConfig holds configuration options for the BotInstance gRPC
+// service.
+type BotInstanceServiceConfig struct {
+ Authorizer authz.Authorizer
+ Backend services.BotInstance
+ Logger *slog.Logger
+ Clock clockwork.Clock
+}
+
+// NewBotInstanceService returns a new instance of the BotInstanceService.
+func NewBotInstanceService(cfg BotInstanceServiceConfig) (*BotInstanceService, error) {
+ switch {
+ case cfg.Backend == nil:
+ return nil, trace.BadParameter("backend service is required")
+ case cfg.Authorizer == nil:
+ return nil, trace.BadParameter("authorizer is required")
+ }
+
+ if cfg.Logger == nil {
+ cfg.Logger = slog.With(teleport.ComponentKey, "bot_instance.service")
+ }
+ if cfg.Clock == nil {
+ cfg.Clock = clockwork.NewRealClock()
+ }
+
+ return &BotInstanceService{
+ logger: cfg.Logger,
+ authorizer: cfg.Authorizer,
+ backend: cfg.Backend,
+ clock: cfg.Clock,
+ }, nil
+}
+
+// BotInstanceService implements the teleport.machineid.v1.BotInstanceService RPC service.
+type BotInstanceService struct {
+ pb.UnimplementedBotInstanceServiceServer
+
+ backend services.BotInstance
+ authorizer authz.Authorizer
+ logger *slog.Logger
+ clock clockwork.Clock
+}
+
+// DeleteBotInstance deletes a bot specific bot instance
+func (b *BotInstanceService) DeleteBotInstance(ctx context.Context, req *pb.DeleteBotInstanceRequest) (*emptypb.Empty, error) {
+ authCtx, err := b.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := authCtx.CheckAccessToKind(types.KindBotInstance, types.VerbDelete); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := authCtx.AuthorizeAdminAction(); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := b.backend.DeleteBotInstance(ctx, req.BotName, req.InstanceId); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return &emptypb.Empty{}, nil
+}
+
+// GetBotInstance retrieves a specific bot instance
+func (b *BotInstanceService) GetBotInstance(ctx context.Context, req *pb.GetBotInstanceRequest) (*pb.BotInstance, error) {
+ authCtx, err := b.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := authCtx.CheckAccessToKind(types.KindBotInstance, types.VerbRead); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ res, err := b.backend.GetBotInstance(ctx, req.BotName, req.InstanceId)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return res, nil
+}
+
+// ListBotInstances returns a list of bot instances matching the criteria in the request
+func (b *BotInstanceService) ListBotInstances(ctx context.Context, req *pb.ListBotInstancesRequest) (*pb.ListBotInstancesResponse, error) {
+ authCtx, err := b.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := authCtx.CheckAccessToKind(types.KindBotInstance, types.VerbRead, types.VerbList); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ res, nextToken, err := b.backend.ListBotInstances(ctx, req.FilterBotName, int(req.PageSize), req.PageToken)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return &pb.ListBotInstancesResponse{
+ BotInstances: res,
+ NextPageToken: nextToken,
+ }, nil
+}
+
+// SubmitHeartbeat records heartbeat information for a bot
+func (b *BotInstanceService) SubmitHeartbeat(ctx context.Context, req *pb.SubmitHeartbeatRequest) (*pb.SubmitHeartbeatResponse, error) {
+ authCtx, err := b.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if req.Heartbeat == nil {
+ return nil, trace.BadParameter("heartbeat: must be non-nil")
+ }
+
+ // Enforce that the connecting client is a bot and has a bot instance ID.
+ botName := authCtx.Identity.GetIdentity().BotName
+ botInstanceID := authCtx.Identity.GetIdentity().BotInstanceID
+ switch {
+ case botName == "":
+ return nil, trace.AccessDenied("identity did not contain bot name")
+ case botInstanceID == "":
+ return nil, trace.AccessDenied("identity did not contain bot instance ID")
+ }
+
+ b.logger.DebugContext(
+ ctx,
+ "Received bot instance heartbeat",
+ "bot_name", botName,
+ "bot_instance", botInstanceID,
+ "heartbeat", logutils.StringerAttr(req.Heartbeat),
+ )
+ _, err = b.backend.PatchBotInstance(ctx, botName, botInstanceID, func(instance *pb.BotInstance) (*pb.BotInstance, error) {
+ if instance.Status == nil {
+ instance.Status = &pb.BotInstanceStatus{}
+ }
+ // Set initial heartbeat if not set.
+ if instance.Status.InitialHeartbeat == nil {
+ instance.Status.InitialHeartbeat = req.Heartbeat
+ }
+ // If we're at or above the limit, remove enough of the front
+ // elements to make room for the new one at the end.
+ if len(instance.Status.LatestHeartbeats) >= heartbeatHistoryLimit {
+ toRemove := len(instance.Status.LatestHeartbeats) - heartbeatHistoryLimit + 1
+ instance.Status.LatestHeartbeats = instance.Status.LatestHeartbeats[toRemove:]
+ }
+ // Append the new heartbeat to the end.
+ instance.Status.LatestHeartbeats = append(instance.Status.LatestHeartbeats, req.Heartbeat)
+
+ return instance, nil
+ })
+ if err != nil {
+ return nil, trace.Wrap(err, "patching bot instance")
+ }
+
+ return &pb.SubmitHeartbeatResponse{}, nil
+}
diff --git a/lib/auth/machineid/machineidv1/bot_instance_service_test.go b/lib/auth/machineid/machineidv1/bot_instance_service_test.go
new file mode 100644
index 0000000000000..69dc11f54a620
--- /dev/null
+++ b/lib/auth/machineid/machineidv1/bot_instance_service_test.go
@@ -0,0 +1,586 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package machineidv1
+
+import (
+ "context"
+ "fmt"
+ "slices"
+ "strconv"
+ "testing"
+
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/uuid"
+ "github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "google.golang.org/protobuf/testing/protocmp"
+
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/lib/authz"
+ "github.com/gravitational/teleport/lib/backend/memory"
+ "github.com/gravitational/teleport/lib/services"
+ "github.com/gravitational/teleport/lib/services/local"
+ "github.com/gravitational/teleport/lib/tlsca"
+ "github.com/gravitational/teleport/lib/utils"
+)
+
+// TestBotInstanceServiceAccess ensures RBAC an admin state rules are applied properly
+func TestBotInstanceServiceAccess(t *testing.T) {
+ t.Parallel()
+
+ tests := []struct {
+ name string
+ allowedVerbs []string
+ allowedStates []authz.AdminActionAuthState
+ skip bool
+ }{
+ {
+ name: "GetBotInstance",
+ allowedStates: []authz.AdminActionAuthState{
+ authz.AdminActionAuthUnauthorized, authz.AdminActionAuthNotRequired,
+ authz.AdminActionAuthMFAVerified, authz.AdminActionAuthMFAVerifiedWithReuse,
+ },
+ allowedVerbs: []string{types.VerbRead},
+ },
+ {
+ name: "ListBotInstances",
+ allowedStates: []authz.AdminActionAuthState{
+ authz.AdminActionAuthUnauthorized, authz.AdminActionAuthNotRequired,
+ authz.AdminActionAuthMFAVerified, authz.AdminActionAuthMFAVerifiedWithReuse,
+ },
+ allowedVerbs: []string{types.VerbRead, types.VerbList},
+ },
+ {
+ name: "DeleteBotInstance",
+ allowedStates: []authz.AdminActionAuthState{authz.AdminActionAuthNotRequired, authz.AdminActionAuthMFAVerified},
+ allowedVerbs: []string{types.VerbDelete},
+ },
+ {
+ name: "SubmitHeartbeat",
+
+ // SubmitHeartbeat has its own authz and does not follow normal RBAC rules
+ skip: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ // test the method with allowed admin states, each one separately.
+ t.Run("allowed admin states", func(t *testing.T) {
+ for _, state := range tt.allowedStates {
+ t.Run(stateToString(state), func(t *testing.T) {
+ for _, verbs := range utils.Combinations(tt.allowedVerbs) {
+ t.Run(fmt.Sprintf("verbs=%v", verbs), func(t *testing.T) {
+ backend := newBotInstanceBackend(t)
+ service := newBotInstanceService(t, backend, state, fakeChecker{allowedVerbs: verbs})
+ err := callMethod(t, service, tt.name)
+
+ // expect access denied except with full set of verbs.
+ if len(verbs) == len(tt.allowedVerbs) {
+ require.False(t, trace.IsAccessDenied(err))
+ } else {
+ require.True(t, trace.IsAccessDenied(err), "expected access denied for verbs %v, got err=%v", verbs, err)
+ }
+ })
+ }
+ })
+ }
+ })
+
+ // test the method with disallowed admin states; expect failures.
+ t.Run("disallowed admin states", func(t *testing.T) {
+ if tt.skip {
+ t.Skipf("method %+v is excluded from tests", tt.name)
+ }
+
+ disallowedStates := otherAdminStates(tt.allowedStates)
+ for _, state := range disallowedStates {
+ t.Run(stateToString(state), func(t *testing.T) {
+ // it is enough to test against tt.allowedVerbs,
+ // this is the only different data point compared to the test cases above.
+ backend := newBotInstanceBackend(t)
+ service := newBotInstanceService(t, backend, state, fakeChecker{allowedVerbs: tt.allowedVerbs})
+ err := callMethod(t, service, tt.name)
+ require.True(t, trace.IsAccessDenied(err))
+ })
+ }
+ })
+ })
+ }
+
+ // verify that all declared methods have matching test cases
+ t.Run("verify coverage", func(t *testing.T) {
+ for _, method := range machineidv1.BotInstanceService_ServiceDesc.Methods {
+ t.Run(method.MethodName, func(t *testing.T) {
+ match := false
+ for _, testCase := range tests {
+ match = match || testCase.name == method.MethodName
+ }
+ require.True(t, match, "method %v without coverage, no matching tests", method.MethodName)
+ })
+ }
+ })
+}
+
+// TestBotInstanceServiceReadDelete tests read and delete functionality exposed
+// by the BotInstanceService.
+func TestBotInstanceServiceReadDelete(t *testing.T) {
+ t.Parallel()
+
+ ctx := context.Background()
+
+ backend := newBotInstanceBackend(t)
+ idsFoo := createInstances(t, ctx, backend, "foo", 3)
+ idsBar := createInstances(t, ctx, backend, "bar", 3)
+
+ idsAll := map[string]struct{}{}
+ for i := range idsFoo {
+ idsAll[i] = struct{}{}
+ }
+ for i := range idsBar {
+ idsAll[i] = struct{}{}
+ }
+
+ // Make a service with all useful permissions that doesn't require admin auth
+ checker := fakeChecker{allowedVerbs: []string{types.VerbRead, types.VerbList, types.VerbDelete}}
+ service := newBotInstanceService(t, backend, authz.AdminActionAuthNotRequired, checker)
+
+ // Make sure we can get all foo instances
+ for id := range idsFoo {
+ ins, err := service.GetBotInstance(ctx, &machineidv1.GetBotInstanceRequest{
+ BotName: "foo",
+ InstanceId: id,
+ })
+ require.NoError(t, err)
+
+ require.Equal(t, "foo", ins.Spec.BotName)
+ require.Equal(t, id, ins.Spec.InstanceId)
+ }
+
+ // Make sure we can get all bar instances
+ for id := range idsBar {
+ ins, err := service.GetBotInstance(ctx, &machineidv1.GetBotInstanceRequest{
+ BotName: "bar",
+ InstanceId: id,
+ })
+ require.NoError(t, err)
+
+ require.Equal(t, "bar", ins.Spec.BotName)
+ require.Equal(t, id, ins.Spec.InstanceId)
+ }
+
+ // List should work
+ fooInstances := listInstances(t, ctx, service, "foo")
+ require.Len(t, fooInstances, 3)
+ for _, bi := range fooInstances {
+ require.Contains(t, idsFoo, bi.Spec.InstanceId)
+ }
+
+ barInstances := listInstances(t, ctx, service, "bar")
+ require.Len(t, barInstances, 3)
+ for _, bi := range barInstances {
+ require.Contains(t, idsBar, bi.Spec.InstanceId)
+ }
+
+ allInstances := listInstances(t, ctx, service, "")
+ require.Len(t, allInstances, 6)
+ for _, bi := range allInstances {
+ require.Contains(t, idsAll, bi.Spec.InstanceId)
+ }
+
+ // Attempt to delete everything
+ for id := range idsFoo {
+ _, err := service.DeleteBotInstance(ctx, &machineidv1.DeleteBotInstanceRequest{
+ BotName: "foo",
+ InstanceId: id,
+ })
+ require.NoError(t, err)
+ }
+
+ for id := range idsBar {
+ _, err := service.DeleteBotInstance(ctx, &machineidv1.DeleteBotInstanceRequest{
+ BotName: "bar",
+ InstanceId: id,
+ })
+ require.NoError(t, err)
+ }
+
+ allInstances = listInstances(t, ctx, service, "")
+ require.Empty(t, allInstances)
+}
+
+type identityGetterFn func() tlsca.Identity
+
+func (f identityGetterFn) GetIdentity() tlsca.Identity {
+ return f()
+}
+
+func TestBotInstanceServiceSubmitHeartbeat(t *testing.T) {
+ t.Parallel()
+ ctx := context.Background()
+
+ const botName = "test-bot"
+ const botInstanceID = "123-456"
+
+ goodIdentity := tlsca.Identity{
+ BotName: botName,
+ BotInstanceID: botInstanceID,
+ }
+
+ tests := []struct {
+ name string
+ identity tlsca.Identity
+ req *machineidv1.SubmitHeartbeatRequest
+ createBotInstance bool
+ assertErr assert.ErrorAssertionFunc
+ wantHeartbeat bool
+ }{
+ {
+ name: "success",
+ createBotInstance: true,
+ req: &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: "llama",
+ },
+ },
+ identity: goodIdentity,
+ assertErr: assert.NoError,
+ wantHeartbeat: true,
+ },
+ {
+ name: "missing bot name",
+ createBotInstance: true,
+ req: &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: "llama",
+ },
+ },
+ identity: tlsca.Identity{
+ BotInstanceID: botInstanceID,
+ },
+ assertErr: func(t assert.TestingT, err error, i ...interface{}) bool {
+ return assert.True(t, trace.IsAccessDenied(err)) && assert.Contains(t, err.Error(), "identity did not contain bot name")
+ },
+ wantHeartbeat: false,
+ },
+ {
+ name: "missing instance id",
+ createBotInstance: true,
+ req: &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: "llama",
+ },
+ },
+ identity: tlsca.Identity{
+ BotName: botName,
+ },
+ assertErr: func(t assert.TestingT, err error, i ...interface{}) bool {
+ return assert.True(t, trace.IsAccessDenied(err)) && assert.Contains(t, err.Error(), "identity did not contain bot instance")
+ },
+ wantHeartbeat: false,
+ },
+ {
+ name: "bot instance does not exist",
+ createBotInstance: false,
+ req: &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: "llama",
+ },
+ },
+ identity: goodIdentity,
+ assertErr: func(t assert.TestingT, err error, i ...interface{}) bool {
+ return assert.True(t, trace.IsNotFound(err))
+ },
+ },
+ {
+ name: "missing heartbeat",
+ createBotInstance: true,
+ req: &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: nil,
+ },
+ identity: goodIdentity,
+ assertErr: func(t assert.TestingT, err error, i ...interface{}) bool {
+ return assert.True(t, trace.IsBadParameter(err)) && assert.Contains(t, err.Error(), "heartbeat: must be non-nil")
+ },
+ wantHeartbeat: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ backend := newBotInstanceBackend(t)
+ service, err := NewBotInstanceService(BotInstanceServiceConfig{
+ Backend: backend,
+ Authorizer: authz.AuthorizerFunc(func(ctx context.Context) (*authz.Context, error) {
+ return &authz.Context{
+ Identity: identityGetterFn(func() tlsca.Identity {
+ return tt.identity
+ }),
+ }, nil
+ }),
+ })
+ require.NoError(t, err)
+
+ if tt.createBotInstance {
+ bi := newBotInstance(botName)
+ bi.Spec.InstanceId = botInstanceID
+ _, err := backend.CreateBotInstance(ctx, bi)
+ require.NoError(t, err)
+ }
+
+ _, err = service.SubmitHeartbeat(ctx, tt.req)
+ tt.assertErr(t, err)
+ if tt.createBotInstance {
+ bi, err := backend.GetBotInstance(ctx, botName, botInstanceID)
+ require.NoError(t, err)
+ if tt.wantHeartbeat {
+ assert.Empty(
+ t,
+ cmp.Diff(
+ bi.Status.InitialHeartbeat,
+ tt.req.Heartbeat,
+ protocmp.Transform()),
+ )
+ assert.Len(t, bi.Status.LatestHeartbeats, 1)
+ assert.Empty(
+ t,
+ cmp.Diff(
+ bi.Status.LatestHeartbeats[0],
+ tt.req.Heartbeat,
+ protocmp.Transform()),
+ )
+ } else {
+ assert.Nil(t, bi.Status.InitialHeartbeat)
+ assert.Empty(t, bi.Status.LatestHeartbeats)
+ }
+ }
+ })
+ }
+}
+
+func TestBotInstanceServiceSubmitHeartbeat_HeartbeatLimit(t *testing.T) {
+ t.Parallel()
+ ctx := context.Background()
+
+ const botName = "test-bot"
+ const botInstanceID = "123-456"
+
+ backend := newBotInstanceBackend(t)
+ service, err := NewBotInstanceService(BotInstanceServiceConfig{
+ Backend: backend,
+ Authorizer: authz.AuthorizerFunc(func(ctx context.Context) (*authz.Context, error) {
+ return &authz.Context{
+ Identity: identityGetterFn(func() tlsca.Identity {
+ return tlsca.Identity{
+ BotName: botName,
+ BotInstanceID: botInstanceID,
+ }
+ }),
+ }, nil
+ }),
+ })
+ require.NoError(t, err)
+
+ bi := newBotInstance(botName)
+ bi.Spec.InstanceId = botInstanceID
+ _, err = backend.CreateBotInstance(ctx, bi)
+ require.NoError(t, err)
+
+ extraHeartbeats := 5
+ for i := 0; i < (heartbeatHistoryLimit + extraHeartbeats); i++ {
+ _, err = service.SubmitHeartbeat(ctx, &machineidv1.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: strconv.Itoa(i),
+ },
+ })
+ require.NoError(t, err)
+ }
+
+ bi, err = backend.GetBotInstance(ctx, botName, botInstanceID)
+ require.NoError(t, err)
+ assert.Len(t, bi.Status.LatestHeartbeats, heartbeatHistoryLimit)
+ assert.Equal(t, "0", bi.Status.InitialHeartbeat.Hostname)
+ // Ensure we have the last 10 heartbeats
+ for i := 0; i < heartbeatHistoryLimit; i++ {
+ wantHostname := strconv.Itoa(i + extraHeartbeats)
+ assert.Equal(t, wantHostname, bi.Status.LatestHeartbeats[i].Hostname)
+ }
+}
+
+var allAdminStates = map[authz.AdminActionAuthState]string{
+ authz.AdminActionAuthUnauthorized: "Unauthorized",
+ authz.AdminActionAuthNotRequired: "NotRequired",
+ authz.AdminActionAuthMFAVerified: "MFAVerified",
+ authz.AdminActionAuthMFAVerifiedWithReuse: "MFAVerifiedWithReuse",
+}
+
+func stateToString(state authz.AdminActionAuthState) string {
+ str, ok := allAdminStates[state]
+ if !ok {
+ return fmt.Sprintf("unknown(%v)", state)
+ }
+ return str
+}
+
+// otherAdminStates returns all admin states except for those passed in
+func otherAdminStates(states []authz.AdminActionAuthState) []authz.AdminActionAuthState {
+ var out []authz.AdminActionAuthState
+ for state := range allAdminStates {
+ found := slices.Index(states, state) != -1
+ if !found {
+ out = append(out, state)
+ }
+ }
+ return out
+}
+
+type fakeChecker struct {
+ allowedVerbs []string
+ services.AccessChecker
+}
+
+func (f fakeChecker) CheckAccessToRule(_ services.RuleContext, _ string, resource string, verb string) error {
+ if resource == types.KindBotInstance {
+ for _, allowedVerb := range f.allowedVerbs {
+ if allowedVerb == verb {
+ return nil
+ }
+ }
+ }
+
+ return trace.AccessDenied("access denied to rule=%v/verb=%v", resource, verb)
+}
+
+// callMethod calls a method with given name in the BotInstanceService
+func callMethod(t *testing.T, service *BotInstanceService, method string) error {
+ for _, desc := range machineidv1.BotInstanceService_ServiceDesc.Methods {
+ if desc.MethodName == method {
+ _, err := desc.Handler(service, context.Background(), func(_ any) error { return nil }, nil)
+ return err
+ }
+ }
+ require.FailNow(t, "method %v not found", method)
+ panic("this line should never be reached: FailNow() should interrupt the test")
+}
+
+// newBotInstance creates a new bot instance for the named bot with a random ID
+func newBotInstance(botName string) *machineidv1.BotInstance {
+ id := uuid.New()
+
+ bi := &machineidv1.BotInstance{
+ Kind: types.KindBotInstance,
+ Version: types.V1,
+ Spec: &machineidv1.BotInstanceSpec{
+ BotName: botName,
+ InstanceId: id.String(),
+ },
+ Status: &machineidv1.BotInstanceStatus{},
+ }
+
+ return bi
+}
+
+// createInstances creates and inserts many random bot instances for the named bot
+func createInstances(t *testing.T, ctx context.Context, backend *local.BotInstanceService, botName string, count int) map[string]struct{} {
+ t.Helper()
+
+ ids := map[string]struct{}{}
+
+ for i := 0; i < count; i++ {
+ bi := newBotInstance(botName)
+ _, err := backend.CreateBotInstance(ctx, bi)
+ require.NoError(t, err)
+
+ ids[bi.Spec.InstanceId] = struct{}{}
+ }
+
+ return ids
+}
+
+// listInstances lists all instances for the named bot (if any)
+func listInstances(t *testing.T, ctx context.Context, service *BotInstanceService, botName string) []*machineidv1.BotInstance {
+ t.Helper()
+
+ var resources []*machineidv1.BotInstance
+ var nextKey string
+
+ for {
+ res, err := service.ListBotInstances(ctx, &machineidv1.ListBotInstancesRequest{
+ FilterBotName: botName,
+ PageSize: 0,
+ PageToken: nextKey,
+ })
+ require.NoError(t, err)
+
+ resources = append(resources, res.BotInstances...)
+
+ nextKey = res.NextPageToken
+ if nextKey == "" {
+ break
+ }
+ }
+
+ return resources
+}
+
+// newBotInstanceBackend creates a new local backend for BotInstance CRUD
+// operations.
+func newBotInstanceBackend(t *testing.T) *local.BotInstanceService {
+ b, err := memory.New(memory.Config{})
+ require.NoError(t, err)
+
+ backendService, err := local.NewBotInstanceService(b, clockwork.NewFakeClock())
+ require.NoError(t, err)
+
+ return backendService
+}
+
+// newBotInstanceService creates a gRPC bot instance service for testing
+func newBotInstanceService(
+ t *testing.T,
+ backendService *local.BotInstanceService,
+ authState authz.AdminActionAuthState,
+ checker services.AccessChecker,
+) *BotInstanceService {
+ t.Helper()
+
+ authorizer := authz.AuthorizerFunc(func(ctx context.Context) (*authz.Context, error) {
+ user, err := types.NewUser("example")
+ if err != nil {
+ return nil, err
+ }
+
+ return &authz.Context{
+ User: user,
+ Checker: checker,
+ AdminActionAuthState: authState,
+ }, nil
+ })
+
+ service, err := NewBotInstanceService(BotInstanceServiceConfig{
+ Authorizer: authorizer,
+ Backend: backendService,
+ })
+ require.NoError(t, err)
+
+ return service
+}
diff --git a/lib/joinserver/joinserver.go b/lib/joinserver/joinserver.go
index 7284ecc36a84a..735dae1e6ab08 100644
--- a/lib/joinserver/joinserver.go
+++ b/lib/joinserver/joinserver.go
@@ -133,6 +133,7 @@ func (s *JoinServiceGRPCServer) registerUsingIAMMethod(srv proto.JoinService_Reg
if err := setClientRemoteAddr(ctx, req.RegisterUsingTokenRequest); err != nil {
return nil, trace.Wrap(err)
}
+ setBotParameters(ctx, req.RegisterUsingTokenRequest)
return req, nil
})
@@ -204,6 +205,38 @@ func setClientRemoteAddr(ctx context.Context, req *types.RegisterUsingTokenReque
return nil
}
+// setBotParameters extracts a bot instance ID from either the incoming request
+// or the context identity.
+func setBotParameters(ctx context.Context, req *types.RegisterUsingTokenRequest) {
+ user, err := authz.UserFromContext(ctx)
+ if err != nil {
+ return
+ }
+
+ ident := user.GetIdentity()
+ if checkForProxyRole(ident) {
+ // The request is coming from the proxy, so we can trust whatever
+ // parameter value it does (or doesn't) provide
+ return
+ }
+
+ if ident.BotInstanceID != "" {
+ // Trust the instance ID from the incoming identity: bots will
+ // attempt to provide it on renewal, assuming it's still valid.
+ logrus.WithFields(logrus.Fields{
+ "bot_name": ident.BotName,
+ "bot_instance_id": ident.BotInstanceID,
+ }).Info("bot is rejoining")
+ req.BotInstanceID = ident.BotInstanceID
+ } else {
+ // Clear any other value from the request: the value must come from a
+ // trusted source, i.e. another proxy or certificate field.
+ req.BotInstanceID = ""
+ }
+
+ req.BotGeneration = int32(ident.Generation)
+}
+
func (s *JoinServiceGRPCServer) registerUsingAzureMethod(srv proto.JoinService_RegisterUsingAzureMethodServer) error {
ctx := srv.Context()
certs, err := s.joinServiceClient.RegisterUsingAzureMethod(ctx, func(challenge string) (*proto.RegisterUsingAzureMethodRequest, error) {
@@ -221,6 +254,7 @@ func (s *JoinServiceGRPCServer) registerUsingAzureMethod(srv proto.JoinService_R
if err := setClientRemoteAddr(ctx, req.RegisterUsingTokenRequest); err != nil {
return nil, trace.Wrap(err)
}
+ setBotParameters(ctx, req.RegisterUsingTokenRequest)
return req, nil
})
@@ -298,6 +332,8 @@ func (s *JoinServiceGRPCServer) registerUsingTPMMethod(
return trace.Wrap(err, "setting client address")
}
+ setBotParameters(ctx, initReq.JoinRequest)
+
certs, err := s.joinServiceClient.RegisterUsingTPMMethod(
ctx,
initReq,
diff --git a/lib/services/authority.go b/lib/services/authority.go
index 1a5e60bf45494..bc66fde3ba0dc 100644
--- a/lib/services/authority.go
+++ b/lib/services/authority.go
@@ -383,6 +383,9 @@ type UserCertParams struct {
// BotName is set to the name of the bot, if the user is a Machine ID bot user.
// Empty for human users.
BotName string
+ // BotInstanceID is the unique identifier for the bot instance, if this is a
+ // Machine ID bot. It is empty for human users.
+ BotInstanceID string
// AllowedResourceIDs lists the resources the user should be able to access.
AllowedResourceIDs string
// ConnectionDiagnosticID references the ConnectionDiagnostic that we should use to append traces when testing a Connection.
diff --git a/lib/services/bot_instance.go b/lib/services/bot_instance.go
new file mode 100644
index 0000000000000..75932fad91843
--- /dev/null
+++ b/lib/services/bot_instance.go
@@ -0,0 +1,80 @@
+// Teleport
+// Copyright (C) 2024 Gravitational, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package services
+
+import (
+ "context"
+
+ "github.com/gravitational/trace"
+
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+)
+
+// BotInstance is an interface for the BotInstance service.
+type BotInstance interface {
+ // CreateBotInstance
+ CreateBotInstance(ctx context.Context, botInstance *machineidv1.BotInstance) (*machineidv1.BotInstance, error)
+
+ // GetBotInstance
+ GetBotInstance(ctx context.Context, botName, instanceID string) (*machineidv1.BotInstance, error)
+
+ // ListBotInstances
+ ListBotInstances(ctx context.Context, botName string, pageSize int, lastToken string) ([]*machineidv1.BotInstance, string, error)
+
+ // DeleteBotInstance
+ DeleteBotInstance(ctx context.Context, botName, instanceID string) error
+
+ // PatchBotInstance fetches an existing bot instance by bot name and ID,
+ // then calls `updateFn` to apply any changes before persisting the
+ // resource.
+ PatchBotInstance(
+ ctx context.Context,
+ botName, instanceID string,
+ updateFn func(*machineidv1.BotInstance) (*machineidv1.BotInstance, error),
+ ) (*machineidv1.BotInstance, error)
+}
+
+// ValidateBotInstance verifies that required fields for a new BotInstance are present
+func ValidateBotInstance(b *machineidv1.BotInstance) error {
+ if b.Spec == nil {
+ return trace.BadParameter("spec is required")
+ }
+
+ if b.Spec.BotName == "" {
+ return trace.BadParameter("spec.bot_name is required")
+ }
+
+ if b.Spec.InstanceId == "" {
+ return trace.BadParameter("spec.instance_id is required")
+ }
+
+ if b.Status == nil {
+ return trace.BadParameter("status is required")
+ }
+
+ return nil
+}
+
+// MarshalBotInstance marshals the BotInstance object into a JSON byte array.
+func MarshalBotInstance(object *machineidv1.BotInstance, opts ...MarshalOption) ([]byte, error) {
+ return MarshalProtoResource(object, opts...)
+}
+
+// UnmarshalBotInstance unmarshals the BotInstance object from a JSON byte array.
+func UnmarshalBotInstance(data []byte, opts ...MarshalOption) (*machineidv1.BotInstance, error) {
+ return UnmarshalProtoResource[*machineidv1.BotInstance](data, opts...)
+}
diff --git a/lib/services/local/bot_instance.go b/lib/services/local/bot_instance.go
new file mode 100644
index 0000000000000..2db2712473daa
--- /dev/null
+++ b/lib/services/local/bot_instance.go
@@ -0,0 +1,161 @@
+// Teleport
+// Copyright (C) 2024 Gravitational, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package local
+
+import (
+ "context"
+
+ "github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+
+ headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/api/utils"
+ "github.com/gravitational/teleport/lib/backend"
+ "github.com/gravitational/teleport/lib/services"
+ "github.com/gravitational/teleport/lib/services/local/generic"
+)
+
+const (
+ botInstancePrefix = "bot_instance"
+)
+
+// BotInstanceService exposes backend functionality for storing bot instances.
+type BotInstanceService struct {
+ service *generic.ServiceWrapper[*machineidv1.BotInstance]
+
+ clock clockwork.Clock
+}
+
+// NewBotInstanceService creates a new BotInstanceService with the given backend.
+func NewBotInstanceService(backend backend.Backend, clock clockwork.Clock) (*BotInstanceService, error) {
+ service, err := generic.NewServiceWrapper(backend,
+ types.KindBotInstance,
+ botInstancePrefix,
+ services.MarshalBotInstance,
+ services.UnmarshalBotInstance)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ return &BotInstanceService{
+ service: service,
+ clock: clock,
+ }, nil
+}
+
+// CreateBotInstance inserts a new BotInstance into the backend.
+//
+// Note that new BotInstances will have their .Metadata.Name overwritten by the
+// instance UUID.
+func (b *BotInstanceService) CreateBotInstance(ctx context.Context, instance *machineidv1.BotInstance) (*machineidv1.BotInstance, error) {
+ if err := services.ValidateBotInstance(instance); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ instance.Kind = types.KindBotInstance
+ instance.Version = types.V1
+
+ if instance.Metadata == nil {
+ instance.Metadata = &headerv1.Metadata{}
+ }
+
+ instance.Metadata.Name = instance.Spec.InstanceId
+
+ serviceWithPrefix := b.service.WithPrefix(instance.Spec.BotName)
+ created, err := serviceWithPrefix.CreateResource(ctx, instance)
+ return created, trace.Wrap(err)
+}
+
+// GetBotInstance retreives a specific bot instance given a bot name and
+// instance ID.
+func (b *BotInstanceService) GetBotInstance(ctx context.Context, botName, instanceID string) (*machineidv1.BotInstance, error) {
+ serviceWithPrefix := b.service.WithPrefix(botName)
+ instance, err := serviceWithPrefix.GetResource(ctx, instanceID)
+ return instance, trace.Wrap(err)
+}
+
+// ListBotInstances lists all bot instances matching the given bot name filter.
+// If an empty bot name is provided, all bot instances will be fetched.
+func (b *BotInstanceService) ListBotInstances(ctx context.Context, botName string, pageSize int, lastKey string) ([]*machineidv1.BotInstance, string, error) {
+ // If botName is empty, return instances for all bots by not using a service prefix
+ if botName == "" {
+ r, nextToken, err := b.service.ListResources(ctx, pageSize, lastKey)
+ return r, nextToken, trace.Wrap(err)
+ }
+
+ serviceWithPrefix := b.service.WithPrefix(botName)
+ r, nextToken, err := serviceWithPrefix.ListResources(ctx, pageSize, lastKey)
+ return r, nextToken, trace.Wrap(err)
+}
+
+// DeleteBotInstance deletes a specific bot instance matching the given bot name
+// and instance ID.
+func (b *BotInstanceService) DeleteBotInstance(ctx context.Context, botName, instanceID string) error {
+ serviceWithPrefix := b.service.WithPrefix(botName)
+ return trace.Wrap(serviceWithPrefix.DeleteResource(ctx, instanceID))
+}
+
+// PatchBotInstance uses the supplied function to patch the bot instance
+// matching the given (botName, instanceID) key and persists the patched
+// resource. It will make multiple attempts if a `CompareFailed` error is
+// raised, automatically re-applying `updateFn()`.
+func (b *BotInstanceService) PatchBotInstance(
+ ctx context.Context,
+ botName, instanceID string,
+ updateFn func(*machineidv1.BotInstance) (*machineidv1.BotInstance, error),
+) (*machineidv1.BotInstance, error) {
+ const iterLimit = 3
+
+ for i := 0; i < iterLimit; i++ {
+ existing, err := b.GetBotInstance(ctx, botName, instanceID)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ updated, err := updateFn(utils.CloneProtoMsg(existing))
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ switch {
+ case updated.GetMetadata().GetName() != existing.GetMetadata().GetName():
+ return nil, trace.BadParameter("metadata.name: cannot be patched")
+ case updated.GetMetadata().GetRevision() != existing.GetMetadata().GetRevision():
+ return nil, trace.BadParameter("metadata.revision: cannot be patched")
+ case updated.GetSpec().GetInstanceId() != existing.GetSpec().GetInstanceId():
+ return nil, trace.BadParameter("spec.instance_id: cannot be patched")
+ case updated.GetSpec().GetBotName() != existing.GetSpec().GetBotName():
+ return nil, trace.BadParameter("spec.bot_name: cannot be patched")
+ }
+
+ serviceWithPrefix := b.service.WithPrefix(botName)
+ lease, err := serviceWithPrefix.ConditionalUpdateResource(ctx, updated)
+ if err != nil {
+ if trace.IsCompareFailed(err) {
+ continue
+ }
+
+ return nil, trace.Wrap(err)
+ }
+
+ updated.GetMetadata().Revision = lease.GetMetadata().Revision
+ return updated, nil
+ }
+
+ return nil, trace.CompareFailed("failed to update bot instance within %v iterations", iterLimit)
+}
diff --git a/lib/services/local/bot_instance_test.go b/lib/services/local/bot_instance_test.go
new file mode 100644
index 0000000000000..68c3eb040c62e
--- /dev/null
+++ b/lib/services/local/bot_instance_test.go
@@ -0,0 +1,324 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package local
+
+import (
+ "context"
+ "testing"
+ "time"
+
+ "github.com/google/uuid"
+ "github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+ "github.com/stretchr/testify/require"
+ "google.golang.org/protobuf/types/known/timestamppb"
+
+ headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/lib/backend"
+ "github.com/gravitational/teleport/lib/backend/memory"
+)
+
+// newBotInstance creates (but does not insert) a bot instance that is ready for
+// insertion into the backend. If any modifier functions are provided, they will
+// be executed on the instance before it is returned.
+func newBotInstance(botName string, fns ...func(*machineidv1.BotInstance)) *machineidv1.BotInstance {
+ id := uuid.New()
+
+ bi := &machineidv1.BotInstance{
+ Kind: types.KindBotInstance,
+ Version: types.V1,
+ Spec: &machineidv1.BotInstanceSpec{
+ BotName: botName,
+ InstanceId: id.String(),
+ },
+ Status: &machineidv1.BotInstanceStatus{},
+ }
+
+ for _, fn := range fns {
+ fn(bi)
+ }
+
+ return bi
+}
+
+// withBotInstanceInvalidMetadata modifies a BotInstance such that it should
+// raise an error during an insert attempt.
+func withBotInstanceInvalidMetadata() func(*machineidv1.BotInstance) {
+ return func(bi *machineidv1.BotInstance) {
+ bi.Metadata = &headerv1.Metadata{
+ Name: "invalid",
+ }
+ }
+}
+
+// withBotInstanceExpiry sets the .Metadata.Expires field of a bot instance to
+// the given timestamp.
+func withBotInstanceExpiry(expiry time.Time) func(*machineidv1.BotInstance) {
+ return func(bi *machineidv1.BotInstance) {
+ if bi.Metadata == nil {
+ bi.Metadata = &headerv1.Metadata{}
+ }
+
+ bi.Metadata.Expires = timestamppb.New(expiry)
+ }
+}
+
+// createInstances creates new bot instances for the named bot with random UUIDs
+func createInstances(t *testing.T, ctx context.Context, service *BotInstanceService, botName string, count int) map[string]struct{} {
+ t.Helper()
+
+ ids := map[string]struct{}{}
+
+ for i := 0; i < count; i++ {
+ bi := newBotInstance(botName)
+ _, err := service.CreateBotInstance(ctx, bi)
+ require.NoError(t, err)
+
+ ids[bi.Spec.InstanceId] = struct{}{}
+ }
+
+ return ids
+}
+
+// listInstances fetches all instances from the BotInstanceService matching the botName filter
+func listInstances(t *testing.T, ctx context.Context, service *BotInstanceService, botName string) []*machineidv1.BotInstance {
+ t.Helper()
+
+ var resources []*machineidv1.BotInstance
+ var bis []*machineidv1.BotInstance
+ var nextKey string
+ var err error
+
+ for {
+ bis, nextKey, err = service.ListBotInstances(ctx, botName, 0, nextKey)
+ require.NoError(t, err)
+
+ resources = append(resources, bis...)
+
+ if nextKey == "" {
+ break
+ }
+ }
+
+ return resources
+}
+
+// TestBotInstanceCreateMetadata ensures bot instance metadata is constructed
+// correctly when a new bot instance is inserted into the backend.
+func TestBotInstanceCreateMetadata(t *testing.T) {
+ t.Parallel()
+
+ clock := clockwork.NewFakeClock()
+
+ tests := []struct {
+ name string
+ instance *machineidv1.BotInstance
+ assertError require.ErrorAssertionFunc
+ assertValue require.ValueAssertionFunc
+ }{
+ {
+ name: "non-nil metadata",
+ instance: newBotInstance("foo", withBotInstanceInvalidMetadata()),
+ assertError: require.NoError,
+ assertValue: func(t require.TestingT, i interface{}, _ ...interface{}) {
+ bi, ok := i.(*machineidv1.BotInstance)
+ require.True(t, ok)
+
+ // .Metadata.Name should be overwritten with the correct value
+ require.Equal(t, bi.Spec.InstanceId, bi.Metadata.Name)
+ require.Nil(t, bi.Metadata.Expires)
+ },
+ },
+ {
+ name: "valid without expiry",
+ instance: newBotInstance("foo"),
+ assertError: require.NoError,
+ assertValue: func(t require.TestingT, i interface{}, _ ...interface{}) {
+ bi, ok := i.(*machineidv1.BotInstance)
+ require.True(t, ok)
+
+ require.Equal(t, bi.Spec.InstanceId, bi.Metadata.Name)
+ require.Nil(t, bi.Metadata.Expires)
+ },
+ },
+ {
+ name: "valid with expiry",
+ instance: newBotInstance("foo", withBotInstanceExpiry(clock.Now().Add(time.Hour))),
+ assertError: require.NoError,
+ assertValue: func(t require.TestingT, i interface{}, _ ...interface{}) {
+ bi, ok := i.(*machineidv1.BotInstance)
+ require.True(t, ok)
+
+ require.Equal(t, bi.Spec.InstanceId, bi.Metadata.Name)
+ require.Equal(t, clock.Now().Add(time.Hour).UTC(), bi.Metadata.Expires.AsTime())
+ },
+ },
+ }
+
+ for _, tc := range tests {
+ t.Run(tc.name, func(t *testing.T) {
+ ctx := context.Background()
+
+ mem, err := memory.New(memory.Config{
+ Context: ctx,
+ Clock: clock,
+ })
+ require.NoError(t, err)
+
+ service, err := NewBotInstanceService(backend.NewSanitizer(mem), clock)
+ require.NoError(t, err)
+
+ value, err := service.CreateBotInstance(ctx, tc.instance)
+ tc.assertError(t, err)
+ tc.assertValue(t, value)
+ })
+ }
+}
+
+// TestBotInstanceInvalidGetters ensures proper behavior for an invalid
+// GetBotInstance call.
+func TestBotInstanceInvalidGetters(t *testing.T) {
+ t.Parallel()
+
+ ctx := context.Background()
+ clock := clockwork.NewFakeClock()
+
+ mem, err := memory.New(memory.Config{
+ Context: ctx,
+ Clock: clock,
+ })
+ require.NoError(t, err)
+
+ service, err := NewBotInstanceService(backend.NewSanitizer(mem), clock)
+ require.NoError(t, err)
+
+ _, err = service.CreateBotInstance(ctx, newBotInstance("example"))
+ require.NoError(t, err)
+
+ _, err = service.GetBotInstance(ctx, "example", "invalid")
+ require.True(t, trace.IsNotFound(err))
+}
+
+// TestBotInstanceCRUD tests backend CRUD functionality for the bot instance
+// service.
+func TestBotInstanceCRUD(t *testing.T) {
+ t.Parallel()
+
+ ctx := context.Background()
+ clock := clockwork.NewFakeClock()
+
+ mem, err := memory.New(memory.Config{
+ Context: ctx,
+ Clock: clock,
+ })
+ require.NoError(t, err)
+
+ service, err := NewBotInstanceService(backend.NewSanitizer(mem), clock)
+ require.NoError(t, err)
+
+ bi := newBotInstance("example")
+ patched, err := service.CreateBotInstance(ctx, bi)
+ require.NoError(t, err)
+
+ // metadata should be generated from the bot spec
+ require.Equal(t, bi.Spec.InstanceId, patched.Metadata.Name)
+
+ // we should be able to retrieve a matching instance
+ bi2, err := service.GetBotInstance(ctx, bi.Spec.BotName, bi.Spec.InstanceId)
+ require.NoError(t, err)
+ require.EqualExportedValues(t, patched, bi2)
+ require.Equal(t, bi.Metadata.Name, bi2.Metadata.Name)
+
+ resources := listInstances(t, ctx, service, "example")
+
+ require.Len(t, resources, 1, "must list only 1 bot instance")
+ require.EqualExportedValues(t, patched, resources[0])
+
+ // append a heartbeat to a stored instance
+ heartbeat := &machineidv1.BotInstanceStatusHeartbeat{
+ Hostname: "foo",
+ }
+
+ patched, err = service.PatchBotInstance(ctx, bi.Spec.BotName, bi.Spec.InstanceId, func(bi *machineidv1.BotInstance) (*machineidv1.BotInstance, error) {
+ bi.Status.LatestHeartbeats = append([]*machineidv1.BotInstanceStatusHeartbeat{heartbeat}, bi.Status.LatestHeartbeats...)
+ return bi, nil
+ })
+ require.NoError(t, err)
+
+ require.Len(t, patched.Status.LatestHeartbeats, 1)
+ require.EqualExportedValues(t, heartbeat, patched.Status.LatestHeartbeats[0])
+
+ // delete the stored instance
+ require.NoError(t, service.DeleteBotInstance(ctx, bi.Spec.BotName, bi.Spec.InstanceId))
+
+ // subsequent delete attempts should fail
+ require.Error(t, service.DeleteBotInstance(ctx, bi.Spec.BotName, bi.Spec.InstanceId))
+}
+
+// TestBotInstanceList verifies list and filtering functionality for bot
+// instances.
+func TestBotInstanceList(t *testing.T) {
+ t.Parallel()
+
+ ctx := context.Background()
+ clock := clockwork.NewFakeClock()
+
+ mem, err := memory.New(memory.Config{
+ Context: ctx,
+ Clock: clock,
+ })
+ require.NoError(t, err)
+
+ service, err := NewBotInstanceService(backend.NewSanitizer(mem), clock)
+ require.NoError(t, err)
+
+ aIds := createInstances(t, ctx, service, "a", 3)
+ bIds := createInstances(t, ctx, service, "b", 4)
+
+ // listing "a" should only return known "a" instances
+ aInstances := listInstances(t, ctx, service, "a")
+ require.Len(t, aInstances, 3)
+ for _, ins := range aInstances {
+ require.Contains(t, aIds, ins.Spec.InstanceId)
+ }
+
+ // listing "b" should only return known "b" instances
+ bInstances := listInstances(t, ctx, service, "b")
+ require.Len(t, bInstances, 4)
+ for _, ins := range bInstances {
+ require.Contains(t, bIds, ins.Spec.InstanceId)
+ }
+
+ allIds := map[string]struct{}{}
+ for i := range aIds {
+ allIds[i] = struct{}{}
+ }
+ for i := range bIds {
+ allIds[i] = struct{}{}
+ }
+
+ // Listing an empty bot name ("") should return all instances.
+ allInstances := listInstances(t, ctx, service, "")
+ require.Len(t, allInstances, 7)
+ for _, ins := range allInstances {
+ require.Contains(t, allIds, ins.Spec.InstanceId)
+ }
+}
diff --git a/lib/services/local/events.go b/lib/services/local/events.go
index b9079e7d8a2de..8d69a7fd69407 100644
--- a/lib/services/local/events.go
+++ b/lib/services/local/events.go
@@ -29,7 +29,9 @@ import (
"github.com/gravitational/teleport"
apidefaults "github.com/gravitational/teleport/api/defaults"
+ headerv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
kubewaitingcontainerpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/kubewaitingcontainer/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/types"
"github.com/gravitational/teleport/api/types/kubewaitingcontainer"
"github.com/gravitational/teleport/lib/backend"
@@ -204,6 +206,8 @@ func (e *EventsService) NewWatcher(ctx context.Context, watch types.Watch) (type
parser = newGlobalNotificationParser()
case types.KindAccessMonitoringRule:
parser = newAccessMonitoringRuleParser()
+ case types.KindBotInstance:
+ parser = newBotInstanceParser()
case types.KindInstance:
parser = newInstanceParser()
default:
@@ -2081,6 +2085,57 @@ func (p *globalNotificationParser) parse(event backend.Event) (types.Resource, e
}
}
+func newBotInstanceParser() *botInstanceParser {
+ return &botInstanceParser{
+ baseParser: newBaseParser(backend.Key(botInstancePrefix)),
+ }
+}
+
+type botInstanceParser struct {
+ baseParser
+}
+
+func (p *botInstanceParser) parse(event backend.Event) (types.Resource, error) {
+ switch event.Type {
+ case types.OpDelete:
+ // Remove the first separator so none of the separated parts will be
+ // empty strings
+ key := string(event.Item.Key)
+ key = strings.TrimPrefix(key, string(backend.Separator))
+
+ // bot_instance/<1: bot name>/<2: uuid>
+ parts := strings.Split(key, string(backend.Separator))
+ if len(parts) != 3 {
+ return nil, trace.BadParameter("malformed key for %s event: %s", types.KindBotInstance, event.Item.Key)
+ }
+
+ botInstance := &machineidv1.BotInstance{
+ Kind: types.KindBotInstance,
+ Version: types.V1,
+ Spec: &machineidv1.BotInstanceSpec{
+ BotName: parts[1],
+ InstanceId: parts[2],
+ },
+ Metadata: &headerv1.Metadata{
+ Name: parts[2],
+ },
+ }
+
+ return types.Resource153ToLegacy(botInstance), nil
+ case types.OpPut:
+ botInstance, err := services.UnmarshalBotInstance(
+ event.Item.Value,
+ services.WithExpires(event.Item.Expires),
+ services.WithRevision(event.Item.Revision))
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ return types.Resource153ToLegacy(botInstance), nil
+ default:
+ return nil, trace.BadParameter("event %v is not supported", event.Type)
+ }
+}
+
func newInstanceParser() *instanceParser {
return &instanceParser{
baseParser: newBaseParser(backend.Key(instancePrefix)),
diff --git a/lib/services/presets.go b/lib/services/presets.go
index 1d7992d1bea3a..2e34e01dfa0a9 100644
--- a/lib/services/presets.go
+++ b/lib/services/presets.go
@@ -176,6 +176,7 @@ func NewPresetEditorRole() types.Role {
types.NewRule(types.KindServerInfo, RW()),
types.NewRule(types.KindAppServer, RW()),
types.NewRule(types.KindAccessMonitoringRule, RW()),
+ types.NewRule(types.KindBotInstance, RW()),
},
},
},
@@ -282,6 +283,7 @@ func NewPresetAuditorRole() types.Role {
types.NewRule(types.KindInstance, RO()),
types.NewRule(types.KindSecurityReport, append(RO(), types.VerbUse)),
types.NewRule(types.KindAuditQuery, append(RO(), types.VerbUse)),
+ types.NewRule(types.KindBotInstance, RO()),
},
},
},
diff --git a/lib/services/resource.go b/lib/services/resource.go
index aeba9adb6131a..db7a393de3333 100644
--- a/lib/services/resource.go
+++ b/lib/services/resource.go
@@ -234,6 +234,8 @@ func ParseShortcut(in string) (string, error) {
return types.KindServerInfo, nil
case types.KindBot, "bots":
return types.KindBot, nil
+ case types.KindBotInstance, types.KindBotInstance + "s":
+ return types.KindBotInstance, nil
case types.KindDatabaseObjectImportRule, "db_object_import_rules", "database_object_import_rule":
return types.KindDatabaseObjectImportRule, nil
case types.KindAccessMonitoringRule:
diff --git a/lib/services/useracl.go b/lib/services/useracl.go
index a5f0116e2933f..03af83c04dd57 100644
--- a/lib/services/useracl.go
+++ b/lib/services/useracl.go
@@ -106,6 +106,8 @@ type UserACL struct {
AccessGraph ResourceAccess `json:"accessGraph"`
// Bots defines access to manage Bots.
Bots ResourceAccess `json:"bots"`
+ // BotInstances defines access to manage bot instances
+ BotInstances ResourceAccess `json:"botInstances"`
// AccessMonitoringRule defines access to manage access monitoring rule resources.
AccessMonitoringRule ResourceAccess `json:"accessMonitoringRule"`
// CrownJewel defines access to manage CrownJewel resources.
@@ -199,6 +201,7 @@ func NewUserACL(user types.User, userRoles RoleSet, features proto.Features, des
accessListAccess := newAccess(userRoles, ctx, types.KindAccessList)
externalAuditStorage := newAccess(userRoles, ctx, types.KindExternalAuditStorage)
bots := newAccess(userRoles, ctx, types.KindBot)
+ botInstances := newAccess(userRoles, ctx, types.KindBotInstance)
crownJewelAccess := newAccess(userRoles, ctx, types.KindCrownJewel)
var auditQuery ResourceAccess
@@ -244,6 +247,7 @@ func NewUserACL(user types.User, userRoles RoleSet, features proto.Features, des
ExternalAuditStorage: externalAuditStorage,
AccessGraph: accessGraphAccess,
Bots: bots,
+ BotInstances: botInstances,
AccessMonitoringRule: accessMonitoringRules,
CrownJewel: crownJewelAccess,
}
diff --git a/lib/srv/authhandlers.go b/lib/srv/authhandlers.go
index 8404b02fc0ce9..d80f5704acfe4 100644
--- a/lib/srv/authhandlers.go
+++ b/lib/srv/authhandlers.go
@@ -209,6 +209,9 @@ func (h *AuthHandlers) CreateIdentityContext(sconn *ssh.ServerConn) (IdentityCon
if botName, ok := certificate.Extensions[teleport.CertExtensionBotName]; ok {
identity.BotName = botName
}
+ if botInstanceID, ok := certificate.Extensions[teleport.CertExtensionBotInstanceID]; ok {
+ identity.BotInstanceID = botInstanceID
+ }
if generationStr, ok := certificate.Extensions[teleport.CertExtensionGeneration]; ok {
generation, err := strconv.ParseUint(generationStr, 10, 64)
if err != nil {
diff --git a/lib/srv/ctx.go b/lib/srv/ctx.go
index cccf7e0f95ae6..2c72a7a46b348 100644
--- a/lib/srv/ctx.go
+++ b/lib/srv/ctx.go
@@ -280,6 +280,10 @@ type IdentityContext struct {
// with, if any.
BotName string
+ // BotInstanceID is the unique identifier of the Machine ID bot instance
+ // this identity is associated with, if any.
+ BotInstanceID string
+
// AllowedResourceIDs lists the resources this identity should be allowed to
// access
AllowedResourceIDs []types.ResourceID
@@ -1233,6 +1237,8 @@ func (id *IdentityContext) GetUserMetadata() apievents.UserMetadata {
AccessRequests: id.ActiveRequests,
TrustedDevice: eventDeviceMetadataFromCert(id.Certificate),
UserKind: userKind,
+ BotName: id.BotName,
+ BotInstanceID: id.BotInstanceID,
}
}
diff --git a/lib/srv/ctx_test.go b/lib/srv/ctx_test.go
index c9edf04f0baf2..6bc99ca6e7dd3 100644
--- a/lib/srv/ctx_test.go
+++ b/lib/srv/ctx_test.go
@@ -232,6 +232,22 @@ func TestIdentityContext_GetUserMetadata(t *testing.T) {
UserKind: apievents.UserKind_USER_KIND_HUMAN,
},
},
+ {
+ name: "bot metadata",
+ idCtx: IdentityContext{
+ TeleportUser: "bot-alpaca",
+ Login: "alpaca1",
+ BotName: "alpaca",
+ BotInstanceID: "123-123-123",
+ },
+ want: apievents.UserMetadata{
+ User: "bot-alpaca",
+ Login: "alpaca1",
+ UserKind: apievents.UserKind_USER_KIND_BOT,
+ BotName: "alpaca",
+ BotInstanceID: "123-123-123",
+ },
+ },
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
diff --git a/lib/tbot/bot/destination.go b/lib/tbot/bot/destination.go
index a52a96b08ef9f..ab1d6b4310106 100644
--- a/lib/tbot/bot/destination.go
+++ b/lib/tbot/bot/destination.go
@@ -57,6 +57,11 @@ type Destination interface {
// as YAML including the type header.
MarshalYAML() (interface{}, error)
+ // IsPersistent indicates whether this destination is persistent.
+ // This is true for most production destinations, but will be false for
+ // Nop or Memory destinations.
+ IsPersistent() bool
+
// Stringer so that Destination's implements fmt.Stringer which allows for
// better logging.
fmt.Stringer
diff --git a/lib/tbot/config/config.go b/lib/tbot/config/config.go
index bb4ca66d35449..7eb702cae28e0 100644
--- a/lib/tbot/config/config.go
+++ b/lib/tbot/config/config.go
@@ -250,12 +250,6 @@ func (conf *OnboardingConfig) HasToken() bool {
return conf.TokenValue != ""
}
-// RenewableJoinMethod indicates that certificate renewal should be used with
-// this join method rather than rejoining each time.
-func (conf *OnboardingConfig) RenewableJoinMethod() bool {
- return conf.JoinMethod == types.JoinMethodToken
-}
-
// SetToken stores the value for --token or auth_token in the config
//
// In the case of the token value pointing to a file, this allows us to
diff --git a/lib/tbot/config/destination_directory.go b/lib/tbot/config/destination_directory.go
index d0b67e2171198..6287f4f40b93d 100644
--- a/lib/tbot/config/destination_directory.go
+++ b/lib/tbot/config/destination_directory.go
@@ -275,3 +275,7 @@ func (dm *DestinationDirectory) MarshalYAML() (interface{}, error) {
type raw DestinationDirectory
return withTypeHeader((*raw)(dm), DestinationDirectoryType)
}
+
+func (dd *DestinationDirectory) IsPersistent() bool {
+ return true
+}
diff --git a/lib/tbot/config/destination_kubernetes_secret.go b/lib/tbot/config/destination_kubernetes_secret.go
index e0a7740944cb3..57eb78fc78cc9 100644
--- a/lib/tbot/config/destination_kubernetes_secret.go
+++ b/lib/tbot/config/destination_kubernetes_secret.go
@@ -287,3 +287,7 @@ func (dks *DestinationKubernetesSecret) MarshalYAML() (interface{}, error) {
type raw DestinationKubernetesSecret
return withTypeHeader((*raw)(dks), DestinationKubernetesSecretType)
}
+
+func (dks *DestinationKubernetesSecret) IsPersistent() bool {
+ return true
+}
diff --git a/lib/tbot/config/destination_memory.go b/lib/tbot/config/destination_memory.go
index c357e98b9998e..ce4f3a9151e9a 100644
--- a/lib/tbot/config/destination_memory.go
+++ b/lib/tbot/config/destination_memory.go
@@ -120,3 +120,7 @@ func (dm *DestinationMemory) MarshalYAML() (interface{}, error) {
type raw DestinationMemory
return withTypeHeader((*raw)(dm), DestinationMemoryType)
}
+
+func (dm *DestinationMemory) IsPersistent() bool {
+ return false
+}
diff --git a/lib/tbot/config/destination_nop.go b/lib/tbot/config/destination_nop.go
index 7b7eb10d5002f..e5682ab4e6a7d 100644
--- a/lib/tbot/config/destination_nop.go
+++ b/lib/tbot/config/destination_nop.go
@@ -79,3 +79,7 @@ func (dm *DestinationNop) MarshalYAML() (interface{}, error) {
type raw DestinationNop
return withTypeHeader((*raw)(dm), DestinationNopType)
}
+
+func (dm *DestinationNop) IsPersistent() bool {
+ return false
+}
diff --git a/lib/tbot/identity/identity.go b/lib/tbot/identity/identity.go
index 4bb06f33e4325..3c147a50085e9 100644
--- a/lib/tbot/identity/identity.go
+++ b/lib/tbot/identity/identity.go
@@ -105,6 +105,8 @@ type Identity struct {
// ClusterName is a name of host's cluster determined from the
// x509 certificate.
ClusterName string
+ // TLSIdentity is the parsed TLS identity based on the X509 certificate.
+ TLSIdentity *tlsca.Identity
}
// LoadIdentityParams contains parameters beyond proto.Certs needed to load a
@@ -170,7 +172,7 @@ func ReadIdentityFromStore(params *LoadIdentityParams, certs *proto.Certs) (*Ide
return nil, trace.Wrap(err, "parsing ssh identity")
}
- clusterName, x509Cert, tlsCert, tlsCAPool, err := ParseTLSIdentity(
+ clusterName, tlsIdent, x509Cert, tlsCert, tlsCAPool, err := ParseTLSIdentity(
params.PrivateKeyBytes, certs.TLS, certs.TLSCACerts,
)
if err != nil {
@@ -195,41 +197,54 @@ func ReadIdentityFromStore(params *LoadIdentityParams, certs *proto.Certs) (*Ide
X509Cert: x509Cert,
TLSCert: tlsCert,
TLSCAPool: tlsCAPool,
+ TLSIdentity: tlsIdent,
}, nil
}
// ParseTLSIdentity reads TLS identity from key pair
func ParseTLSIdentity(
keyBytes []byte, certBytes []byte, caCertsBytes [][]byte,
-) (clusterName string, x509Cert *x509.Certificate, tlsCert *tls.Certificate, certPool *x509.CertPool, err error) {
+) (
+ clusterName string,
+ tlsIdentity *tlsca.Identity,
+ x509Cert *x509.Certificate,
+ tlsCert *tls.Certificate,
+ certPool *x509.CertPool,
+ err error,
+) {
x509Cert, err = tlsca.ParseCertificatePEM(certBytes)
if err != nil {
- return "", nil, nil, nil, trace.Wrap(err, "parsing certificate")
+ return "", nil, nil, nil, nil, trace.Wrap(err, "parsing certificate")
}
if len(x509Cert.Issuer.Organization) == 0 {
- return "", nil, nil, nil, trace.BadParameter("certificate missing CA organization")
+ return "", nil, nil, nil, nil, trace.BadParameter("certificate missing CA organization")
}
clusterName = x509Cert.Issuer.Organization[0]
if clusterName == "" {
- return "", nil, nil, nil, trace.BadParameter("certificate missing cluster name")
+ return "", nil, nil, nil, nil, trace.BadParameter("certificate missing cluster name")
}
certPool = x509.NewCertPool()
for j := range caCertsBytes {
parsedCert, err := tlsca.ParseCertificatePEM(caCertsBytes[j])
if err != nil {
- return "", nil, nil, nil, trace.Wrap(err, "parsing CA certificate")
+ return "", nil, nil, nil, nil, trace.Wrap(err, "parsing CA certificate")
}
certPool.AddCert(parsedCert)
}
cert, err := keys.X509KeyPair(certBytes, keyBytes)
if err != nil {
- return "", nil, nil, nil, trace.Wrap(err, "parse private key")
+ return "", nil, nil, nil, nil, trace.Wrap(err, "parse private key")
}
- return clusterName, x509Cert, &cert, certPool, nil
+ tlsIdent, err := tlsca.FromSubject(x509Cert.Subject, x509Cert.NotAfter)
+ if err != nil {
+ return "", nil, nil, nil, nil, trace.Wrap(err, "parse tls identity")
+ }
+
+ return clusterName, tlsIdent, x509Cert, &cert, certPool, nil
}
// parseSSHIdentity reads identity from initialized keypair
diff --git a/lib/tbot/output_utils.go b/lib/tbot/output_utils.go
index 417f12458d0c8..0f1ba0c071450 100644
--- a/lib/tbot/output_utils.go
+++ b/lib/tbot/output_utils.go
@@ -273,9 +273,16 @@ func describeTLSIdentity(ctx context.Context, log *slog.Logger, ident *identity.
}
}
+ botDesc := ""
+ if tlsIdent.BotInstanceID != "" {
+ botDesc = fmt.Sprintf(", id=%s", tlsIdent.BotInstanceID)
+ }
+
duration := cert.NotAfter.Sub(cert.NotBefore)
return fmt.Sprintf(
- "valid: after=%v, before=%v, duration=%s | kind=tls, renewable=%v, disallow-reissue=%v, roles=%v, principals=%v, generation=%v",
+ "%s%s | valid: after=%v, before=%v, duration=%s | kind=tls, renewable=%v, disallow-reissue=%v, roles=%v, principals=%v, generation=%v",
+ tlsIdent.BotName,
+ botDesc,
cert.NotBefore.Format(time.RFC3339),
cert.NotAfter.Format(time.RFC3339),
duration,
diff --git a/lib/tbot/service_bot_identity.go b/lib/tbot/service_bot_identity.go
index 41a4f341c545f..a49ce52f17049 100644
--- a/lib/tbot/service_bot_identity.go
+++ b/lib/tbot/service_bot_identity.go
@@ -92,20 +92,27 @@ func hasTokenChanged(configTokenBytes, identityBytes []byte) bool {
}
// loadIdentityFromStore attempts to load a persisted identity from a store.
-// It checks this loaded identity against the configured onboarding profile
-// and ignores the loaded identity if there has been a configuration change.
-func (s *identityService) loadIdentityFromStore(ctx context.Context, store bot.Destination) (*identity.Identity, error) {
+// It then checks:
+// - This identity against the configured onboarding profile.
+// - This identity is not expired
+// If any checks fail, it will not return the loaded identity.
+func (s *identityService) loadIdentityFromStore(ctx context.Context, store bot.Destination) *identity.Identity {
ctx, span := tracer.Start(ctx, "identityService/loadIdentityFromStore")
defer span.End()
- s.log.InfoContext(ctx, "Loading existing bot identity from store.", "store", store)
+ s.log.InfoContext(ctx, "Loading existing bot identity from store", "store", store)
loadedIdent, err := identity.LoadIdentity(ctx, store, identity.BotKinds()...)
if err != nil {
if trace.IsNotFound(err) {
- s.log.InfoContext(ctx, "No existing bot identity found in store. Bot will join using configured token.")
- return nil, nil
+ s.log.InfoContext(ctx, "No existing bot identity found in store")
+ return nil
} else {
- return nil, trace.Wrap(err)
+ s.log.WarnContext(
+ ctx,
+ "Failed to load existing bot identity from store",
+ "error", err,
+ )
+ return nil
}
}
@@ -116,77 +123,99 @@ func (s *identityService) loadIdentityFromStore(ctx context.Context, store bot.D
sha := sha256.Sum256([]byte(token))
configTokenHashBytes := []byte(hex.EncodeToString(sha[:]))
if hasTokenChanged(loadedIdent.TokenHashBytes, configTokenHashBytes) {
- s.log.InfoContext(ctx, "Bot identity loaded from store does not match configured token. Bot will fetch identity using configured token.")
+ s.log.InfoContext(ctx, "Bot identity loaded from store does not match configured token")
// If the token has changed, do not return the loaded
// identity.
- return nil, nil
+ return nil
}
} else {
// we failed to get the newly configured token to compare to,
// we'll assume the last good credentials written to disk should
// still be used.
- s.log.ErrorContext(ctx, "There was an error loading the configured token. Bot identity loaded from store will be tried.", "error", err)
+ s.log.WarnContext(
+ ctx,
+ "There was an error loading the configured token to compare to existing identity. Identity loaded from store will be tried",
+ "error", err,
+ )
}
}
- s.log.InfoContext(ctx, "Loaded existing bot identity from store.", "identity", describeTLSIdentity(ctx, s.log, loadedIdent))
- return loadedIdent, nil
+ s.log.InfoContext(
+ ctx,
+ "Loaded existing bot identity from store",
+ "identity", describeTLSIdentity(ctx, s.log, loadedIdent),
+ )
+
+ now := time.Now().UTC()
+ if now.After(loadedIdent.X509Cert.NotAfter) {
+ s.log.WarnContext(
+ ctx,
+ "Identity loaded from store is expired, it will not be used",
+ "not_after", loadedIdent.X509Cert.NotAfter.Format(time.RFC3339),
+ "current_time", now.Format(time.RFC3339),
+ )
+ return nil
+ } else if now.Before(loadedIdent.X509Cert.NotBefore) {
+ s.log.WarnContext(
+ ctx,
+ "Identity loaded from store is not yet valid, it will not be used. Confirm that the system time is correct",
+ "not_before", loadedIdent.X509Cert.NotBefore.Format(time.RFC3339),
+ "current_time", now.Format(time.RFC3339),
+ )
+ return nil
+ }
+
+ return loadedIdent
}
-// Initialize attempts to load an existing identity from the bot's storage.
-// If an identity is found, it is checked against the configured onboarding
-// settings. It is then renewed and persisted.
+// Initialize sets up the bot identity at startup. This process has a few
+// steps to it.
+//
+// First, we attempt to load an existing identity from the configured storage.
+// This is ignored if we know that the onboarding settings have changed.
+//
+// If the identity is found, and seems valid, we attempt to renew using this
+// identity to give us a fresh set of certificates.
//
-// If no identity is found, or the identity is no longer valid, a new identity
-// is requested using the configured onboarding settings.
+// If there is no identity, or the identity is invalid, we'll join using the
+// configured onboarding settings.
func (s *identityService) Initialize(ctx context.Context) error {
ctx, span := tracer.Start(ctx, "identityService/Initialize")
defer span.End()
- s.log.InfoContext(ctx, "Initializing bot identity.")
- var loadedIdent *identity.Identity
- var err error
- if s.cfg.Onboarding.RenewableJoinMethod() {
- // Nil, nil will be returned if no identity can be found in store or
- // the identity in the store is no longer relevant.
- loadedIdent, err = s.loadIdentityFromStore(ctx, s.cfg.Storage.Destination)
- if err != nil {
- return trace.Wrap(err)
+ s.log.InfoContext(ctx, "Initializing bot identity")
+ // nil will be returned if no identity can be found in store or
+ // the identity in the store is no longer relevant or valid.
+ loadedIdent := s.loadIdentityFromStore(ctx, s.cfg.Storage.Destination)
+ if loadedIdent == nil {
+ if !s.cfg.Onboarding.HasToken() {
+ // There's no loaded identity to work with, and they've not
+ // configured a token to use to request an identity :(
+ return trace.BadParameter(
+ "no existing identity found on disk or join token configured",
+ )
}
+ s.log.InfoContext(
+ ctx,
+ "Bot was unable to load a valid existing identity from the store, will attempt to join using configured token",
+ )
}
+ var err error
var newIdentity *identity.Identity
- if s.cfg.Onboarding.RenewableJoinMethod() && loadedIdent != nil {
- // If using a renewable join method and we loaded an identity, let's
- // immediately renew it so we know that after initialisation we have the
- // full certificate TTL.
- if err := checkIdentity(ctx, s.log, loadedIdent); err != nil {
- return trace.Wrap(err)
- }
- facade := identity.NewFacade(s.cfg.FIPS, s.cfg.Insecure, loadedIdent)
- authClient, err := clientForFacade(ctx, s.log, s.cfg, facade, s.resolver)
- if err != nil {
- return trace.Wrap(err)
- }
- defer authClient.Close()
- newIdentity, err = botIdentityFromAuth(
- ctx, s.log, loadedIdent, authClient, s.cfg.CertificateTTL,
- )
+ if loadedIdent != nil {
+ newIdentity, err = renewIdentity(ctx, s.log, s.cfg, s.resolver, loadedIdent)
if err != nil {
- return trace.Wrap(err)
+ return trace.Wrap(err, "renewing identity using loaded identity")
}
- } else if s.cfg.Onboarding.HasToken() {
- // If using a non-renewable join method, or we weren't able to load an
- // identity from the store, let's get a new identity using the
- // configured token.
- newIdentity, err = botIdentityFromToken(ctx, s.log, s.cfg)
+ } else {
+ // TODO(noah): If the above renewal fails, do we want to try joining
+ // instead? Is there a sane amount of times to try renewing before
+ // giving up and rejoining?
+ newIdentity, err = botIdentityFromToken(ctx, s.log, s.cfg, nil)
if err != nil {
- return trace.Wrap(err)
+ return trace.Wrap(err, "joining with token")
}
- } else {
- // There's no loaded identity to work with, and they've not configured
- // a token to use to request an identity :(
- return trace.BadParameter("no existing identity found on disk or join token configured")
}
s.log.InfoContext(ctx, "Fetched new bot identity", "identity", describeTLSIdentity(ctx, s.log, newIdentity))
@@ -262,32 +291,9 @@ func (s *identityService) renew(
return trace.Wrap(err, "Cannot write to destination %s, aborting.", botDestination)
}
- var newIdentity *identity.Identity
- var err error
- if s.cfg.Onboarding.RenewableJoinMethod() {
- // When using a renewable join method, we use GenerateUserCerts to
- // request a new certificate using our current identity.
- // We explicitly create a new client here to ensure that the latest
- // identity is being used!
- facade := identity.NewFacade(s.cfg.FIPS, s.cfg.Insecure, currentIdentity)
- authClient, err := clientForFacade(ctx, s.log, s.cfg, facade, s.resolver)
- if err != nil {
- return trace.Wrap(err, "creating auth client")
- }
- defer authClient.Close()
- newIdentity, err = botIdentityFromAuth(
- ctx, s.log, currentIdentity, authClient, s.cfg.CertificateTTL,
- )
- if err != nil {
- return trace.Wrap(err, "renewing identity with existing identity")
- }
- } else {
- // When using the non-renewable join methods, we rejoin each time rather
- // than using certificate renewal.
- newIdentity, err = botIdentityFromToken(ctx, s.log, s.cfg)
- if err != nil {
- return trace.Wrap(err, "renewing identity with token")
- }
+ newIdentity, err := renewIdentity(ctx, s.log, s.cfg, s.resolver, currentIdentity)
+ if err != nil {
+ return trace.Wrap(err, "renewing identity")
}
s.log.InfoContext(ctx, "Fetched new bot identity", "identity", describeTLSIdentity(ctx, s.log, newIdentity))
@@ -301,6 +307,44 @@ func (s *identityService) renew(
return nil
}
+func renewIdentity(
+ ctx context.Context,
+ log *slog.Logger,
+ botCfg *config.BotConfig,
+ resolver reversetunnelclient.Resolver,
+ oldIdentity *identity.Identity,
+) (*identity.Identity, error) {
+ ctx, span := tracer.Start(ctx, "renewIdentity")
+ defer span.End()
+ // Explicitly create a new client - this guarantees that requests will be
+ // made with the most recent identity and that a connection associated with
+ // an old identity will not be used.
+ facade := identity.NewFacade(botCfg.FIPS, botCfg.Insecure, oldIdentity)
+ authClient, err := clientForFacade(ctx, log, botCfg, facade, resolver)
+ if err != nil {
+ return nil, trace.Wrap(err, "creating auth client")
+ }
+ defer authClient.Close()
+
+ if oldIdentity.TLSIdentity.Renewable {
+ // When using a renewable join method, we use GenerateUserCerts to
+ // request a new certificate using our current identity.
+ newIdentity, err := botIdentityFromAuth(
+ ctx, log, oldIdentity, authClient, botCfg.CertificateTTL,
+ )
+ if err != nil {
+ return nil, trace.Wrap(err, "renewing identity using GenerateUserCert")
+ }
+ return newIdentity, nil
+ }
+
+ newIdentity, err := botIdentityFromToken(ctx, log, botCfg, authClient)
+ if err != nil {
+ return nil, trace.Wrap(err, "renewing identity using Register")
+ }
+ return newIdentity, nil
+}
+
// botIdentityFromAuth uses an existing identity to request a new from the auth
// server using GenerateUserCerts. This only works for renewable join types.
func botIdentityFromAuth(
@@ -341,7 +385,16 @@ func botIdentityFromAuth(
// botIdentityFromToken uses a join token to request a bot identity from an auth
// server using auth.Register.
-func botIdentityFromToken(ctx context.Context, log *slog.Logger, cfg *config.BotConfig) (*identity.Identity, error) {
+//
+// The authClient parameter is optional - if provided - this will be used for
+// the request. This saves the overhead of trying to create a new client as
+// part of the join process and allows us to preserve the bot instance id.
+func botIdentityFromToken(
+ ctx context.Context,
+ log *slog.Logger,
+ cfg *config.BotConfig,
+ authClient *authclient.Client,
+) (*identity.Identity, error) {
_, span := tracer.Start(ctx, "botIdentityFromToken")
defer span.End()
@@ -363,16 +416,21 @@ func botIdentityFromToken(ctx context.Context, log *slog.Logger, cfg *config.Bot
ID: state.IdentityID{
Role: types.RoleBot,
},
- PublicTLSKey: tlsPublicKey,
- PublicSSHKey: sshPublicKey,
+ PublicTLSKey: tlsPublicKey,
+ PublicSSHKey: sshPublicKey,
+ JoinMethod: cfg.Onboarding.JoinMethod,
+ Expires: &expires,
+
+ // Below options are effectively ignored if AuthClient is not-nil
+ Insecure: cfg.Insecure,
CAPins: cfg.Onboarding.CAPins,
CAPath: cfg.Onboarding.CAPath,
- GetHostCredentials: client.HostCredentials,
- JoinMethod: cfg.Onboarding.JoinMethod,
- Expires: &expires,
FIPS: cfg.FIPS,
+ GetHostCredentials: client.HostCredentials,
CipherSuites: cfg.CipherSuites(),
- Insecure: cfg.Insecure,
+ }
+ if authClient != nil {
+ params.AuthClient = authClient
}
addr, addrKind := cfg.Address()
diff --git a/lib/tbot/service_heartbeat_test.go b/lib/tbot/service_heartbeat_test.go
new file mode 100644
index 0000000000000..c51039c88dd92
--- /dev/null
+++ b/lib/tbot/service_heartbeat_test.go
@@ -0,0 +1,111 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package tbot
+
+import (
+ "context"
+ "os"
+ "runtime"
+ "testing"
+ "time"
+
+ "github.com/google/go-cmp/cmp"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "google.golang.org/grpc"
+ "google.golang.org/protobuf/testing/protocmp"
+ "google.golang.org/protobuf/types/known/durationpb"
+ "google.golang.org/protobuf/types/known/timestamppb"
+
+ "github.com/gravitational/teleport"
+ machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/lib/tbot/config"
+ "github.com/gravitational/teleport/lib/utils"
+)
+
+type fakeHeartbeatSubmitter struct {
+ ch chan *machineidv1pb.SubmitHeartbeatRequest
+}
+
+func (f *fakeHeartbeatSubmitter) SubmitHeartbeat(
+ ctx context.Context, in *machineidv1pb.SubmitHeartbeatRequest, opts ...grpc.CallOption,
+) (*machineidv1pb.SubmitHeartbeatResponse, error) {
+ f.ch <- in
+ return &machineidv1pb.SubmitHeartbeatResponse{}, nil
+}
+
+func TestHeartbeatService(t *testing.T) {
+ t.Parallel()
+
+ log := utils.NewSlogLoggerForTests()
+ ctx, cancel := context.WithCancel(context.Background())
+ t.Cleanup(cancel)
+
+ fhs := &fakeHeartbeatSubmitter{
+ ch: make(chan *machineidv1pb.SubmitHeartbeatRequest, 2),
+ }
+ svc := heartbeatService{
+ now: func() time.Time {
+ return time.Date(2024, time.April, 1, 12, 0, 0, 0, time.UTC)
+ },
+ log: log,
+ botCfg: &config.BotConfig{
+ Oneshot: false,
+ Onboarding: config.OnboardingConfig{
+ JoinMethod: types.JoinMethodGitHub,
+ },
+ },
+ startedAt: time.Date(2024, time.April, 1, 11, 0, 0, 0, time.UTC),
+ heartbeatSubmitter: fhs,
+ interval: time.Second,
+ retryLimit: 3,
+ }
+
+ hostName, err := os.Hostname()
+ require.NoError(t, err)
+
+ errCh := make(chan error, 1)
+ go func() {
+ errCh <- svc.Run(ctx)
+ }()
+
+ got := <-fhs.ch
+ want := &machineidv1pb.SubmitHeartbeatRequest{
+ Heartbeat: &machineidv1pb.BotInstanceStatusHeartbeat{
+ RecordedAt: timestamppb.New(svc.now()),
+ Hostname: hostName,
+ IsStartup: true,
+ OneShot: false,
+ Uptime: durationpb.New(time.Hour),
+ Version: teleport.Version,
+ Architecture: runtime.GOARCH,
+ Os: runtime.GOOS,
+ JoinMethod: string(types.JoinMethodGitHub),
+ },
+ }
+ assert.Empty(t, cmp.Diff(want, got, protocmp.Transform()))
+
+ got = <-fhs.ch
+ want.Heartbeat.IsStartup = false
+ assert.Empty(t, cmp.Diff(want, got, protocmp.Transform()))
+
+ cancel()
+ assert.NoError(t, <-errCh)
+}
diff --git a/lib/tbot/service_heatbeat.go b/lib/tbot/service_heatbeat.go
new file mode 100644
index 0000000000000..02f976cc6a0f8
--- /dev/null
+++ b/lib/tbot/service_heatbeat.go
@@ -0,0 +1,125 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package tbot
+
+import (
+ "context"
+ "log/slog"
+ "os"
+ "runtime"
+ "time"
+
+ "github.com/gravitational/trace"
+ "google.golang.org/grpc"
+ "google.golang.org/protobuf/types/known/durationpb"
+ "google.golang.org/protobuf/types/known/timestamppb"
+
+ "github.com/gravitational/teleport"
+ machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/lib/tbot/config"
+)
+
+type heartbeatSubmitter interface {
+ SubmitHeartbeat(
+ ctx context.Context, in *machineidv1pb.SubmitHeartbeatRequest, opts ...grpc.CallOption,
+ ) (*machineidv1pb.SubmitHeartbeatResponse, error)
+}
+
+type heartbeatService struct {
+ now func() time.Time
+ log *slog.Logger
+ botCfg *config.BotConfig
+ startedAt time.Time
+ heartbeatSubmitter heartbeatSubmitter
+ interval time.Duration
+ retryLimit int
+}
+
+func (s *heartbeatService) heartbeat(ctx context.Context, isStartup bool) error {
+ s.log.DebugContext(ctx, "Sending heartbeat")
+ hostName, err := os.Hostname()
+ if err != nil {
+ s.log.WarnContext(ctx, "Failed to determine hostname for heartbeat", "error", err)
+ }
+
+ hb := &machineidv1pb.BotInstanceStatusHeartbeat{
+ RecordedAt: timestamppb.New(s.now()),
+ Hostname: hostName,
+ IsStartup: isStartup,
+ Uptime: durationpb.New(s.now().Sub(s.startedAt)),
+ OneShot: s.botCfg.Oneshot,
+ JoinMethod: string(s.botCfg.Onboarding.JoinMethod),
+ Version: teleport.Version,
+ Architecture: runtime.GOARCH,
+ Os: runtime.GOOS,
+ }
+
+ _, err = s.heartbeatSubmitter.SubmitHeartbeat(ctx, &machineidv1pb.SubmitHeartbeatRequest{
+ Heartbeat: hb,
+ })
+ if err != nil {
+ return trace.Wrap(err, "submitting heartbeat")
+ }
+
+ s.log.InfoContext(ctx, "Sent heartbeat", "data", hb.String())
+ return nil
+}
+
+func (s *heartbeatService) OneShot(ctx context.Context) error {
+ err := s.heartbeat(ctx, true)
+ // Ignore not implemented as this is likely confusing.
+ // TODO(noah): Remove NotImplemented check at V18 assuming V17 first major
+ // with heartbeating.
+ if err != nil && !trace.IsNotImplemented(err) {
+ return trace.Wrap(err)
+ }
+ return nil
+}
+
+func (s *heartbeatService) Run(ctx context.Context) error {
+ isStartup := true
+ err := runOnInterval(ctx, runOnIntervalConfig{
+ name: "submit-heartbeat",
+ log: s.log,
+ interval: s.interval,
+ retryLimit: s.retryLimit,
+ f: func(ctx context.Context) error {
+ err := s.heartbeat(ctx, isStartup)
+ // TODO(noah): Remove NotImplemented check at V18 assuming V17 first
+ // major with heartbeating.
+ if trace.IsNotImplemented(err) {
+ s.log.DebugContext(
+ ctx,
+ "Cluster does not support Bot Instance heartbeats",
+ )
+ return nil
+ }
+ if err != nil {
+ return trace.Wrap(err, "submitting heartbeat")
+ }
+ isStartup = false
+ return nil
+ },
+ })
+ return trace.Wrap(err)
+}
+
+func (s *heartbeatService) String() string {
+ return "heartbeat"
+}
diff --git a/lib/tbot/tbot.go b/lib/tbot/tbot.go
index ff4516979232d..955879160fcd3 100644
--- a/lib/tbot/tbot.go
+++ b/lib/tbot/tbot.go
@@ -39,6 +39,7 @@ import (
"github.com/gravitational/teleport/api/client"
"github.com/gravitational/teleport/api/client/proto"
"github.com/gravitational/teleport/api/client/webclient"
+ machineidv1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
"github.com/gravitational/teleport/api/metadata"
apitracing "github.com/gravitational/teleport/api/observability/tracing"
"github.com/gravitational/teleport/api/types"
@@ -128,6 +129,7 @@ func (b *Bot) BotIdentity() *identity.Identity {
func (b *Bot) Run(ctx context.Context) (err error) {
ctx, span := tracer.Start(ctx, "Bot/Run")
defer func() { apitracing.EndSpan(span, err) }()
+ startedAt := time.Now()
if err := metrics.RegisterPrometheusCollectors(clientMetrics); err != nil {
return trace.Wrap(err)
@@ -238,6 +240,21 @@ func (b *Bot) Run(ctx context.Context) (err error) {
),
})
}
+
+ services = append(services, &heartbeatService{
+ now: time.Now,
+ botCfg: b.cfg,
+ startedAt: startedAt,
+ log: b.log.With(
+ teleport.ComponentKey, teleport.Component(componentTBot, "heartbeat"),
+ ),
+ heartbeatSubmitter: machineidv1pb.NewBotInstanceServiceClient(
+ b.botIdentitySvc.GetClient().GetConnection(),
+ ),
+ interval: time.Minute * 30,
+ retryLimit: 5,
+ })
+
services = append(services, &caRotationService{
getBotIdentity: b.botIdentitySvc.GetIdentity,
botClient: b.botIdentitySvc.GetClient(),
@@ -527,6 +544,13 @@ func (b *Bot) preRunChecks(ctx context.Context) (_ func() error, err error) {
return unlock, trace.Wrap(err)
}
+ if !store.IsPersistent() {
+ b.log.WarnContext(
+ ctx,
+ "Bot is configured with a non-persistent storage destination. If the bot is running in a non-ephemeral environment, this will impact the ability to provide a long-lived bot instance identity",
+ )
+ }
+
return unlock, nil
}
@@ -555,42 +579,6 @@ func checkDestinations(ctx context.Context, cfg *config.BotConfig) error {
return nil
}
-// checkIdentity performs basic startup checks on an identity and loudly warns
-// end users if it is unlikely to work.
-func checkIdentity(ctx context.Context, log *slog.Logger, ident *identity.Identity) error {
- var validAfter time.Time
- var validBefore time.Time
-
- if ident.X509Cert != nil {
- validAfter = ident.X509Cert.NotBefore
- validBefore = ident.X509Cert.NotAfter
- } else if ident.SSHCert != nil {
- validAfter = time.Unix(int64(ident.SSHCert.ValidAfter), 0)
- validBefore = time.Unix(int64(ident.SSHCert.ValidBefore), 0)
- } else {
- return trace.BadParameter("identity is invalid and contains no certificates")
- }
-
- now := time.Now().UTC()
- if now.After(validBefore) {
- log.WarnContext(
- ctx,
- "Identity has expired. The renewal is likely to fail",
- "expires", validBefore.Format(time.RFC3339),
- "current_time", now.Format(time.RFC3339),
- )
- } else if now.Before(validAfter) {
- log.WarnContext(
- ctx,
- "Identity is not yet valid. Confirm that the system time is correct",
- "valid_after", validAfter.Format(time.RFC3339),
- "current_time", now.Format(time.RFC3339),
- )
- }
-
- return nil
-}
-
// clientForFacade creates a new auth client from the given
// facade. Note that depending on the connection address given, this may
// attempt to connect via the proxy and therefore requires both SSH and TLS
diff --git a/lib/tbot/tbot_test.go b/lib/tbot/tbot_test.go
index 410c3ffb00759..1b6faa4cb7972 100644
--- a/lib/tbot/tbot_test.go
+++ b/lib/tbot/tbot_test.go
@@ -498,11 +498,7 @@ func tlsIdentFromDest(ctx context.Context, t *testing.T, dest bot.Destination) *
require.NoError(t, err)
hostCABytes, err := dest.Read(ctx, config.HostCAPath)
require.NoError(t, err)
- _, x509Cert, _, _, err := identity.ParseTLSIdentity(keyBytes, certBytes, [][]byte{hostCABytes})
- require.NoError(t, err)
- tlsIdent, err := tlsca.FromSubject(
- x509Cert.Subject, x509Cert.NotAfter,
- )
+ _, tlsIdent, _, _, _, err := identity.ParseTLSIdentity(keyBytes, certBytes, [][]byte{hostCABytes})
require.NoError(t, err)
return tlsIdent
}
diff --git a/lib/tlsca/ca.go b/lib/tlsca/ca.go
index d10ca4af0f7ba..bc58bd40703c6 100644
--- a/lib/tlsca/ca.go
+++ b/lib/tlsca/ca.go
@@ -184,6 +184,9 @@ type Identity struct {
// BotName indicates the name of the Machine ID bot this identity was issued
// to, if any.
BotName string
+ // BotInstanceID is a unique identifier for Machine ID bots that is
+ // persisted through renewals.
+ BotInstanceID string
// AllowedResourceIDs lists the resources the identity should be allowed to
// access.
AllowedResourceIDs []types.ResourceID
@@ -354,6 +357,8 @@ func (id *Identity) GetEventIdentity() events.Identity {
AllowedResourceIDs: events.ResourceIDs(id.AllowedResourceIDs),
PrivateKeyPolicy: string(id.PrivateKeyPolicy),
DeviceExtensions: devExts,
+ BotName: id.BotName,
+ BotInstanceID: id.BotInstanceID,
}
}
@@ -528,6 +533,10 @@ var (
// RequestedDatabaseRolesExtensionOID is an extension OID used when
// encoding/decoding requested database roles.
RequestedDatabaseRolesExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 2, 19}
+
+ // BotInstanceASN1ExtensionOID is an extension that encodes a unique bot
+ // instance identifier into a certificate.
+ BotInstanceASN1ExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 2, 20}
)
// Device Trust OIDs.
@@ -810,6 +819,14 @@ func (id *Identity) Subject() (pkix.Name, error) {
})
}
+ if id.BotInstanceID != "" {
+ subject.ExtraNames = append(subject.ExtraNames,
+ pkix.AttributeTypeAndValue{
+ Type: BotInstanceASN1ExtensionOID,
+ Value: id.BotInstanceID,
+ })
+ }
+
if len(id.AllowedResourceIDs) > 0 {
allowedResourcesStr, err := types.ResourceIDsToString(id.AllowedResourceIDs)
if err != nil {
@@ -1050,6 +1067,11 @@ func FromSubject(subject pkix.Name, expires time.Time) (*Identity, error) {
if ok {
id.BotName = val
}
+ case attr.Type.Equal(BotInstanceASN1ExtensionOID):
+ val, ok := attr.Value.(string)
+ if ok {
+ id.BotInstanceID = val
+ }
case attr.Type.Equal(AllowedResourcesASN1ExtensionOID):
allowedResourcesStr, ok := attr.Value.(string)
if ok {
@@ -1118,6 +1140,8 @@ func (id Identity) GetUserMetadata() events.UserMetadata {
AccessRequests: id.ActiveRequests,
UserKind: userKind,
TrustedDevice: device,
+ BotName: id.BotName,
+ BotInstanceID: id.BotInstanceID,
}
}
diff --git a/lib/tlsca/ca_test.go b/lib/tlsca/ca_test.go
index a2129769b5663..fa3d3b5a19158 100644
--- a/lib/tlsca/ca_test.go
+++ b/lib/tlsca/ca_test.go
@@ -429,24 +429,15 @@ func TestIdentity_GetUserMetadata(t *testing.T) {
{
name: "user metadata for bot",
identity: Identity{
- Username: "alpaca",
- Impersonator: "llama",
- RouteToApp: RouteToApp{
- AWSRoleARN: "awsrolearn",
- AzureIdentity: "azureidentity",
- GCPServiceAccount: "gcpaccount",
- },
- ActiveRequests: []string{"accessreq1", "accessreq2"},
- BotName: "foo",
+ Username: "bot-alpaca",
+ BotName: "alpaca",
+ BotInstanceID: "123-123",
},
want: apievents.UserMetadata{
- User: "alpaca",
- Impersonator: "llama",
- AWSRoleARN: "awsrolearn",
- AccessRequests: []string{"accessreq1", "accessreq2"},
- AzureIdentity: "azureidentity",
- GCPServiceAccount: "gcpaccount",
- UserKind: apievents.UserKind_USER_KIND_BOT,
+ User: "bot-alpaca",
+ UserKind: apievents.UserKind_USER_KIND_BOT,
+ BotName: "alpaca",
+ BotInstanceID: "123-123",
},
},
{
diff --git a/tool/tctl/common/collection.go b/tool/tctl/common/collection.go
index 3ed204084af06..143744f99cc61 100644
--- a/tool/tctl/common/collection.go
+++ b/tool/tctl/common/collection.go
@@ -1624,3 +1624,33 @@ func (c *pluginCollection) writeText(w io.Writer, verbose bool) error {
_, err := t.AsBuffer().WriteTo(w)
return trace.Wrap(err)
}
+
+type botInstanceCollection struct {
+ items []*machineidv1pb.BotInstance
+}
+
+func (c *botInstanceCollection) resources() []types.Resource {
+ r := make([]types.Resource, 0, len(c.items))
+ for _, resource := range c.items {
+ r = append(r, types.Resource153ToLegacy(resource))
+ }
+ return r
+}
+
+func (c *botInstanceCollection) writeText(w io.Writer, verbose bool) error {
+ headers := []string{"Bot Name", "Instance ID"}
+
+ // TODO: consider adding additional (possibly verbose) fields showing
+ // last heartbeat, last auth, etc.
+ var rows [][]string
+ for _, item := range c.items {
+ rows = append(rows, []string{item.Spec.BotName, item.Spec.InstanceId})
+ }
+
+ t := asciitable.MakeTable(headers, rows...)
+
+ // stable sort by name.
+ t.SortRowsBy([]int{0}, true)
+ _, err := t.AsBuffer().WriteTo(w)
+ return trace.Wrap(err)
+}
diff --git a/tool/tctl/common/resource_command.go b/tool/tctl/common/resource_command.go
index e985f3686fff4..e77faef635b41 100644
--- a/tool/tctl/common/resource_command.go
+++ b/tool/tctl/common/resource_command.go
@@ -2814,6 +2814,45 @@ func (rc *ResourceCommand) getCollection(ctx context.Context, client *authclient
startKey = resp.NextKey
}
return &pluginCollection{plugins: plugins}, nil
+ case types.KindBotInstance:
+ if rc.ref.Name != "" && rc.ref.SubKind != "" {
+ // Gets a specific bot instance, e.g. bot_instance//
+ bi, err := client.BotInstanceServiceClient().GetBotInstance(ctx, &machineidv1pb.GetBotInstanceRequest{
+ BotName: rc.ref.SubKind,
+ InstanceId: rc.ref.Name,
+ })
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return &botInstanceCollection{items: []*machineidv1pb.BotInstance{bi}}, nil
+ }
+
+ var instances []*machineidv1pb.BotInstance
+ startKey := ""
+
+ for {
+ resp, err := client.BotInstanceServiceClient().ListBotInstances(ctx, &machineidv1pb.ListBotInstancesRequest{
+ PageSize: 100,
+ PageToken: startKey,
+
+ // Note: empty filter lists all bot instances
+ FilterBotName: rc.ref.Name,
+ })
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ instances = append(instances, resp.BotInstances...)
+
+ if resp.NextPageToken == "" {
+ break
+ }
+
+ startKey = resp.NextPageToken
+ }
+
+ return &botInstanceCollection{items: instances}, nil
}
return nil, trace.BadParameter("getting %q is not supported", rc.ref.String())
}